As most IT specialists are only well aware, the enterprise IT world is changing at a pace that is almost unprecedented. From security, to mobile to BYOD, IT managers are facing a blizzard of challenges that were barely on the roadmaps of most CIOs even five years ago. Of all the changes occurring in the enterprise, a very good case could be made that the rapid and widespread adoption of cloud computing is the biggest change of all.
One of the factors contributing to the acceleration of cloud adoption is another well-known IT change accelerator: open source. OpenStack, the open source cloud operating system, was pioneered by RackSpace and NASA, when they set out to build a uniform set of service-based interfaces that would manage and control key compute resources in the cloud – namely: processing, storage, networking and authentication, with integrated management. In other words, Infrastructure as a Service, or IaaS.
Now, IaaS is not new. Amazon Web Services (AWS) set out to do the same thing as OpenStack has since then, but with one catch. As a single company in control of implementation, AWS Elastic Compute Cloud (EC2) pioneered great work at scale that’s legitimized the cloud model and empowered developers as equal partners in infrastructure and distributed apps. They also succeeded in quickening some of the pulse at Vmware, arguably the other essential predecessor to OpenStack. But they did it within a closed architecture, that they controlled themselves top to bottom and end to end.
The most compelling difference with either of these predecessors is that accelerator: OpenStack set out to do it in open source. The reason I say so is this: code transparency in the increasingly complex compute world isn’t a convenience, it’s a must-have. There’s just no other practical way to bring the myriad use cases required by the endless variety application workloads, nor is there any more practical way to get technology innovators – commercial, government, and academic – to collaborate on robust, peer-reviewed, meritocracy-driven code. What’s more, if you have a use case no one has thought of yet, you can take the code and bend it to your will. You don’t have to wait for some vendor to account for your needs someday in their roadmap.
When you combine the code transparency with a uniform set of interfaces for allocating and controlling resources in the cloud, you get a very powerful, versatile, and very extensible platform. Spinning up virtual machines, allocating storage, deploying images, controlling network and security access, all come from a single set of common, well-publicized interfaces. Compatibility is policed by market players with an interest in making the technology interoperate. Unlike the standards of the past, those standards are not passive engineering exercises: they are working code that needs to march through a pretty rigorous set of regressions for every change, dozens of changes per day. (Of course, even the regression test gating framework, called Zuul, is also open source).
Before OpenStack (and Amazon, to be clear), spinning up machines and storage, networking and managing them remotely required a menagerie of specific, often incompatible interfaces from different companies. It led to tremendous waste, both in the amount of cycles required to manage the menagerie, as well as poor utilization. Vmware made a huge contribution, by enabling consolidation to improve utilization – more OS’s, fewer machines.
But the most painful inefficiency was that change was slow and painful, and IT organizations built up huge backlogs of dated applications. Vmware’s consolidation efficiencies did little to address that. By the time developers and system administrators could agree on how to tune a box and its app, everyone was exhausted, and the last thing anyone wanted to do was change it. Who wants to re-install Oracle and build out its data storage any more often than is absolutely necessary?
The Infrastructure-as-a-Service (IaaS) model pioneered by Amazon, and open-sourced by OpenStack, changed all that. It enabled developers to control distributed infrastructure resources directly. Developers rapidly grasped the benefits of truly distributed applications, and built out tremendous innovations, at companies such as PayPal, Webex, Netflix, SalesForce and more. These scale-out applications change rapidly, and treat infrastructure as a fluid resource. Contrast this with the classic approach, where each server is a special, custom-crafted creature, like a pet. It becomes the application’s whole world, and admins give the server a name, stay up late nights when it becomes sick, trick it out with accessories. In the cloud, apps treat your servers like cattle: give ‘em numbers, and if they get sick, shoot ‘em and eat ‘em. One board member of the OpenStack Foundation, Randy Bias, describes this as the ‘pets-vs.-cattle‘ analogy.
However, running on Amazon means you get none of the benefits of optimizing your infrastructure to your business needs – which means utilization, compliance, and not least, competitive advantage. The API set for EC2, and all the permutations of the EC2 platform, are controlled by Amazon. Need something that’s not on their road map? Too bad. Got internal systems – such as ACLs/directory, etc. – that you need to integrate with new distributed apps running in the cloud? Only if Amazon thought of that first. Need to tune your application down to the metal iteratively, with no clear way forward other than test and reconfigure? Not so much.
In a nutshell, working with Amazon is like paying rent on an apartment. Sure, it’s a convenient way to start, and you can call someone else to fix the faucet – unless you can and need to fix it yourself. You give up control. With OpenStack, you get full ownership and transparency from top to bottom, and you can change your cloud to your competitive advantage.
The Foundation for OpenStack
The OpenStack foundation itself was originally incubated by Rackspace, and was formed upon the introduction of the code from the original joint project with NASA — today, July 19, 2010. The code was contributed to the OpenStack foundation, which incubated it and opened for business in the fall of 2012, with the support of a couple-hundred member companies.
There’s a 3-part governance structure: The Technical committee is comprised of 13 peer-elected leads who set the direction of the software development and code. The foundation Board of Directors of is made up of 24 members, including the 8 platinum sponsor companies, 8 of the 13 gold sponsor companies, and 8 individual members elected from at large among the users. The 3d leg of governance is the User Committee, which is made up of nearly 6000 users worldwide. Mirantis is a Gold Sponsor and an elected member of the Board of Directors.
What’s noteworth about the 200 companies who are members of the foundation is that they represent a pretty complete cross-section of everyone who has a stake in the future of cloud computing. IBM, whom you mentioned, is a Platinum Sponsor; as are the top 3 Linux distributors, Red Hat, Canonical, SUSE; plus Nebula, Rackspace, HP, and AT&T. Add corporate sponsorships from Cisco, Dell, Ericsson, Vmware, Juniper, Yahoo, adding up to about 200 supporting organizations — a pretty impressive collection of logos.
The logo collection isn’t what makes OpenStack work; rather, it’s the release and contribution model. OpenStack is not a single project like Linux; it’s a set of projects under a common framework. What’s more, the projects release together on a single, integrated timeline, every 6 months, avoiding a lot of the churn you seen in other open source communities. There’s a design summit every six months to hammer out the roadmap for the next release. The most recent complete release is called “Grizzly”; in the fall, we’ll see the “Havana” release come out.
The best way to gauge the health of the project is to look at who’s contributing and the activity level. Mirantis recently released a dashboard, called stackalytics.com, which shows who’s contributed what to which OpenStack project over a given timeline, both by individuals and companies.
Getting Started with OpenStack
Step one should be intuitive. First, get smart about OpenStack. You’ll ask better questions and you’ll be better able to get help from the community resources. In that, the first thing you really must do is check out the OpenStack site at openstack.org. Pick a project that’s of interest to you, and drill down. Another way is to watch the videos from the recent OpenStack summit.
Most importantly, whether you are supplier to the cloud or a user of the cloud, is to remain focused on the fact that the cloud is not an end in itself. It’s about driving agility for competitive advantage. If you don’t know why your organization needs the cloud, that’s the best place to start.
David M. Fishman is the Cloud Advisory Council Co-Chairman for Open Source Eco-system.