SPIKE: OpenStack Architecture and Analysis

Objective Statement 1

OpenStack Components Introduction 1

Primary Components 1

Ironic 1

Nova 1

Glance 1

Neutron 1

Other 1

Download Options 1

Evaluation Tools 1

DevStack 1

MicroStack 2

Ansible 2

Juju 2

Other 2

Architecture 2

Known Pre-requirements 3

Next Steps and Closing Remarks 4

Optional Route of 3 Cycles 4

Future Work 4

Potential Stories 4

Sources 5

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

MicroStack Documentation

Deploying OpenStack in 2023 A Survey of Setting Up OpenStack