Omistack

Cloud Native OpenStack Deployments

Omistack is developed with the concept of a Vertical Immutable Infrastructure in mind. What does this mean?

Our Paradigms

Motivation

Maintaining a physical server cluster can by a time consuming and error prone task. Continuous Delivery and Deployment (CI/CD) recently becomes common standard on top of Infrastructure as a Service (IaaS) Clouds. Omistack takes modern well-known CI/CD concepts down to the physical servers.

Architecture Overview

A declarative description of the server cluster defines the required deployment state of an application installation. The pre-configured bootstrap entity (Seed node) rolls out configuration and runtime software. Each component configures, deploys, and manages its state autonomously.

Architecture Overview

A runtime component in this context can be an operating system image, or a container image for application software. This architecture allows users to create or replace the components. Fail fast & retry guarantees an eventual success. The Seed node as a central entity is only required for initialization or for changes, to avoid a single point of failure .

Implementation

The Omistack setup bases on software components like iPXE, CoreOS7, Matchbox8, Docker, and container orchestrators. The Seed entity provides network boot for servers, which then use a container cluster to receive their configuration and containers to run OpenStack. Each container is then self contained, packaged with software and configuration parameters, and its own state machine to start its service with existing state, immutably.

Architecture Overview

The OpenStack Docker images are written from scratch to con-figure and boot themselves from environment variables, sidekick containers or remote storage. In contrast to our approach, OpenStack Kolla² orchestrates containers via external Ansible rules, and would need additional support for the physical infrastructure from e.g. Cannonical MaaS³. Configuration man-agement tools like Ansible4, or Puppet5 describe and implement changes, reducing immutability.

Since 06.2018 the entire operation of our IT infrastructure follows this paradigm. We are investigating in integrating Kubernetes.

Demo Video

The demo video below shows the complete bootstrapping of a multi node OpenStack setup within several minutes.

We used Up-Boards as compute nodes and a HP server to host the controller components. The video starts from scratch, first installing the container orchestrator Rancher, which is then used to deploy all the necessary containers. The steps shown in the video are as simple as follows: