Now let’s face it, what the heck is OpenStack and where might it be useful?

May 3, 2021

My name is Wolfgang, I’ve been with Red Hat since 2019 and I started with IT in 2001 only to experience, just 2 years later, that we can use ONE physical server to deploy MANY Operating Systems! At that time we deployed our very first VMware vSphere cluster at a timber merchant in Trier, a medium-sized company. This was the first time I have realised that we are capable of deploying several workloads on just one Bare Metal machine, I was thrilled! Just a few weeks later one of our vSphere Tutors visited us in Trier to explain and show us the Concept of “vmotion”. With that feature we were capable of moving an Operating System, without being interrupted, from one Bare Metal Host to another. We just stood there, speechless…! :). Nowadays this is a standard in each known hypervisor as we all know. 

The Original Openstack Logo

What I’m trying to say, even back then we did see that as a sign of the private cloud emerging in the future, since we introduced a “virtual Datacenter” to the customer. Built and operated by the local IT, even though the typical characteristics we nowadays connect to a “real” Private Cloud were still missing in 2003.  

Cloud vs. Virtualization

What we didn’t know at the time back in 2004 was that only a few years later we would also talk about so-called “disposable/stateless” Cloud Workloads. 

That means, that “Virtualization” and “Cloud” would separate themselves more and more from each other and nowadays Virtualization is rather for Traditional “Scale-Up” Workloads where the Application is tightly coupled with its Operating System (Stateful Application) and on the other side we can find the “Cloud” Approach with its more “Scale-Out/Scale-In” mechanism (Stateless Applications). 

In regards to this topic you might want to observe the famous Pet. vs Cattle discussion.

Someone might say “Cloud” is the evolution of “Virtualization”, and OpenStack is Cloud. But actually this statement could be misunderstood since OpenStack is actually not really  designed to run legacy applications that require single, monolithic VMs with persistent Storage underneath and other dependencies. Therefore most customers will require a mixed environment, with some traditional scale-up virtualization, side-by-side with new cloud-enabled, scale-out infrastructure, provided by OpenStack as a private cloud. 

OpenStack and Virtualization: What’s the Difference? – A Rackspace Article 

But wait, we proceed to quickly, so, what is OpenStack in simple words?

OpenStack is Infrastructure-as-a-Software (IaaS), you could also define it as “Codable Infrastructure”. Since it is codeable it is just a bunch of Software Packages, a Cloud Operating System that controls large pools of compute, networking and storage resources and many other services, all provisioned through API’s with a common authentication mechanism, a unified CLI and a unified Web UI (OpenStack Horizon). 

The OpenStack Mission from the very beginning is to produce a common and easy-to-use Cloud Computing platform that is interoperable between deployments/projects, works reliably and stable at scale and meets the needs of Users AND Operators equally of private clouds within your organization.  

Provisioning and Management Concept of OpenStack

The OpenStack Deployment includes two main Concepts to provision and to manage the Cloud. The Undercloud displays the Management Layer (The Director) whereby the Overcloud depicts the actual Private cloud with all its different services the user is going to consume. As typically for Open Source Software, this is not the only possible approach to deploy and manage an OpenStack Cloud, that’s just the way Red Hat is doing it. Different community approaches are in place. 

Undercloud & Overcloud

Where does it come from?

Who did invent OpenStack? (Loosely based on the swiss advertising slogan for Swiss cough drops “Wer hat’s erfunden!?”:-))

Originally, since the good old fashioned hypervisors where too cumbersome, complex and also limited for their terms, RackSpace and NASA (and also some of their suppliers) reached for a scalable and Multi Tenant Platform with the possibility to automate Workloads and its dependent services like Storage, Networking, Load-Balancer,…. 

The Founders

And finally, in 2010…. OpenStack was born! Ultimately a platform that is capable of facing Public Clouds but in someone’s own datacenter. Until today OpenStack has its place and represents the de facto standard in many companies. It has also become an indispensable part of the telecom industry.

11 years OpenStack and it can constitute nearly everything on the Platform like managing containerized applications (e.g. with Kubernetes on-top of OpenStack) or virtualized Application on a VM (the OpenStack NOVA Compute Service is based on KVM/QEMU) AND even Bare Metal Application (with the OpenStack Ironic Service) like we did it 100 years ago since some applications still assume there is BareMetal to fulfill their requirements. 

OpenStack is still the Number one OSS Product for private Clouds

As mentioned above OpenStack is Scale-Out Infrastructure with almost no limitation to date & the number one in the market when it comes to private clouds approach – as long as there is enough Hardware underneath of course. You always need Hardware & therefore, one of my favorite catchwords is “serverless”! 

IT-Consultant: 

“Just use the Serverless Service like Lambda in AWS or Knative in Kubernetes and you don’t have to worry about servers since it is just a service;).” 

Customer:

“Oh that’s quite good news! Does that mean we can cancel our IBM Server Order?”

IT-Consultant:

“As I said, don’t mind the hardware, the serverless service will take care of everything, event triggered and scalable.” 

