We’re three and a half years into OpenStack® and there is still confusion about exactly what OpenStack is, how to compare OpenStack to other cloud platforms, and specific use cases for OpenStack. I find myself having the same conversations over and over again in an attempt to debunk the myths and misperceptions in the market. There are a number of them, but to help people who are still getting up to speed with OpenStack, let’s focus in on the three largest.
Myth #1: OpenStack is a Hypervisor or Virtualization Replacement
When I talk to people about OpenStack for the first time, this is a very common belief. OpenStack is seen as a hypervisor or a replacement for virtualization. That’s not true. Instead of replacing your compute, storage or network virtualization platforms, OpenStack sits above (actually, along side of) them – it automates, orchestrates, manages and gives you a common set of APIs and a dashboard no matter which vendor or technology you’ve selected for your hypervisor.
In compute (OpenStack Nova), for example, you still have a host operating system and a hypervisor (it can be KVM, Xen, ESX, LXC, Hyper-V, etc. (see full list)). In your mind you can picture OpenStack sitting “above” that hypervisor, but in reality it sits along side of it, providing the abstraction and user/administrative activity when someone asks for a virtual machine or makes changes to an existing virtual machine. Instead of an admin or operator interacting with the hypervisor or host operating system, they’ll interact with OpenStack using a consistent interface.
Container technologies like Docker are also supported, allowing OpenStack users to provision compute workloads through the common OpenStack API, even if the application is running in a container instead of a traditional hypervisor-powered virtual machine. To further complicate things, bare metal provisioning of compute resources is being developed in OpenStack, giving users the ability to spin up full machines, regardless of brand and model, using the same familiar OpenStack API. Again, OpenStack is not a hypervisor replacement (if you need VMs, you’ll still need a hypervisor); it is a single, abstracted and simple way to provision and manage the resources you need.
Myth #2: OpenStack is a Product
If you’re trying to compare OpenStack to Product X with some kind of line-by-line checklist, don’t be surprised if there are a lot of boxes left unchecked. OpenStack is not a product.
There have been a lot of analogies made to compare OpenStack to other open source projects, and perhaps the most accepted is that of the Linux kernel. Nearly all companies and developers that want to use Linux will obtain it from a productized distribution. These products glue together the kernel with installation, management and other capabilities that meet the needs of a group of users. Some of the Linux distros are commercially supported, some are community-developed and supported and some are a blend. To properly compare Linux against something like Windows Server, you wouldn’t compare the kernel and all of the affiliated drivers, file systems, etc. with Windows; you would compare something like Ubuntu or RHEL.
The same goes for OpenStack – while a number of companies have the expertise to take the OpenStack community code, test it, integrate it, deploy it and operate an at-scale production cloud (Rackspace is a great example), the overwhelming majority of people building clouds will pick a productized and commercially supported version of OpenStack, like Rackspace Private Cloud. These products have additional features, integrations, hardware testing and support that companies look for, and are a much better basis of comparison if you’re looking to do a bake-off between “OpenStack” and other cloud products. It’s important to compare apples to apples, and comparing OpenStack code you download from github to vCloud is like comparing the code for a Linux networking driver to a Cisco router.
Myth #3: OpenStack isn’t for Enterprises
Recently there’s been a lot of discussion on this one. At OpenStack Summit Hong Kong, this was a polarizing topic. Even when looking at the productized versions of OpenStack (and distros) available in the market, there’s a myth that enterprises can’t use OpenStack because it’s missing key features they need before it can be adopted in their organization. The reality here is that these features aren’t missing, they’ve just moved up the stack.
Things like one-click migrations of applications between host machines or datacenters are a simple example. For a long time, enterprises have relied on the infrastructure platforms to provide resiliency and migration of applications. The main reason for this is because there wasn’t a good way to get the programmatic access to the infrastructure a development or operations team needed to do it itself. You couldn’t easily automate how an application was deployed, configured and scaled, so everything about running that application environment was done manually or with basic scripts, documented in a runbook and the process of “moving” it was a major, risky endeavor.
Today, cloud platforms like OpenStack combined with configuration management platforms like Chef, Puppet, SaltStack and others make it very straightforward for you to build a reliable, reusable application deployment and management solution. Instead of using some kind of motion or migration technology to move a running application using network-attached storage, you simply deploy it again to a new target and shut off the old server when you’re done. The need for motion/live migration technology in the infrastructure itself can be totally eliminated if you’re using modern applications and frameworks. Many of the hypervisors supported in OpenStack do support this type of live migration for your existing applications and VMs, and OpenStack exposes this functionality.
Much of what at first glance appears to be missing from OpenStack is actually just made more programmatic than people are used to. A fancy looking dashboard with one-click functionality is great, but you end up limited to using that feature exactly how the vendor built it. What’s much better (and a major part of the reason enterprises ARE adopting OpenStack) is clean, programmatic access that they can use to build and automate EXACTLY what’s needed in their application and business – and never be stuck when a point and click feature no longer meets their needs.
Another example of a missing enterprise feature that isn’t missing at all is workflow, or being able to request a virtual machine and have that request go through an approval process before it’s provisioned. This is more governance than workflow, and in a way it goes against the whole idea of on-demand, self-service infrastructure provisioning, but companies, especially enterprises, still want it. Luckily, there are a number of great products like ServiceMesh and Enstratius that deliver out of the box “enterprise governance” features on top of OpenStack and other platforms. Many enterprises are integrating with configuration management and other platforms to meet their IaaS governance needs, giving them the ability to decide what governance means to them in the new cloud world, as opposed to writing their policies around what a hard-coded infrastructure product can deliver.
The risk here is expecting the benefits and agility a modern platform like OpenStack can deliver after you apply arguably antiquated enterprise governance models to those programmatic, self service, on-demand capabilities. Think about what glass you’ll need to break in your governance models to achieve the outcome you’re looking for, instead of spending your time thinking about how to make the “new” feel like the “old.”
For these reasons, it’s not that OpenStack is missing key enterprise features, because a long and growing list of innovative enterprises have adopted OpenStack and are raving about the benefits it’s bringing them. These successful OpenStack adopters have realized that by shifting some things out of the infrastructure layer and up to the application layer that they can move faster and have a lot more flexibility in their business – finally putting themselves on their own roadmap, and not the roadmap of their infrastructure vendor.
2013 has been another fantastic year of progress for OpenStack. We’ve seen extensive maturity in the code and development processes, expansion of key technologies around networking and applications, and massive growth of the number of users and success stories of companies, large and small, adopting OpenStack all over the world. As a community we continue to have healthy debates about critical topics that will shape OpenStack’s future — what should be an official OpenStack project, API specifications, implementation details, etc. – in the open, as a community. All of this progress benefits the end users in the long run, and every six months when we see more users stand up on stage and talk about their success with OpenStack, it validates that we’re definitely on the right path.
Follow Scott Sanchez on Twitter: @scottsanchez