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.
The verdict
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?
I’ve just spent four dedicated weeks attempting to get a working OpenShift installation and I have to weigh in that it’s not a suitable solution unless you have seemingly unlimited hardware. Default timeouts are unforgiving to the low end and cannot be adjusted post-bootstrap. Many features–as thinly documented–just don’t work. I’ve been taking notes throughout this process and the ledger of workarounds alone is staggering.
It’s teasingly close to being ready. The would-be cloud architect is given sexy tools which work quite well a percentage of the time, lulling him into the sense that this will be easy. It is not easy.
I’m thinking that all this needs a single environments.yaml file which completely pre-determines the needs of the collective, to include identifying images to download later when the Dashboard is available. And then you’d kick off the bootstrap and come back the next day to see how it went.
The problem with the current setup is that it literally consumes all of my time. I start a process and have to babysit the progress, watch the logs in paranoia of the next killing bug which will render my efforts a waste.
I’ve learned to just keep the gparted disc handy because it’s just easier to bring the node to my desk, nuke the partitions with gparted and re-introduce the node back to MAAS. The built-in method of erasing disks upon release simply doesn’t work and attempting to re-provision something previously used… simply doesn’t work. In a cloud-management solution you kind of expect these things to be taken care of for you.
The community support on ask.ubuntu.com for MAAS and OpenStack is seemingly non-existent. Although people are fixing bugs in the various modules at a diligent pace, this represents fixes to versions which are not the version you’re running. If you wish to be on the bleeding edge and update daily then perhaps this may work better but then again, that’s not the norm for an enterprise.
I’m going to guess that when you say “OpenShift” here you actually mean “OpenStack”. (If you really DO mean OpenShift, please not that that’s a whole other animal.)
OpenStack isn’t easily; I completely agree with you there. That said, things have moved along quite far since I wrote this article, and actually, even since you wrote this comment. I can’t speak for Canonical’s OpenStack distribution. I will say that we are very proud of Mirantis OpenStack’s stability.
That said, I like to compare it to photography; you can take a picture with your phone, and get a decent shot, but without much control. Or you can get a professional DSLR that gives you tons of control, but there’s definitely a learning curve.
Community support is actually very good for OpenStack; you’re just looking in the wrong place. You want ask.openstack.org, or any of the OpenStack mailing lists, or IRC. However, if we’re talking about an enterprise here, then we’re talking about actually paying for commercial support, and in that case I would say that there are excellent organizations providing it, including (my favorite, of course!) Mirantis.
I do hope that you take advantage of what OpenStack has to offer. Do yourself a favor and download Mirantis OpenStack (http://software.mirantis.com) and try it out; much easier than anything else out there, really.