But we’re just kidding here…. Don’t we? ;). To get back on track, last year, in 2020, OpenStack celebrated its 10th birthday and ever since, the Software has been actually designed for four reasons:

  1. Multi Tenant Capabilities:

Means you can provide Multi-Tenancy Capabilities for several departments (Internal customers) with a different set of permissions  for each department and clearly delimited from each other. No OpenStack Tenant can see the neighborhood tenants, this is totally segregated in OpenStack.

  1. OpenStack is “Infrastructure as a service” for:
  1. Self-Service (User-Experience): 

Means a user can deploy, if allowed and permitted, its own services like a Virtual machine, a piece of storage, a piece of network, whatsoever…

  1. Automation:

Automation first and OpenStack is Automation! You have:

Automation on the Infrastructure Day1 Layer. With Heat/TripleO (The Red Hat Deployment Way, there are other ways either). Heat is an orchestration Tool that is used to establish the services for OpenStack. It provides the flexibility to use the cloud infrastructure as a code, so that lifecycle and scale out becomes very easy. Those are Hot Templates, written in yaml. You can also realize a lot with Ansible on the Day1 Layer with the last OpenStack Versions. 

Automation in the Software Layer / Day2:

Also here the magic word is called Ansible. If you didn’t get a chance to get familiar with Ansible, just do it, it is really worth it since you can almost automate everything in Day2 with Ansible.  

Free up your resources for more important things!

What that means is that OpenStack frees up your human resources to let you (and me) focus on core business and content delivery rather than being busy with “boring” IT infrastructure which does not generate business value at all {{ Repeatable Tasks, boring as it sounds… }}. IaaS also lets you easily achieve high availability and business continuity in a cost effective way. Of course, cost effective only after we did deploy the OpenStack Basic Structure in the desired way. Deploying OpenStack is sometimes a bit notchy and challenging but after taking this hurdle, it will get more easy!

Just deliver the service to your customer

As a consumer and user, you only need to take care about your applications!

Which People would introduce a private Cloud based on OpenStack

Basically, a Private Cloud is Cloud Computing, with similar advantages as public cloud including scalability and self-service. But unlike a public cloud, which delivers service to a lot of organizations (like AWS, Azure,…) a private Cloud is dedicated with all the needs and all the goals of a single organization in a private on-prem Data Center. 

Private Clouds, due to their nature, run on-premise datacenter, means in your own DC, and they are built and operated by the local IT. You have full control and any kinds of self-service-capabilities to your disposal, as explained above, roughly 30 different services, That is a little less than the public cloud providers have ;). 

Some others drivers to deploy OpenStack might be:

  • Value Security above everything else and I can’t build up trust into public cloud resources.
  • Must keep data on-prem due to regulatory compliance reasons or other reasons I don’t know yet ;).
  • You need full control over your hardware, virtual server, failover algorithms and SLA’s 
  • Have workloads with high-performance (<1 msec response time) and high-availability (99.999%) SLAs. For Example: SAP HANA Worklads in a HA environment. 
  • Want to repurpose existing infrastructure and evolve this hardware to a Private Cloud (IaaS “or” PaaS with OpenStack underneath) model.

From a user’s point of view OpenStack is Simplexity

It’s not quite easy to explain the Abstraction of OpenStack and WHY the service itself is actually very easy to consume. At least for the user who’s consuming a certain OpenStack Service. To simplify that a bit, one of my dear Red Hat Colleagues did invent the “OpenStack Onion” :). 

The Openstack Onion

As we can see, based on the onion, OpenStack is all about abstraction, not more, not less. Each layer must be independent of one another and all layers should be abstracted away behind our onion. When imagining a cloud, the first thing could be, imagine the user and imagine him or her seeing the onion. In this Onion is all that stuff like switches, firewalls, Layer 3 routing devices and and and… All put in OpenStack via API calls as “software”. (You can compare that with Microservices in a kubernetes environment). 

I think in general it is entitled and justified to declare that OpenStack increases the “User-Experience” by a Multiple. Maybe, in the Hype Phase, 3-4 years ago, it wasn’t really that mature and more important, it wasn’t ready for some use cases we do have nowadays, but that has changed. 

Sources:

Building A Cloud: A Pragmatic Approach (The Onion)

(Written by my dear colleague Keith Tenzer):

https://keithtenzer.com/2018/10/25/building-a-niche-cloud-a-pragmatic-approach/

10 years of Cloud Computing in a nutshell

(Written by my dear colleague Matthias Pfützner):

https://open011prod.wpengine.com/2021/03/15/10-years-of-cloud-computing-in-a-nutshell/

Mystery Hybrid Cloud! What are its riddles and when do I need it actually?

(Written by me in October 2020):

https://open011prod.wpengine.com/2020/10/19/mystery-hybrid-cloud-what-are-its-riddles-and-when-do-i-need-it-actually/

All to date available Openstack Services: 

https://www.openstack.org/software/project-navigator/openstack-components#openstack-services