CloudStack Graduates to Top-Level Apache Project
April 03, 2013
The Apache Software Foundation announced in late March that CloudStack is now a top-level project. This is a promotion from CloudStack's incubator status, where it had lived after being released as open source by Citrix.
This promotion provides additional encouragement to companies and developers looking to contribute to the project, because it validates the CloudStack community and demonstrates ongoing support under the Apache Software Foundation.
- Agile Service Desk: Keeping Pace or Getting out Paced by New Technology?
- Optimize Your SQL Environment for Performance & Flexibility
- Build a Business Case: Developing Custom Apps
- A Practical Guide to Understand and Benefit from the Consumerization of IT
CloudStack provides a complete IaaS software suite for private, public and hybrid cloud environments. It's based on a product called Cloud.com, which Citrix acquired in 2011. CloudStack comes from a proprietary code base that was used in production before being acquired.
The suite is both stable and scalable, and CloudStack is currently used by companies such as Disney and Zynga, among others. The project is a turnkey platform complete with enterprise and service provider deployment models supported by Citrix.
CloudStack is one of several platforms that provide orchestration and automation across compute, storage and network resources. CloudStack's biggest competitor in the open-source world is OpenStack, which has attracted great deal of developer effort from the open source community as well as from companies such as VMware, Cisco and Rackspace.
However, as I argue in this video debate with Cisco's Colin McNamara, CloudStack is production-ready, whereas OpenStack is not.
While OpenStack has made leaps and bounds over the last year to produce a set of powerful modules for compute, storage and networking, CloudStack had the advantage of being based on shipping commercial code. OpenStack is well suited for development environments, whereas CloudStack is deployed for production within enterprise and service provider customers. Additionally CloudStack supports upgrade paths for new releases which is a current hang-up with OpenStack deployments.
A common critique of CloudStack is that it's primarily Citrix-driven and has only a small community. In truth, the Apache Foundation and CloudStack team have built a community of developers in which fewer than one third come from Citrix. The move to a top-level project means that CloudStack is now a self-governing project with a large and diverse group of contributors.
CloudStack provides a native, fully-open RESTful API. CloudStack uses a RESTful API to expose the system functionality in a programmable fashion. (I've written about the importance of APIs here.) This allows CloudStack to be easily extended into existing tools and allows new tools to be written to take advantage of the core CloudStack capabilities. CloudStack provides an Amazon AWS-compatible API for managing S3 and EC2 services running in the public cloud. OpenStack also supports RESTful APIs.
CloudStack can work with a wide number of hypervisors, including KVM, VMware, XenServer and Xen Cloud platform (XCP.) OpenStack includes similar hypervisor support, with some feature disparity on both sides. CloudStack can be managed via CLI or a Web interface.
Many options exist for building out a private cloud infrastructure, including pre-integrated hardware and software stacks from companies such as VCE, HP, Dell and IBM; open source projects such as CloudStack and OpenStack; and via administrative deployment tools such as Puppet and Chef.
Companies looking to build a private cloud should assess the varying technologies and find the right fit for their organization. Having more options is good for the companies looking to move to a cloud model, but also means more homework needs to be done.
When assessing open source platforms, you must consider several key factors, including the size of the community (though a larger community does not necessarily dictate active participation), contribution of code, and vendor support. You also have to measure how much customization and internal development the project will require, and have a plan for how you'll support and upgrade the code.
Disclaimer: This post is not intended as an endorsement of any particular software project or company.