Infrastructure as a Service (IaaS) is recognized as facilitating speed-to-market and for its ability to drive business agility. When a company demands specific answers to a business problem, the answers lie in a jumble of calculations, including investments and platform operation and maintenance.
Apache Cloudstack and OpenStack are two widely-known Cloud Management Platforms that can provide an effective abstraction layer for your cloud infrastructure. Both are similar in terms of the services they deliver but seen from an operational perspective, they are very different.
So, which one is the right choice for your company? Let’s take a look at how they compare, from both technical and business perspectives.
History
Apache CloudStack
Apache CloudStack started as a project initially known as VMOps in 2008. Its name was changed to Cloud.com and it released much of the source to CloudStack in May 2010 under GNU General Public License (GPLv3). In July 2011, Citrix purchased Cloud.com, and the remainder of CloudStack’s source code was released as GPLv3.
In April 2012, Citrix licensed the project as Apache Software License 2.0 (ASLv2) and submitted the project to Apache Incubator, it being accepted on 16 April 2012.
On 6 November 2012, CloudStack 4.0.0-incubating was announced, the first stable release after joining ASF. On 20 March 2013, CloudStack graduated from Apache Incubator and became a Top-Level Project (TLP) of ASF.
On 25 July 2016, after the 4.9.0 release, the Apache CloudStack community announced the following types of releases:
- Regular: Introduces new features and enhancements. These releases are targeted at users who require the newest features as early as possible and are able to upgrade when the releases are available.
- Long Term Support (LTS): Focuses on the stability and longevity of releases at the expense of new features. These releases are targeted at users who require stability over the availability of new features and/or have longer upgrade windows.
- Security: Small releases that include only CVE fixes. These releases are produced for all impacted users and supported Regular and LTS releases at the time of CVE identification. Because these releases contain only CVE fixes, all users should upgrade to the latest security release of their preferred type (regular or LTS) as soon as possible.
Apache CloudStack Today
Apache CloudStack is currently at LTS version 4.16.1.0 , released on 16 November 2021, and continues under constant development.
Some of the known Apache CloudStack users today are Telia, KDDI, NTT Data, British Telecom, Cloud.ca, University of Sao Paulo, State University of Campinas, Globo.com, iKoula, Pcextreme, Ewerk, Arsat and many more enterprises and cloud builders. A more comprehensive user list is available on the official Apache CloudStack website. All of these companies are using the Apache CloudStack community packages and not a vendor-distributed package.
OpenStack
In July 2010, Rackspace Hosting and NASA announced an open-source cloud-software initiative known as OpenStack.
The early code came from NASA’s Nebula platform as well as from Rackspace’s Cloud Files platform. All the modules and stacks from these two platforms were merged and released as open-source by the NASA Nebula team in concert with Rackspace. The early code came from NASA’s Nebula platform as well as from Rackspace’s Cloud Files platform. On 21 October 2010, OpenStack Austin (the first OpenStack release) was launched. This launch involved NASA’s Nebula platform being renamed to OpenStack Nova and Rackspace’s Cloud Files platform being renamed to OpenStack Swift.
In 2011, developers of the Ubuntu Linux distribution adopted OpenStack with an unsupported technology preview. Ubuntu’s sponsor Canonical then introduced full support for OpenStack clouds, starting with OpenStack’s Cactus release.
In 2012, Red Hat announced a preview of their OpenStack distribution, beginning with the “Essex” release. After another preview release, Red Hat introduced commercial support for OpenStack with the “Grizzly” release in July 2013.
In 2012, NASA withdrew from OpenStack as an active contributor, and instead made the strategic decision to use Amazon Web Services for its cloud-based services. In July 2013, NASA released an internal audit citing lack of technical progress and other factors as the agency’s primary reason for dropping out as an active developer of the project and instead focusing on the use of public clouds.
OpenStack Today
Some of the publicly-known OpenStack users are China Mobile, T-Mobile, Yahoo, University of Edinburgh, GAP, PayPal/EBay, Walmart, Comcast and more.
Today, the OpenStack Foundation has 38 active projects that are in the Yoga release.
Architecture
Apache CloudStack
Apache CloudStack offers an approach with minimal friction. It’s a monolithic cloud management platform that abstracts servers, storage, and network. The users and accounts are isolated in a domain hierarchy that logically isolates cloud resources, providing a multi-tenant cloud platform.
There are three different APIs: OAM&P (Operations, Administration, Maintenance, and Provisioning) API, End-user API and Plugin API. The End-user API is a REST-like API through which end-users and administrators can control CloudStack. There are various client-side bindings like Ansible, Terraform and Packer that allow the caller to quickly put together scripts to automate processes within CloudStack. The OAM&P API is used for CloudStack components to talk to the ServerResource, which then translates this API to what the hardware resource understands. This API is based on JSON and can be written in any language and run on any convenient platform. The Plugin API allows users to insert code directly into CloudStack deployments to add to or modify the behaviour of CloudStack. This is a Java API and there is a set of predefined functionalities exposed through this API. CloudStack is also integrated with Kubernetes, enabling users to run hybrid cloud workloads.
Because of its integrated architecture, CloudStack is installed as a single product. This, simplifies deployment, operation, maintenance, and upgrades, significantly reducing downtime in a production environment.
OpenStack
The OpenStack platform is a collection of separate projects, designed to work together to handle the core cloud-computing services of compute, networking, storage, identity, and image services. It is possible to combine these services together to deliver the desired features to an IaaS cloud.
Essentially, OpenStack is a set of commands for managing each cloud infrastructure resource. These commands allow the resources to be abstracted and made available to end-users.
Comparison Between OpenStack and CloudStack
Similarities
While OpenStack and CloudStack can be used in different ways, they both have similarities:
- New versions of both platforms are released periodically by their respective platforms, with improvements made to the features
- Both can be used for either public or private cloud.
- Both OpenStack and CloudStack have a straightforward and easy-to-understand user interface.
The scope of the OpenStack Foundation has led to many additional projects being created. Below we compare which OpenStack projects would be required in order to match the functionality of Apache CloudStack.
Apache CloudStack | OpenStack | |
---|---|---|
Compute | The management core connects to the hypervisor’s native API through the Hypervisor Guru adapter.Supports multiple hypervisors including KVM, VMWare, XenServer, XCP-ng, and Hyper-V.
Also supports Kubernetes for containerized applications. |
Sub-project: NovaThe management process and API run as an OpenStack module to control the Hypervisor.
Has full support to KVM and partial support to VMware and Hyper-V. Uses the sub-project Heat to manage container services like Kubernetes. |
Block Storage | Manage the Storage Appliance natively using the hypervisor API.Can also extend the storage control using the pluggable Service API to control IOPS and create LUNs for example. | Sub-project: CinderThe management process and API run as an OpenStack module to provisioning block storage.
Inform the path and location to the compute Nova module through message queue service. |
Cloud Networking | Orchestrate the network using a combination of core management and virtual appliances.Separates all customer networks to increase multi-tenancy capability. | Sub-project: NeutronUse the hypervisor layer to orchestrate the users’ network. |
Templates, Snapshots, and ISOs | The Secondary Storage is used to store templates, disk snapshots and ISO images.Supports NFS, OpenStack Swift and S3 protocols. | Sub-project: SwiftStore templates, disk snapshots and ISO images in a combination with sub-project Glance. |
User Interface | Is a modern role-based progressive CloudStack UI based on VueJS and Ant Design.Uses the CloudStack API to manage the entire resources including CloudStack administration and configuration. | Subproject: HorizonBased on python Django.
It does not cover all the operation functions and it is often necessary to rely on the command-line of each sub-project. |
System Usage | The core management collect events related to resources.Record all events related to entire user operations. | Sub-project: CeilometerData collection service that provides the ability to normalize and transform data across all major current OpenStack components. |
Identity | Use local, LDAP, AD and SAML2 to identify and authorize users.Organizes user accounts in hierarchical domains, enhancing the organization of the multi-tenant environment. | Sub-project: KeystoneKeystone is an OpenStack service that provides API client authentication, service discovery, and distributed multi-tenant authorization. |
Deployment
OpenStack and CloudStack also differ in how their components are selected for deployment. An OpenStack deployment uses OpenStack components to support each required cloud function. The deployment will include many components including Nova for host hypervisor management (compute), Glance for OSes templates, Horizon for user interface, Newton for guest network, Swift and Cinder for object and block storage, and Keystone for identity.
Numerous users have provided feedback on OpenStack on review platforms like TrustRadius, GetApp, and G2Crowd. The feedback suggests that OpenStack is hard to deploy and troubleshoot and that it’s difficult to get experienced personnel to support it. Companies also require command-line skills in order to manage them efficiently.
By contrast, Apache CloudStack has a pluggable model. It includes a management component, a compute component that allocates virtual machines to individual servers and an image repository, network support, load balancing as a service, firewall, virtual private clouds and complex VLANs, identity service (local, LDAP and federated based SAML2 identity providers), VPC and Kubernetes.
It’s possible to get a CloudStack test environment up and running quickly, as mentioned by Ernest Hamilton from Tech Times:
“CloudStack is the first-choice platform for small and medium companies because of its excellent user interface and the availability of multiple useful features. This CMP is very intuitive, so everyone can use it. The Installation process is so easy that you can actually have a functional cloud in a day.”
There are some initiatives to improve the deployment of OpenStack, but they aren’t sufficient to catch up a smooth operation. In addition, to reduce the risks, you need to spend money buying a subscription from partners like IBM, Cannonical, and Mirantis. Hence these vendors are not compatible with each other, this can also generate another problem: vendor lock-in. “It’s OpenStack or Vendor Lock-In?” said AT&T.
Apache CloudStack, on the other hand, is stable from the community origin master branch tree. This completely removes any vendor lock-in, since it is the base code used by all its users, bringing confidence into the production operation environment.
Hypervisor
Both OpenStack and CloudStack support a wide range of hypervisors. OpenStack supports KVM, VMware ESX/ESXi, Xen (not XenServer/XCP-ng), and Hyper-V. Apache CloudStack supports KVM, vSphere, Hyper-V, XCP-ng and Citrix XenServer.
Cross Hypervisor Support Matrix
Apache CloudStack | OpenStack | ||||||
---|---|---|---|---|---|---|---|
Feature | KVM | VMware | XenServer | KVM | VMware | XenServer* | |
Launch instance | Y | Y | Y | Y | Y | ?** | |
Stop instance | Y | Y | Y | Y | Y | ? | |
Attach volume to instance (live) | Y | Y | Y | Y | Y | ? | |
Detach volume to instance (live) | Y | Y | Y | Y | Y | ? | |
Attach virtual network interface from instance (live) | Y | Y | Y | Y | Y | ? | |
Detach virtual network interface from instance (live) | Y | Y | Y | Y | Y | ? | |
Evacuate instances from host | Y | Y | Y | Y | Y | ? | |
Rebuild instance | Y | Y | Y | Y | Y | ? | |
Get instance status | Y | Y | Y | Y | Y | ? | |
Get instance metrics | Y | Y | Y | Y | Y | ? | |
Instance live migration | Y | Y | Y | Y | Y | ? | |
Reboot instance | Y | Y | Y | Y | Y | ? | |
Rescue instance | Y | Y | Y | Y | Y | ? | |
Set instance password | Y | Y | Y | Y | N | ? | |
SSH Key, Meta-Data/User-Data Support | Y | Y | Y | Y | N | ? | |
Config Drive Support | Y | Y | Y | Y | N | ? | |
UEFI instance boot | Y | Y | Y | Y | Y | ? | |
Add host in maintenance mode | Y | Y | Y | N | N | ? | |
Console Support (novnc) | Y | Y | Y | ? | ? | ? | |
VM Snapshot (disk+memory) | Y | Y | Y | Y | N | ? | |
Volume Snapshot | Y | Y | Y | Y | Y | ? | |
Attach/Detach ISO | Y | Y | Y | ? | ? | ? | |
VM Backups | N | N | Y | ? | ? | ? | |
VM HA | Y | Y | Y | ? | ? | ? | |
Security Groups | Y | Y | N | ? | ? | ? | |
Isolated Networks | Y | Y | Y | ? | ? | ? | |
L2 Networks | Y | Y | Y | ? | ? | ? | |
VPC | Y | Y | Y | ? | ? | ? | |
Shared Networks | Y | Y | Y | ? | ? | ? | |
iSCSI | Yes (Shared Mountpoint) | Yes (VMFS) | Yes (CLVM) | Y | Y | ? | |
Local Disk | Y | y | Y | ? | ? | ? | |
NFS | Y | Y | Y | Y | ? | ? | |
SMB/CIFS | N | N | N | ? | ? | ? | |
Ceph/RBD | Y | N | N | ? | ? | ? |
*XENSERVER – There is no reference in the official OpenStack site.
?** – There is no reference in the official OpenStack site.
Ease of use
Apache CloudStack provides a single UI to consume cloud resources and monitor asset usage. The centralized administration makes it simple and straightforward for everyday use. It delivers operational simplicity when managing complex infrastructures in a single location or in several remote ones. On the contrary, OpenStack is not as easy to use as CloudStack.
While the OpenStack modular architecture seems attractive, it can be difficult to keep it working effectively. This is because of the platform’s complexity, which many users commented on in their blogs and in an OpenStack User Survey.
Rene Buest, Gartner Analyst covering Cloud IT Services, did a very interesting analysis on his personal blog where he measures complexity versus risk through an OpenStack lens. During the analysis, he said that:
“IT organizations who attempt to deal with this complexity on their own by integrating all components from scratch and being up-to-date at all times, tend to expose themselves to the risk of creating their own, unmanageable cloud solution instead of using an industry compliant standard.”
On the operational side, Apache CloudStack can help with reducing costs. Joaquim Dos Santos, R&D Director at Ikoula, said to Business Wire:
“They eliminate all vendor lock-ins and ensure the company has full control over their infrastructure by being open-source. Other significant benefits are the easy management of extensive infrastructure, guaranteed reliability, and seamless scalability. CloudStack and XCP-ng also give a financial advantage to IKOULA, which is extremely important in their market segment. According to their team, operating XCP-ng and CloudStack results in greatly reduced costs than other solutions. They have also greatly reduced their reliance on 3rd parties to help maintain their environment.”
The Choice of CMP Within SMBs and Enterprises
In the State of the Cloud Report from Flexera in 2021, 750 global cloud decision-makers were asked various questions about their technology adoption. The results showed that both CloudStack and OpenStack are popular, with OpenStack still being the market leader.
However, the report also showed an interesting trend. More people tested Apache CloudStack (with plans to use it in production) than OpenStack. The trend is the same within SMBs and Enterprises, and it appears to indicate a growing interest in CloudStack.
How to Chose the Right Cloud Management Platform for Your Business
Both CloudStack and OpenStack are leaders in the open-source CMP segment, and both are supported by significant open-source developer communities. While OpenStack offers the modular flexibility to deliver services on a per-user basis, Apache CloudStack offers a path that already considers all IaaS cloud resources in a unique way. As many users and industry experts notice, OpenStack requires a lot of customizations before it can be deployed into production and a relatively big team to support it in the long term. In contrast, Apache CloudStack can be deployed and operated easily using the base-code provided by its community, it is straightforward and decreases significantly time-to-market when launching new services.
To manage your infrastructure successfully with OpenStack, you need a team that has in-depth knowledge of the platform, along with development, architecture, and operation skills. Apache CloudStack, being a platform without the need for dozens of integrations, covers all aspects of an IaaS cloud with a regular operations team. As a result, it enables products and services with much less effort.
When making the right choice for you, be sure you consider all of the above-mentioned facts and make a plan in a long term. Focus firstly on the purely technical aspects and evaluate which technology is a better fit for your needs and existing capabilities. Then consider also all of the business aspects in the long-term. Choose the cloud management platform, which will give you more flexibility, ease of use and will save you time and effort.
Marco Sinhoreli is a seasoned Technical Marketing Manager at ShapeBlue, with over 25 years of IT experience. As an Apache CloudStack expert and committer, he specializes in creating and delivering technical marketing content that bridges the gap between technology and business. Marco has consulted major companies on implementing IaaS solutions with CloudStack, focusing on delivering cloud infrastructure that supports both immediate and long-term business needs. When he’s not diving into cloud solutions, Marco loves playing guitar, exploring new places, and staying updated on politics.