Cloudscaling CTO Randy Bias posted an insightful blog April 7 on GigaOm about the CloudStack project established at the Apache Software Foundation last week. Some CloudStack proponents, in the process of lauding its merits, denigrated an existing open source project, OpenStack.
Bias is an OpenStack advocate, and his detailed take on Citrix Systems' CloudStack move had just the right cadence, a measured response by someone who knows both systems well.
This debate reflects a larger one going on inside many IT shops. Cloud computing looks like it's here to stay, but many companies wish to first work with a private cloud inside their own doors before venturing out onto the public cloud, such as Amazon's EC2 infrastructure-as-a-service. How to build that private cloud is a hotly debated topic.
One possibility is OpenStack, an open source code project started in July 2010 with the backing of NASA. It also had the active backing of Rackspace, which was motivated to contribute its own Storage Files code as OpenStack's Swift storage service to help get the project out of the starting blocks. If OpenStack code won acceptance inside companies, then Rackspace's business prospects would be enhanced as private users of OpenStack turned to a compatible, public service provider for hybrid cloud operations.
[ Learn more about how OpenStack is faring in the open marketplace. See With Rackspace Cloud, OpenStack Goes Primetime. ]
Rackspace encouraged the OpenStack project in several ways, with Rackspace supplying quarters for design meetings and Rackspace employees taking leadership roles in the organization. Many technology firms liked the idea that there would be an open source alternative to Amazon Web Services, but they nevertheless had reservations about a project led by Rackspace, with so much self interest at stake. Some of those doubts were resolved April 12 with the announcement of the OpenStack Foundation, which took over governance of the project.
Just ahead of the OpenStack Foundation debut came the announcement of an alternative open source project, Citrix's donation of CloudStack code to the Apache Software Foundation. Cloud.com had an advanced version of OpenStack that it said was easy to implement. After acquiring Cloud.com Citrix urged that CloudStack become the rallying point for those who want an alternative to proprietary cloud architectures. At the same time, however, Citrix claimed that CloudStack was not only more advanced than OpenStack, but also more Amazon-like than the alternatives.
Thus, the Citrix move, while increasing choices, was also a little confusing. Do we really need two competing, and in some ways similar, projects? As if to address that point, Bias entered the debate with his April 7 blog post that attempted to deal with the "more Amazon-like" issue.
Bias declared his leanings right off the bat: He supports OpenStack as CTO of Cloudscaling, whose cloud operating system, Open Cloud OS, is based on OpenStack. One wishes the proponents of CloudStack could have declared their biases and self interest as straightforwardly. Do Citrix executives dislike the fact that the OpenStack project is focusing more on open source KVM than Xen, on which Citrix products are based? To me, that's one of the unstated reasons why Citrix wanted to create an alternative project. Also, if OpenStack becomes the standard bearer, that leaves Citrix with little return on its reported $200 million-plus payment for Cloud.com last July.
Bias, though a member of the OpenStack camp, was also behind one of the largest implementations of CloudStack before Citrix's purchase. He was the principal architect behind Korea Telecom's (KT's) transition from telecommunications provider to cloud services/telecom provider, as CTO of Cloudscaling. He is also a former CTO of GoGrid, so he knows the ins and outs of cloud infrastructure.
In his blog post, Bias argued against claims that CloudStack is the most viable open source project because it is closest in design to Amazon Web Services.
Sameer Dholakia, VP and general manager of cloud platforms at Citrix, was interviewed by GigaOm writer Derrick Harris when the CloudStack project was announced. Dholakia predicted the winners in the era of cloud computing will be those who design "from the ground up with a true Amazon-style architecture, proven at scale in real production clouds, compatible with Amazon architecture ..."
So Amazon-ness is the litmus test for cloud success and CloudStack has got it, according to Dholakia. Furthermore, Dholakia told Harris that Citrix was tired of waiting for OpenStack to get organized and mature its technology. CloudStack was a year to two years ahead of OpenStack and the gap wasn't closing, he's quoted saying.
Bias' blog deconstructs such statements, phrase by phrase. For example, what's "Amazon-style architecture?" Many would like to claim an Amazon-style architecture because they have end-user self provisioning, a standard x86 data center infrastructure, perhaps automated billing. But these attributes apply to anyone meeting the definition of cloud infrastructure service provider.
One of the ways that Citrix might claim compatibility is through the Xen hypervisor. Citrix produces XenServer, the commercial hypervisor based on open source Xen, and it builds cloud workloads using it. Amazon Web Services was built on Amazon's proprietary variant of Xen, which, nevertheless, probably still closely resembles Citrix XenServer. To me, that gives Citrix a claim on compatibility, but that alone is not enough.
Bias noted that CloudStack deployments have been influenced by his successful implementation at KT. In that case, Arista switches were used for building a layer-2 hardware virtual area network. But he noted that Amazon Web Services doesn't provide hardware VLANS; it will add VLAN service only if you contract for Amazon's Virtual Private Cloud. Default AWS networking is "a flat, layer-3 network," he wrote.
"Default CloudStack deployments aren't network compatible with AWS," he concluded. That means some routine uses of CloudStack at an implementation such as KT, with an extra security measure built into the network, are not available in plain vanilla AWS. Not a knock on Amazon because it offers them as an added service, just a fundamental architectural difference in approach.
KT's CloudStack implementation also included an in-rack storage area network using NexentaStor. Bias noted that AWS also doesn't use a storage area network for customers' standard VMs; rather it uses direct-attached storage on its servers "that is surfaced as ephemeral storage for each VM." That's another way of describing Amazon's assignment of a limited amount of nearby disk space as the virtual machine does its work.
As is typical in Amazon's low-cost infrastructure, no guarantees are provided for the persistence of local VM storage, noted Bias, meaning if the hardware fails, the user has either taken its own backup measures or the data is lost. CloudStack, on the other hand, uses XenServer clusters to guarantee persistent storage of the runtime data, meaning the same conclusion about CloudStack as in the first example: "The storage architecture for CloudStack is different. OpenStack, in comparison, uses a default storage model which is exactly like AWS," Bias wrote.
Another major difference is how CloudStack is architected as "a single, monolithic piece of Java code. Most of the code resides in a single .jar file and runs on a single Java app server by default," wrote Bias, hitting a weakness of CloudStack design under the subhead, "1999 called and wants its application architecture back." Amazon cloud operational software is built in modules that can be distributed to different physical servers and distributed application servers in a services-oriented architecture fashion. "The core software architecture is not similar at all between AWS and CloudStack," Bias wrote. Indeed, most startups building private cloud software are following the Amazon model of services in independent modules, not a single, complex file.
In its approach to networking, short term storage, and services orientation, CloudStack is less like Amazon than OpenStack. In the area of cloud APIs, another open source company, Eucalyptus Systems possesses that as its specialty. Even Amazon agrees. When it wanted a partner in building private clouds compatible with EC2, it recently chose Eucalyptus.
CloudStack has to substitute a translator between CloudStack APIs and Amazon's APIs, called CloudBridge, changing EC2 API calls to CloudStack-native API calls. Eucalyptus' storage service API is so close to Amazon's that it can be safely substituted for AWS.'
For whatever reason, Citrix felt compelled to overstate its similarity to Amazon as it sought support for CloudStack as open source code. Under review, it doesn't stand up to the claim that it is "the only cloud platform on the market ... designed from the ground up with a true Amazon-style architecture."
"It's not even close," concluded Bias in offering a welcome antidote to Citrix's bias.
The Citrix statements play best only if they are taken in the context of its perennial competition with VMware. The latter's cloud products can probably be proven to be less Amazon-compatible than CloudStack, since it comes from a completely different technology base and set of objectives. But Citrix's competition with VMware is not a sufficient basis for establishing the best open source code project to support private clouds.
On the contrary, by one of the key metrics used by open source developers themselves--the commitment of the project to accomplish something new, something not yet fully in the open source arena, such as an innovative cloud computing stack--is a key measure of whether developers will support the project or not.
Another way of asking the same question is how many companies, and how diverse a group of companies, are supporting the project by contributing code? On that measure, OpenStack wins hands down. In Citrix's submission to the Apache Foundation, it was not able to list an extensive set of reviewers and contributors who were outside of Citrix, knowledgeable observers say.
CloudStack may yet emerge as a sustainable, long-term project, but one simply with a narrower base of support. Nothing wrong with that. Choice is good among open source projects, as well as commercial products. OpenStack now has IBM, Red Hat, Cisco Systems, HP, and 162 other companies behind it, support that appears to be diverse, coming from companies that are vastly different in size and hosting many individual contributors.
The OpenStack developers are consciously seeking some compatibilities with Amazon. At the same time they reserve the right to innovate in cloud computing as the members of the project see fit, rather than simply following Amazon's lead. That makes OpenStack a potentially good basis for building private enterprise clouds with a future measure of compatibility with Amazon, while not foreclosing the option of being more enterprise oriented than Amazon in certain areas.
Find out how to move beyond server virtualization to build a more flexible, efficient data center in the new Private Cloud Blueprint issue of Network Computing. (Free registration required.)