As an service provider, making the decision about which cloud infrastructure and technology components to implement can be overwhelming, especially when it comes to choosing one orchestration platform over the other. A large portion of the discussion between CloudStack vs OpenStack centers around the architectural design of each project. CloudStack takes an integrated, holistic approach, whereas, OpenStack’s design architecture is complex and features individual projects with their own separate APIs to integrate as a provider.
Appcore’s engineers compared the architecture of both Apache CloudStack vs OpenStack and walked through the steps to deploy each to compare functionality and features. During the process they discovered some distinct difference between the two. Below we have outline specific components and how they compare.
CloudStack: The compute section of the overall CloudStack architecture is the Infrastructure-as-a-Service (IaaS) foundation. The CloudStack compute layer’s sole purpose is to provide a running virtual machine. Each compute node is orchestrated through the core management server and supports multiple hypervisors and virtualization platforms, including XenServer, vSphere, KVM and Hyper-V. It leverages the native capabilities of the hypervisor and is continually adding deeper integration for all hypervisors. CloudStack has now added support for VMware vMotion and vStorage Motion in an effort to handle traditional enterprise style workloads.
OpenStack: The OpenStack project has been developed modularly which has its benefits but also creates various roadblocks. Plus, the project is made up of multiple sub-projects influenced by several vendors and managed by separate technical leads rotating every six months. The commitment to adding new features at such a fast rate is a concern to many, especially those who value stability and quality assurance for their customers.
OpenStack’s compute layer is part of the Nova sub-project, which is contained as a separate management process and API. The architecture was designed to primarily support XenServer/KVM with limited support for VMware and Hyper-V. It was architected to support compute cloud style workloads through local storage and has limited networking support.
CloudStack: The management server communicates with the hypervisor to provision volume resources and utilizes the protocols supported by the respective hypervisor. The latest integrations allow native storage area network (SAN) communication from the management server to facilitate provisioning, snapshots and thin provisioning. This allows more advanced capabilities of the back-end SAN to be leveraged. The block storage orchestration is designed so the management server is not involved in the block level operations; instead it is only used to manage volumes.
OpenStack: Block storage is a separate sub-project called Cinder and it has a separate management process and API. It orchestrates the provisioning of volumes and communication of the volume location to the compute project. It was designed to integrate directly with a significant number of back-end systems as well as supporting a few reference protocol implementations. It is also generally desired to set up one Cinder management server per storage back-end, but newer versions allow supporting multiple back-ends through one management server.
Today’s blog post is a comparison is from our latest eBook: CloudStack vs OpenStack. Download it now to further compare the architectural components including cloud networking, templates, snapshots, ISOs, user interface, system usage and authentication/authorization.
photo credit: James Jordan