Thursday, December 15, 2011

Comparing open source cloud platforms: OpenStack versus Eucalyptus

Rackspace and NASA recently launched OpenStack, a cloud software stack that has already generated significant buzz in open source and cloud computing circles. What it offers, in a nutshell, is an entryway for hosting providers that want to provide a cloud service to their customers, much like Parallels Virtuozzo opened up virtual private servers to Web hosting companies.

OpenStack offers the promise of do-it-yourself clouds in a secure, private test lab before moving to either private cloudor public cloud, along with insight into the real security issues behind cloud computing and Infrastructure as a Service (IaaS). OpenStack has been hailed as the most significant development in cloud computing to date. What doesn't it offer?
A tie-in to the number-one cloud provider, Amazon, for one. For that, you'd have to turn to Eucalyptus, the other open source cloud computing product on the market. Eucalyptus has been around for nearly three years, a long time in terms of IaaS products. It was founded out of a research project in the Computer Science Department at the University of California, Santa Barbara, and became a for-profit business in 2009.
The benefits of Eucalyptus
One benefit of Eucalyptus is that its open source software components are used without modification, meaning that they can run on unmodified GNU Linux kernels with relative ease. Ubuntu's baked-in cloud computing is Eucalyptus-based and is ready to be installed right after download, making it very convenient.
But that doesn't compare to Eucalyptus' biggest benefit: It is designed to be application programming interface (API)-compatible with Amazon's EC2 platform. That means that a company evaluating EC2 can use freely available software on freely available operating systems to build a compatible test lab. That same company, once they are an Amazon customer, can then use Eucalyptus for development work before pushing to the ever-live world of the real cloud. Eucalyptus is, at the moment, perfect to soothe the cloud angst in decision-makers everywhere.
Interestingly enough, Eucalyptus was also put to use by NASA at their Ames Research Center in California, on the Nebula platform project, until issues stemming from the partially-closed pieces of Eucalyptus forced their hand. It was originally only an issue of scalability, a problem most products suffer from at their inception, but the rift between Eucalyptus and NASA became irreparable when NASA found it could not contribute scalability-resolving code to the project without running afoul of Eucalyptus Systems Inc., the corporate entity behind Eucalyptus.

This is because Eucalyptus is not fully open source. The company behind Eucalyptus maintains some code for commercial Eucalyptus Enterprise Edition (E3) featureslike management, SAN integration, a better back-end database and compatibility with VMware -- necessary functions that the company either can't or won't open source. OpenStack, being 100% open source from the ground up, does not yet offer these features, though they are supposedly on the roadmap.
Eucalyptus is also not a full, 100% implementation of Amazon EC2. While it does implement most of EC2's APIs (and some of the E3 APIs), it is not, nor is it intended to be, a complete carbon copy. What it does well is instant provisioning -- taking the process behind the creation of new servers and automating it to be nearly instantaneous. This is meant to ease the burden on IT resources and improve efficiencies to meet spikes in demand. So long as the server being provisioned is of a supportable type (and that is the main goal in using EC2), all is well with using Eucalyptus either in place of EC2 or as a test zone before moving servers or templates into EC2.
Right now, Eucalyptus has the only fully-functional cloud product that adheres to any standards aside from its own, and it has chosen to align that compatibility with Amazon, the largest player in the market. Eucalyptus' ties to the biggest name in IaaS stand to help its product gain significant market share.

How OpenStack will affect open source
Historically, the open source community has impacted both the economics and the innovations of the computer industry. Open source software is known for causing previously monolithic applications to become commoditized. In the database space, one only needs to look at MySQL andPostgreSQL. In the Web server space, there is Apache, and in application servers, there are TomcatJOnASJBossJetty andGlassFish. In programming and scripting languages, there are the likes of JavaPerl and PHP. GNU Linux, in particular, has done so much to commoditize the operating system market that even phones use it.
What OpenStack promises to do is to make the technologies behind the cloud a commodity. While markets will always have room for closed source projects, the impact of open source on those markets is profound and deep, driving innovation and making systems that were previously unable to communicate with one another become interoperable.
In theory, the OpenStack project offers this and much more, by virtue of being completely open. While it has attracted top-tier support (Citrix, Dell, NTT, etc.), it is still only available as a feature-limited "developer preview" with clear disclaimers about its maturity and stability. It also remains to be seen what Eucalyptus will do with its dominant position in the open source cloud platform market. Will it adapt to the change in the market, playing to strengths while minimizing weaknesses around compatibility and openness, or will the platform remain as it is and risk fading into the background?