Comparison of OpenStack and CloudStack 1) Historical background and overview OpenStack was jointly released by NASA and Rackspace in 2010. The two contributed computing code (Nova) and storage code (Swift) respectively, and are licensed under the Apache license agreement.
The goal of OpenStack is to provide a universal open source cloud computing platform that can be used to build both public and private clouds, and to make the construction of the cloud platform as simple and convenient as possible, while also being able to quickly expand horizontally.
OpenStack is independent of any enterprise, follows the concepts of open source, open design, open development process and open community, and is completely led and maintained by the community.
The release cycle of OpenStack is half a year. So far, 8 official versions have been released. The latest version is Havana. After each version is released, the community will hold a summit where companies and developers from all over the world discuss the design of the next version.
, while sharing OpenStack-related technologies. It is worth mentioning that the most recent summit was held in Hong Kong, China.
CloudStack was originally developed by Cloud.com and is divided into two versions: commercial and open source. The open source version is licensed through the GPLv3 (GNU General Public License, version 3) license agreement. After Citrix acquired Cloud.com in 2011, all code
Open source, and contributed CloudStack to the Apache Software Foundation in 2012, becoming an Apache incubation project. At the same time, the licensing agreement was changed to a more relaxed, open and business-friendly Apache license agreement. CloudStack was upgraded to an official Apache project in March 2013.
.
The goal of CloudStack is to provide a highly available, highly scalable open cloud platform capable of large-scale virtual machine deployment and management.
The release cycle of CloudStack is not fixed. The latest version is 4.2. The community holds a global collaboration conference (CloudStack Collaboration Conference) every year for technology sharing and exchange.
2) Platform architecture OpenStack adopts a distributed architecture. The entire platform is divided into multiple module projects according to different functions, as shown in Figure 2. The projects communicate interactively through message queue middleware and RESTful APIs (the certification projects are other
The project provides authentication and service registration), so each project can be deployed separately on different hosts. The architecture is very flexible. OpenStack provides rich and powerful APIs to the outside world, so that resources can be conveniently used and scheduled by users, while also providing
API compatible with Amazon AWS (Amazon Web Services).
Figure 2. OpenStack distributed architecture diagram. CloudStack adopts a centralized monolithic architecture. As shown in Figure 3, the entire platform consists of only one project. Different modules interact through local calls on one host.
It is very convenient to complete the deployment of the platform. CloudStack also provides its own API and APIs compatible with Amazon AWS.
Figure 3. CloudStack centralized architecture diagram. It can be seen that the two architectures are almost opposite. OpenStack's distributed architecture has good flexibility and different projects can be deployed separately. Therefore, functions can be easily combined according to actual needs, and because
The coupling between different projects is low, and the functions between projects are clearly divided. Therefore, it is very convenient to customize the development of individual functions. The disadvantage is that deployment is troublesome, and each project must be deployed and configured again; CloudStack has only one project, so it will be relatively slow to deploy.
It is much easier, but the scalability of the platform is relatively weak.
3) Comparison of the overall platform. The functional comparison of OpenStack and CloudStack is shown in Table 1. We compared the two from different aspects such as authorization agreement, supported underlying technology and user group.