Ask Not Whether OpenStack is Ready for the Enterprise...
I listened to Keith Townsend discuss why he thinks OpenStack's not ready for the enterprise, and it really made me think about what he was saying. It’s a great video, and I’d encourage you to watch it -- and thanks to Keith for provoking this discussion.
Keith’s talk made me realize something important. We're asking the wrong question. The question is not whether OpenStack is ready for the enterprise. The question is whether the enterprise is ready for OpenStack.
The answer here is not as obvious as it should be, or at least as obvious as we'd like it to be. Those of us who work with OpenStack every day are used to making assumptions that simply may not be true. For example, I think many of us assume:
All enterprises understand the benefits cloud and Infrastructure-as-a-Service can bring, and are striving hard to reap those benefits.
All enterprises engage in DevOps.
All enterprises want to be "first", to be on the leading edge of a technological wave.
I'm sure there are many more, but let's just look at these, and how they relate to Keith's issues with OpenStack.
All enterprises "get" cloud and IaaS
The fact is that this simply isn't true. In particular, companies for whom building software isn't a core competency look at the cloud in general, and at OpenStack in particular, and say, "What do we need that for?"
Well, I ask you, didn't we hear the same question about the photocopier? The fax machine? Email? The truth is that until you start trying to use a promising technology -- and virtually everyone can agree that OpenStack is at least promising -- you won't know how you're going to use it and the ways in which it can improve your processes and, therefore, your bottom line. In the case of the cloud, the advantage that you gain is the ability to ramp capacity up and down quickly.
The obvious benefit here is that your people can access computing resources in minutes, enabling them to do their jobs faster. The not-so-obvious benefit is that it enables you to experiment with new processes, products, and infrastructures without having to make a long-term commitment. It's so much easier to take a chance on something that can pay off handsomely when the risk is relatively low because a failed project can simply be shut down, its resources reabsorbed into the corporate ecosystem, ready to be re-used for the next experiment.
This agility is crucial in today's marketplace.
All enterprises engage in DevOps
Even among companies that understand the importance of cloud, many -- maybe even most -- are still operating "by hand," with operators directly managing systems. It's not that there's anything inherently "wrong" with this way of operating, it’s just that it doesn't take full advantage of what the cloud has to offer. Here’s a hint: when you hear an enterprise IT pro talk about “governance,” do you imagine committee meetings or Puppet/Chef? Enough said.
In order to, say, provide a reliable dev/test environment that encourages innovation, you must be able to verify that the development, test, and production environments are identical -- or at least appropriate. The philosophy of DevOps is that deployments are scripted, with those scripts being treated like any other code, tracked and version controlled.
One of the issues Keith discusses in his video is his impression that OpenStack was "built for programmers, not operators." He mentioned that OpenStack might be difficult for traditional Microsoft and VMware admins, who, while very good, are used to working with software that's more "finished.” These are the companies where DevOps has not yet taken hold.
These corporations frequently lack the internal resources to handle a product like OpenStack, which is, as Kenneth Hui says, "ready for prime time", but not necessarily right out of the box. Fortunately, although Keith is right that there is a shortage of experienced OpenStack engineers on the market, they do exist, and excellent OpenStack training programs do exist. Also, enterprises that have trouble finding the appropriate talent do have two options to fall back on: products and services.
Just in the last six to nine months, several prepackaged distributions hit the market. These distros, such as Mirantis OpenStack (which includes the open source Fuel project, a GUI control plane for installing, deploying, and managing clouds), Red Hat Enterprise Linux OpenStack Platform (and its open source clone, RDO), and others, all aim to make installation easy for non-DevOps users. Ubuntu 13.10 even has charms built right into the operating system to aid in deployment.
And of course, as Keith points out, there's always the option of bringing in consultants to help your company get up and running with the cloud, and the cost is often a small fraction of what he's suggesting.
Everybody wants to be first
In the OpenStack community, we're used to companies that want to be out on the leading edge, beating their competitors to the punch by getting there first. But many companies aren't like that. They're comfortable where they are, and they don't see any reason to take risks. Not that they are opposed to change, of course. They just want change that's well defined, well tested, and with a predetermined outcome.
These companies don't care that OpenStack will likely win the race for open-source cloud. All they want to know is what can it do for me right now? Fortunately, the answer is that OpenStack can do pretty much whatever you need it to.
All of this means that if a company is pushing to get the most out of virtualization in general, and the cloud in particular, then that company will likely have the technical competency on hand to be considered "ready for OpenStack."
Enterprises that aren't ready yet will likely find themselves forced into getting ready by the reality of the market. Consumers, both internal and external, have been conditioned by the Internet and other services to expect instant gratification, and companies that don't deliver innovation at that cadence will be pushed out by those who do.
And the age-old question of whether OpenStack is ready for the enterprise? Well let me let Keith tell you, in his own words:
If you want to build a cloud and you have the muscle to customize OpenStack and make it what you need for your enterprise private cloud, or your enterprise hybrid cloud, or your public cloud, then it's a really great solution. It gives you everything that you need as far building blocks to make a great environment, from the storage, Swift, networking, Nova, different capabilities, the ability to switch out OpenContrail for networking, VMware's NSX, OpenVSwitch, whatever you want to use for your networking, it's available.
That's it in a nutshell, really. OpenStack is ready. Even Keith will tell you that, though perhaps not in the context in which he intended it. OpenStack has everything an enterprise needs -- as long as the enterprise has a little bit of programming muscle. And any organization that's really trying to take advantage of cloud will, indeed, have those skills available, even if there may be some training involved.
It seems a small price to pay to stay ahead. And isn't that what your enterprise is all about?