SPIKE: OpenStack Architecture and Analysis
OpenStack Components Introduction 1
Next Steps and Closing Remarks 4
Objective Statement
With this spike, we should be able to grasp the concepts of OpenStack and understand its services, be able to identify viable download and configuration tools, have a well crafted architecture model either using a professionally made example or self-made model, discern a list of pre-needed requirements and work items needed prior to the download of OpenStack with an overall address to the next steps after this spike.
OpenStack Components Introduction
Primary Components
Ironic
Will be what we use to provision and manage our Dell Power Edge machines. Uses PXE
This will interact with OpenStack Compute (nova), Identity (keystone), Image service (glance), and Networking (neutron)
Nova
Glance
-
Neutron
-
Keystone
-
Other
Download Options
Evaluation Tools
DevStack
-
Will make major changes to a system and should only be run on VM's dedicated for this purpose.
-
Official Evaluation tool
-
Used for training, proof-of-concept and personal education. Not for production deployment, meant for developing and testing OpenStack itself.
[Example Case:]{.underline} If we want to make changes to OpenStack, it'll be a terrible idea to go and do this on PROD. With DevStack, we can make those changes to an environment that is close to the deployed OpenStack instance and verify it works there before making changes to production.
MicroStack
Can be set up very quickly and installation is viewed as being easier than DevStack. Looks like a good choice as well and worth taking a further look at.
DevOps Deployment
Ansible
Kolla Ansible
-
Uses Docker containers to deploy OpenStack
-
Minimum Requirements:
-
2 network interfaces
-
8GB main memory
-
40GB disk space
-
OpenStack Ansible
-
Uses LXC containers to deploy OpenStack
-
Minimum Requirements:
-
Multicore processors
-
10 GB for OpenStack-Ansible repository
-
100 GB of disk space for Control Plane
-
1/10GB Ethernet
-
Bonded Network interfaces
-
VLAN offloading
-
Ansible is less opinionated on how we should deploy OpenStack, more flexible, provides defaults to get started, and provides additional optimization past initial setup. However Kolla Ansible states that it is highly opinionated. 'Kolla Ansible is highly opinionated out of the box, but allows for complete customization.' Kolla-ansible looks to be more supported and has more frequent upgrades.
Juju
Open source orchestration engine
If we use Juju, can deploy using Charmed OpenStack, integrates well with Metal-As-A-Service. Will look more into this later. Is this same as IAAS?
Other
Puppet, Chef, Salt
Older. Not the best for long term deployment.
Architecture
Will stick to the basics Horizon, Swift, Glance, Nova, Cinder, Neutron, & Keystone. Official recommended architecture for an OpenStack VPC design is located on the OpenStack Design page.
Known Pre-requirements
-
Debian
- Debian 12 (bookworm)
-
Ubuntu
-
Ubuntu 22.04 LTS (Jammy Jellyfish)
-
Ubuntu 24.04 LTS (Noble Numbat)
-
-
CentOS based
-
CentOS Stream 9
-
Rocky Linux 9
-
-
Secure Shell (SSH) client and server that support public key authentication
-
Python 3.8.*x* or 3.10.*x*
-
en_US.UTF-8 as the locale
-
At least 1/10 Gigabit Ethernet
-
Jumbo Frames (Recommended)
For Kolla-Ansible
-
2 network interfaces
-
8GB main memory
-
40GB disk space
Next Steps and Closing Remarks
Findings suggest to stick to the basics; Horizon, Swift, Glance, Nova, Cinder, & Neutron for Cycle 2. The team can discuss on their thoughts and give a response Sprint 3. As for the basics listed, we will have 6 weeks to complete them and be able to definetively define them as 'DONE'. There are plenty of other services to add but we may not get the opportunity to add them.
Below will also be a list of Epics and Stories needed. How we define these items as done and if there a possible more items needed that were missed will be discussed after presentation.
Optional Route of 3 Cycles
Cycle 1: 2 Sprints (3wk/2wk) Primary Hardware Needs and Configs
Cycle 2: 3 Sprints (2wk/2wk/2wk) General OpenStack Deployment and Secondary Hardware Needs
Cycle 3: 2 Sprints (2wk/1wk) Secondary OpenStack Components and Wrap-up
Future Work (Epics)
-
Openstack Installation
-
Horizon
-
Neutron
-
Glance
-
Cinder
-
Swift
-
Nova
-
Keystone
Potential Stories
-
Creating Jumbo Frames
-
Server Clustering
-
Addition of SSH
-
Addition of Python 3.12.x (3.13 isn't a LTS system I believe)
-
RAID cards configured
Sources
OpenStack-Ansible Deployment Guide --- openstack-ansible 30.0.1.dev3 documentation
Overview --- openstack-ansible 30.1.0.dev44 documentation
DevStack --- DevStack documentation
Deploying OpenStack in 2023 A Survey of Setting Up OpenStack