Thinking about using OpenStack for your cloud? You aren’t alone. On the heels of the OpenStack Summit in Tokyo, I thought it would be a good time to look at OpenStack and try to clarify some of the confusion. Is OpenStack a Cloud Management Platform (CMP)? Why would I need a CMP if I have OpenStack? Do containers (e.g. Docker) or other technologies obviate the need for OpenStack? What kind of workloads are appropriate for OpenStack? Is Open Source software free? These are just a few of the many questions companies are asking about OpenStack. I’ll skip over the history of OpenStack and assume that if you want to know where it started, who are the corporate sponsors, and basic functions, you can go to OpenStack.org.
OpenStack cloud software helps abstract and standardize the complexities of managing heterogeneous cloud infrastructure. Many of the storage, networking and compute industry leaders have contributed code to OpenStack to enable their devices to work properly when called on by OpenStack. This makes it easier to provision a virtual server, associate some storage to that server, set up some network and security configurations, regardless of the underlying, vendor specific infrastructure. As one OpenStack developer told me, “The real value of OpenStack is that it allows you to programmatically control and scale heterogeneous compute, storage and networking resources through an open API.” That’s great if you are an OpenStack developer and like to write to APIs, but truth be told, OpenStack developers are in short supply.
It’s important to emphasize that OpenStack is best for cloud applications. Those applications that were designed to run across multiple cloud nodes, calling on ephemeral storage and horizontally scalable databases like mongoDB. Most applications in the data center weren’t designed this way– instead designed to run on bare metal or virtual machines that would scale vertically by adding more physical resources – applications like Exchange, Oracle or WebSphere. OpenStack.org acknowledges that these are significant architectural differences and that best practices often involve running OpenStack for new “cloud architected” applications alongside traditional applications running on virtual or physical infrastructure.
From this core set of capabilities around compute, storage and networking, the OpenStack community has extended the open source project in numerous directions to address concerns about usability, manageability and security and to add functionality around image management, monitoring, reporting, DBaaS, bare metal provisioning and more. While there are many contributors to the OpenStack code, most of them are driven by a handful of vendors (see for yourself at Stackalytics.com). Along the way, the code quality, usability, stability and interoperability across OpenStack deployments has improved, though there is still plenty more work to do. At the same time, many projects have been added and number of lines of code has increased dramatically causing many analysts and pundits to question whether OpenStack is taking on too much and whether it lacks the governance and oversight to reign the project back in.
The net? OpenStack is really good at abstracting and provisioning resources for running cloud architected applications. It is especially effective for very large clouds performing very similar and repeatable workloads, like those at CERN, PayPal, Comcast and some of OpenStack’s other flagship case studies.
Is OpenStack a CMP?
Yes and no. Certainly it has a lot of capabilities that allow one to tick CMP functionality boxes. On the other hand, managing infrastructure services for traditional applications running on physical or virtualized systems lacks the usability, scalability and control that enterprises seeking to provide cloud brokerage services would demand.
There have been two primary approaches to addressing these deficiencies. First, organizations could leverage some of the niche projects within OpenStack that have spun up to fill these gaps. These smaller, non-core projects are less proven and often temperamental, requiring deep OpenStack skills to deploy, maintain and repair. And, as I mentioned previously, OpenStack skills are in short supply. The second and more common approach is to leverage a vendor-based Cloud Management Platform that supports OpenStack.
Vendor based CMP solutions attempt to fill feature or platform gaps left by the OpenStack projects while also delivering the level of support organizations need to minimize the risk of using open source software. When considering a Vendor CMP, it’s important to look at your current environment and realistically evaluate your use of traditional verses new cloud technologies and then compare that to your organization’s ability to transition to cloud technologies over time. We have seen many companies declare that all future development needs to be on cloud technologies and yet it becomes cost prohibitive to rearchitect traditional applications. The requirements for a consistent user experience across cloud and virtualized application environments, integration with ITSM change processes and the ability to secure and maintain control of physical and virtual resources tend to grow rather than decrease as companies move to cloud.
OpenStack and Docker and Cloud Foundry, and…
Perhaps the biggest topic of conversation at recent OpenStack Summits has been how OpenStack will fit with other emerging open source technologies like Cloud Foundry, Docker, CoreOS and others. In fact, many have questioned whether OpenStack is even needed in development environments that rely heavily on PaaS or container technologies. Even RedHat’s CEO (a platinum member of OpenStack) indicated that perhaps they should shift investment from OpenStack to Docker.
Docker has made containerization and portability of applications much easier than traditional approaches. This is especially important to Developers who are using Docker to quickly package and deploy applications for testing of sprints so that they can iterate more quickly. While Docker has seen tremendous growth in usage, it is starting from a small base and has close to zero use in enterprise production environments today. Why? The most common complaints are security and manageability of Docker containers, gaps that Docker is trying to address in future iterations.
Regardless of what technology or combination of technologies win out, betting on them involves risk. Eucalyptus and CloudStack were two leading open source technologies prior to OpenStack gaining its significant momentum, but where are they now? Other technologies like VMware ESXi and Microsoft Hyper-V are prevalent in organizations and surely not going to disappear quickly. Picking a Cloud Management Platform that supports multiple technologies for physical, virtual and cloud environments helps minimize the risk associated with big bets on emerging technologies.
Confusion abound! With all of the buzz around cloud, how does one determine which technologies make the most sense for their cloud? OpenStack has been a hot topic for a few years but now Docker, Cloud Foundry, Kubernetes and more are gaining attention. At the same time, vendors are clamoring to get a piece of the cloud pie and will present their particular approach to cloud as the “correct” approach.
The question remains, “Is OpenStack right for your organization and if so, in what capacity?” The answer depends on your organization’s planned cloud workloads as well as your strategy for rolling out cloud. OpenStack can be a great tool for managing cloud infrastructure, particularly for new and similar applications developed for cloud. However, in environments with multiple workload types or integrations across cloud and non-cloud technologies, OpenStack can be yet another complicating technology that needs to be managed. In these cases, it is quite appropriate to leverage a vendor-based cloud management platform with broad support for brokering and managing cloud resources across different environments (public such as AWS or Azure, private clouds that leverage multiple hypervisors, traditional non-virtualized infrastructure, etc.). In essence, the more complex and diverse the hybrid environment you are managing, the more it makes sense to leverage a cloud management platform that manages the complexity and simplifies administration, control and compliance.
Finally, although OpenStack can be downloaded for free from GitHub, it’s important to look beyond acquisition costs when choosing the right solution for your cloud. How will I get the skills necessary to manage this cloud? How hard will it be to update and administer the cloud? Who will I call if it stops working? Far too often, one individual or department within an organization starts down a technology path without considering the broader business impact of those decisions.
Thanks for reading. Continue the dialog with a comment or reach me through twitter: @Grizfisher
Interested in how BMC Cloud Lifecycle Management works with OpenStack? Download the whitepaper.