Since Linux changed the paradigm for open source software in enterprise environments, IT leaders have seriously considered the advantages of open source. With pressure to reduce capital costs, any solution that avoids the “technology tax” associated with licenses and costly proprietary systems is attractive. Small wonder, then, that there is intense interest in open source cloud technologies like OpenStack and KVM (kernel-based virtual machine) within forward-looking enterprises.
But many IT leaders are asking the same question: Is OpenStack ready to take on enterprise applications? The short answer is: It depends.
OpenStack projects
To explain what I mean by that, let’s first consider that OpenStack is really a collection of projects divided into three main functional groups: compute, storage, and networking. Some of these resources are more mature than others. Let’s take a quick look at each.
Compute: This is OpenStack’s Nova project, responsible for deploying and provisioning computing resources for applications running in the cloud. Since this is where OpenStack started, it’s actually pretty far along in its maturity curve. For applications built specifically for cloud, Nova is ready for prime time.
However, migrating existing enterprise applications to an OpenStack cloud environment is another story. A lot of the operational aspects of day-to-day application management simply are not realized. For example, availability and response to availability-related events has not been fully engineered into OpenStack. The Nova project is addressing these and other deficiencies. But at the moment, migrating existing apps to OpenStack still presents some significant challenges.
Storage: There are two projects involved with this function -- Cinder and Swift. Why two? Cinder is OpenStack’s project focused on block storage, whereas Swift is an object storage architecture. Swift is the more mature of the two, as it was a core project dating to OpenStack’s inception.
Which storage “flavor” you use will likely depend on the type of application and/or storage resources you’re working with. Both provide interfaces into new or existing storage systems and software. In many cases, Cinder and Swift are augmented with other solutions from a major storage vendor, such as NetApp or EMC. Overall, the storage piece is in pretty good shape.
Networking: The OpenStack project focused on controlling, provisioning and defining networking interconnects, Neutron, is the least mature of the three areas discussed. Important enterprise “must haves” like quality of service (QoS) or virtualized firewalls are still very much works in progress for Neutron. However, there is increased attention to this crucial functional area by the OpenStack community, driven in part by growing interest in cloud technology on the part of the telecom industry.
The companies best positioned to add value are, of course, networking vendors. However, the incentive to supplant their expensive, proprietary systems with low-cost, virtualized networking that runs on commodity hardware has not been strong enough to spur action.
This is starting to change because, quite simply, the market is demanding it. The move toward “cloudy” telecom and NFV is helping drive the move toward OpenStack. Just in the past year or so, we’ve seen a groundswell of people demanding improvement in OpenStack networking and devoting effort to achieve that. But it's going to take time to fully address the gaps -- probably two to three years, rather than two to three months.
There’s one more critical piece to the OpenStack puzzle: The Heat project, which is devoted to orchestrating all the other pieces. It’s like the dispatcher. When a request is made within the cloud, Heat decides what compute resources to dedicate and where, which storage resources are needed, and then communicates with Neutron to make sure everything talks to each other. Heat is in pretty good shape for many application types.
More or less mature
As we’ve seen, some OpenStack projects are more mature than others. What does that mean to enterprises weighing OpenStack's feasibility? What we’re hearing from enterprise IT leaders is that for building brand new cloud applications, OpenStack is fantastic; it’s easy and inexpensive to get started.
The trouble is, the proportion of applications that fall into this category have, to date, been fairly small for many enterprises. Ask them why and they may say OpenStack is not as automated as they want, or that the projects are not as integrated as they would like, making change management more difficult. The rapid pace of OpenStack upgrades is also a problem since OpenStack releases twice a year and the upgrade process is a big challenge. We also often hear that availability falls short.
So how and when will OpenStack close these functional gaps and become fully accepted in the enterprise? The answer lies not just in the OpenStack community, which is certainly working to advance the technology. Like previous open source platforms, the key is buy-in from the larger ecosystem of solution vendors and enterprises themselves.
Everyone plays a role
Vendors throughout the cloud space are embracing OpenStack and developing a host of solutions to augment OpenStack and address many of its current weaknesses. Just in the past year, we’ve seen many large enterprises build OpenStack clouds leveraging new vendor products to address availability, networking and other issues.
But the other crucial factor in making OpenStack ready for the enterprise is enterprises themselves. As with any new technology, they will have to evolve the way they think about, develop and deploy their applications. As they begin to use OpenStack, they will contribute to OpenStack’s further development, creating a virtuous cycle of improvement.
That’s exactly what happened with Linux and Hadoop. Once enterprises started using them, they added their improvements and at the same time, retooled their own internal processes and thought patterns. That’s the difference between a proprietary technology product and open source. In the first case, the customer simply specifies a product and the vendor delivers it. With open source, it’s a partnership, with users actively participating in the product’s development.
Of course, many enterprise IT leaders will roll their eyes when told they need to rethink the way they do things. But with OpenStack, it truly is an opportunity. The automation and savings that OpenStack clouds offer make for a very compelling business case. It's worth changing the way you do things to fully leverage those advantages.
Is OpenStack ready for every enterprise application? Not yet. But it will be, as momentum builds on the part of the OpenStack community, cloud vendors and enterprise innovators. Meanwhile, think about which apps you could build and deploy in an OpenStack cloud today, with a little help from the larger community. It could be the start of a journey with the potential to transform the enterprise as we know it.