OpenStack has more than 100 companies supporting the project with some big names behind the initiative including Dell, HP, Rackspace, Citrix and NASA. Last week at VMworld, my colleague and CUBE co-host John Furrier made the comment: “Everyone’s flocking to OpenStack…It’s the burning bush of cloud.”
It’s true. Companies are seeing the momentum behind OpenStack, watching Amazon’s strong position and saying “we need to get on board…we need a strategy.” The OpenStack messaging is spot on. But in a blog post prior to VMworld last week, Furrier did the unthinkable – he asked some tough questions about an open source project. Specifically, he questioned the enterprise readiness of the OpenStack platform and its delivery, today.
Questioning any open source initiative is dangerous territory; especially one as high profile as OpenStack. With trendspotters like Tim O’Reilly praising the initiative it’s success is almost certainly assured, right? Well hold the phone Sparky – before we put OpenStack in the “cloud computing hall of fame” it’s worth a quick reality check. This is especially important for IT practitioners placing bets on the cloud.
Let me net out what I learned at VMworld last week. OpenStack may be the future but it sure isn’t the present. We asked guest after guest what they thought of OpenStack…what’s the market traction look like? Where is adoption? The clear consensus is that OpenStack may be cool with lots of love to go around and great messaging but as far as enterprise-class production deployments go, OpenStack isn’t ready.
While much of this rhetoric came from those that are quasi-competitive to OpenStack (i.e. they have an incentive to slow it down), the comments that were the most informative and practical for me were those from Luke Kanies, CEO and founder of Puppet Labs. Puppet is a big supporter of OpenStack, heavily involved in the project. But in the words of Kanies:
“It’s not useful to talk in the future tense….It’s really only useful to talk about what you can do right now…telling me that I will absolutely be able to deploy OpenStack in a year is not that helpful. We’re big boosters of OpenStack…but we find it very hard to talk about OpenStack because we can’t point to a lot of customers that are using it.”
Here’s the full segment of Luke’s comments:
What The Experts Say
I’ve spoken with a number of developers and technical experts about OpenStack and generally the sentiment is very positive. People are excited about the movement and the collaboration. But users must be careful about deploying OpenStack in enterprise-class environments. Specifically, the current capabilities of the platform don’t live up to the marketing hype so enterprise IT practitioners must be certain to deploy OpenStack in the right use cases—i.e. limited, non-production environments today. Here’s some of what I’ve learned:
OpenStack is a cloud-scale operating environment that has three major components including compute, storage and an image service for discovery and delivery of virtual disk images.
The OpenStack object store (codenamed Swift) comprises a set of pre-existing open source technologies tied together by Python scripts and services. At its heart is an object store using a simple key/value retrieval system accessible via a RESTful HTTP API. Replication is done asynchronously.
Some developers complain that the Python-based system is inefficient but others like working with Python – I don’t have an informed opinion here. The bigger issues with OpenStack generally and its object store specifically are the following:
As is the case with many open source projects, documentation is severely lacking and enterprise practitioners must be cautious with regard to support.
Objects are restricted to 5GB. This seems to be an area where many competitors are attacking OpenStack. It seems to have some merit as customer requirements suggest that an unlimited file size for uploads and downloads is highly desirable and necessary in many use cases.
While large object support is a feature in the development pipeline that has been approved, files still have to be uploaded in 5 GB maximum chunks. With the large object feature, files can be downloaded as a single object. However, the use of parallel uploads as a workaround for the file size limitation makes data integrity checking difficult.
Data integrity seems to be an issue, which means recovery from failures could be problematic. Data is not guaranteed to be current, especially when under load. OpenStack has a “Consistency Window” that grows with load. There’s no mechanism to provide alerts to know when you’re in an inconsistent state. Replication eventually occurs but it happens over time and other zones may not know replication is pending– creating the possibility of somewhat scary cascading effects. To wit, from the OpenStack Architectural Overview:
“There are times when container or account data can not be immediately updated. This usually occurs during failure scenarios or periods of high load. If an update fails, the update is queued locally on the file system, and the updater will process the failed updates. This is where an eventual consistency window will most likely come in to play. For example, suppose a container server is under load and a new object is put in to the system. The object will be immediately available for reads as soon as the proxy server responds to the client with success. However, the container server did not update the object listing, and so the update would be queued for a later update. Container listings, therefore, may not immediately contain the object.”
IT practitioners within the context of their specific use cases should understand the implications of this statement carefully.
Some developers point out that OpenStack uses configuration files to hold account whitelists and blacklists, which may not be practical as the number of accounts grow.
In order to mirror a file system, a hierarchical structure has to be hacked and the workaround is complicated.
Administration appears cumbersome and limited.
These are just some of the warts I found with OpenStack. It’s not surprising and you’d expect this with any new open source project. Nonetheless, my take on OpenStack is you should pay attention to the movement. By all means go to conferences and learn about OpenStack. There’s tons of momentum in the developer community and it looks like the platform has great promise down the road. But it’s simply not ready for prime time today and the big question is will it keep pace with the market’s requirements.
Only the future will provide these answers but for those living in the present – practitioner beware.