OpenStack as I understand it

OpenStackI’ve made a few comments about OpenStack on my blog and I wanted to clarify what I feel OpenStack is and is not.  According to the OpenStack Consortium, OpenStack is a Cloud OS.  First we need to define a Cloud OS.  When you look at NIST definitions of Cloud computing terms, Cloud OS doesn’t show up.  From what I can tell this is just a branding by the OpenStack community.  The closest thing that it can be compared to is a Cloud Manager.  I wrote an earlier post on Cloud Manager’s here.  But if you think about the traditional components of an OS, OpenStack kind of fits the definition.  A traditional OS will control disk, compute (cpu & memory) and networking associated with a system.  The OS would provide an interface and API to the computing resources.  Programs could then be written to take advantage of these resources.  And as in any good OS there will be an interface.  OpenStack is by this definition a Cloud OS which in my book is the same as a Cloud Manager missing some feature such as business intelligence such as resource management based on definable accounting rules.

Picture from
Picture from

So, I get dinged a lot on this blog from people thinking I’m confusing OpenStack with Cloud Orchestration & Management tools such as Abiquo.  Some of the more advanced Cloud management tools allow you to manage Cloud resources from multiple Cloud providers.  An ideal setup is that you can write your application to your Cloud Manager’s API and deploy it across multiple Cloud providers.  That management layer would control communicating with the Cloud provider for spinning resources up and down.  This is where I normally get in trouble in saying Openstack should help to remove the Cloud Management layer for multi-provider support.  Some of the contributors on both this blog and twitter are quick to point out that this isn’t the role of OpenStack.  It’s a Cloud OS and not Cloud Orchestration (management).

This is where I disagree.  People utilize Cloud Management solutions for this very reason, to deploy an application across multiple Cloud providers using a single API.  Cloud management also adds the layer of orchestration that OpenStack doesn’t provide.  However, many organizations are writing this layer themselves.  An example is Netflix.  Netflix writes their own management solution for their AWS instances. A matter of fact they have open sourced a large component of it.

So, my argument has always been that if OpenStack is a Cloud OS wouldn’t you expect the same level of services in a Cloud OS as you would a server OS.  There isn’t a modern enterprise OS that doesn’t provide clustering services.  OpenStack is advertised as a Cloud OS.  Being an OS, I should be able to leverage an equivalent service within OpenStack to cluster an application across multiple Cloud providers giving similar system resources.  Just like any immature OS, there can be third party clustering solutions in place until the OS adds the clustering feature natively.

I’m happy to hear thoughts and feedback.  Maybe I have what OpenStack is completely sideways.  Maybe it’s not an OS in the since that we define an operating system.

Published by Keith Townsend

Now I'm @CTOAdvisor

5 thoughts on “OpenStack as I understand it

  1. OpenStack does have ‘Heat’, a similair solution as Amazon CloudWatch, I’ve personally not had a really close look at any of them yet. Mostly because I want to skip it and move directly to service orchestration* which I hope is a step up from that.

    I think service orchestration will eventually need Heat or CloudWatch to do autoscaling, there is no reason to implement it twice.

    Have to admit, I’m still in the test-setup/-learning phase on the autoscaling/service orchestration front.

    OpenStack supports different hypervisors, the missing piece is conversion AFAIK. They want to add it, but I don’t know if they’ve started on it. I think the interrest came mostly from companies like Rackspace which would like their customers to be able to move workload between private to public cloud.

    OpenStack is more like the OS kernel supporting different drivers for different devices, but the project could include a whole OS.

    * service orchestration ohh, boy, I guess the English language did not provide any other more words ? Service orchestration used to something else. Calling it ‘cloud service orchestration’ as on Wikipedia could help, but everyone calls everything cloud these days.

  2. I don’t consider OpemStack an OS since it doesn’t have kernel mode type direct access to the hardware stack but relies on the OS that is already running in each component underneath. It’s an orchestration tool that coordinates other operating systems.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: