1) Historical background and overview
OpenStack was jointly released by NASA and Rackspace in 20 10. They contributed computing code (Nova) and storage code (Swift) respectively, and were authorized by Apache license agreement. The goal of OpenStack is to provide a universal open source cloud computing platform, which can be used to build both public and private clouds, making the construction of the cloud platform as simple and convenient as possible, and at the same time, it can be rapidly expanded horizontally. OpenStack is independent of any enterprise, follows the concepts of open source, open design, open development process and open community, and is completely dominated and maintained by the community. The release cycle of OpenStack is half a year. So far, eight official versions have been released. The latest version is Havana. After each version is released, the community will hold a summit. Companies and developers from all over the world will discuss the design of the next version and share related technologies of OpenStack. It is worth mentioning that the latest summit was held in Hongkong, China.
CloudStack was originally developed by Cloud.com Company and is divided into two versions: commercial version and open source version. The open source version is licensed by GPL v3 (GNU General Public License, Version 3) license agreement. After Citrix 20 1 1 acquired Cloud.com, all the codes were open source. In 20 12, CloudStack was contributed to Apache Software Foundation and became the incubation project of Apache. At the same time, the license agreement was changed to a more relaxed, open and business-friendly Apache license agreement, and CloudStack was upgraded to an official Apache project in March 20 13. The goal of CloudStack is to provide a highly available and extensible open cloud platform for large-scale virtual machine deployment and management. The release cycle of CloudStack is not fixed. At present, the latest version is 4.2, and the community holds a global collaboration conference every year to share and exchange technologies.
2) Platform architecture
OpenStack adopts distributed architecture, and the whole platform is divided into several module projects according to different functions. As shown in Figure 2, projects communicate with each other through message queuing middleware and RESTful API (among which authentication projects provide authentication and service registration for other projects), so each project can be deployed on different hosts, and the architecture is very flexible. OpenStack provides rich and powerful APIs for users to use and schedule resources conveniently, and provides APIs compatible with Amazon AWS (Amazon Web Service).
Figure 2, OpenStack distributed architecture diagram
CloudStack adopts a centralized monolithic architecture. As shown in Figure 3, the whole platform contains only one project. Different modules can interact through local calls, and the platform can be deployed on a host, which is very convenient. CloudStack also provides its own API and an API compatible with Amazon AWS.
Figure 3. CloudStack centralized architecture diagram
It can be seen that the architecture of the two is almost relative. The distributed architecture of OpenStack is flexible, different projects can be deployed separately, and it is easy to combine functions according to actual needs. Moreover, due to the low coupling between different projects, the function division between projects is clear, and it is also very convenient for the customized development of a single function. The disadvantage is that the deployment and configuration of each project are troublesome. CloudStack is relatively easy to deploy because there is only one project, but the scalability of the platform is relatively weak.
3) Overall comparison of platforms
The functional pairs of OpenStack and CloudStack are shown in table 1. We compare them from different aspects, such as authorization protocols, supported underlying technologies and user groups.
OpenStack
Yunzhan
Authorization agreement
Apache 2.0 can be commercialized for free.
Apache 2.0 can be commercialized for free.
Virtualization technology
XenServer/XCP、KVM、QEMU、
LXC, VMware ESXi/vCenter, Hyper-V bare metal, Docker, Xen/Libvirt.
XenServer、KVM、QEMU、
VMware vCenter
network service
VLAN, flat, flat DHCP
Quantum virtualization network
VLAN, plane, open flow
Storage support
ISCSI, Ceph, NFS, LVM, Swift, Shepherd Dog.
NFS、LVM、Ceph、Swift
Scheduling strategy
The model is comprehensive and easy to expand.
The model is simple and extensible.
User Interface(UI)
Perfect function and simple interface.
Perfect function and friendly interface.
database
PostgreSQL、MySQL、SQLite
relational database
Virtual machine template
support
support
parcel
Keywords nova, scanning, keystone,
Keywords horizon, swift, cinder,
Quantum, thermal and cloud altimeter
Console proxy virtual machine,
The second storage virtual machine,
Virtual router virtual machine,
Host agent, management server
Develop ahead
Kaiyuan community
Sijie company
Development language
computer programming language
Java language (a computer language, especially for creating websites)
official document
Very detailed
detailed
Version problem
There is a version compatibility problem.
There is no version compatibility problem.
user group
About 160, including NASA,
Red hat, Rackspace, HP,
Netease, UnitedStack, etc.
Less than 60, including Nokia,
Japan Telephone and Telegraph Corporation, Zynga,
Disney Alcatel, etc
Comparison between table 1, OpenStack and CloudStack
4) Platform selection
Through the previous comparative analysis, we can conclude that OpenStack and CloudStack are both powerful open source cloud platforms, which meet the needs of enterprise private cloud construction, and can be customized as needed because of open source. The difference is that CloudStack is open source from commercial software, so it will be easier for enterprises to get started and it will be more convenient to build a cloud platform. However, due to its commercial software properties, the platform architecture is relatively concentrated, the coupling degree between modules is high, the expansibility is not very good, and the secondary development cost is high; OpenStack is an open source software with distributed architecture since its birth. All development is undertaken by the community, and there is almost no coupling between different projects, so it can be easily customized. However, because it is composed of multiple projects, each project must be installed separately, and the cooperation between projects must be ensured, so the deployment will be more troublesome. In addition, because OpenStack is in a high-speed development stage, the projects between different versions may change greatly, so the upgrade between versions will be more difficult.
It is also worth mentioning that both OpenStack and CloudStack support VMware's ESXi virtualization technology, but in different ways, as shown in Figure 4. CloudStack can only manage virtual machines on ESXi hosts through vCenter; OpenStack supports direct communication with ESXi to realize basic management of virtual machines, and only advanced functions need the support of vCenter. In view of the current situation that small and medium-sized enterprises generally adopt VMware's free virtualization technology without vCenter, this should also be considered when choosing a platform.
Figure 4, VMware ESXi management mode comparison diagram
Hengtianyun uses OpenStack open source platform for private cloud construction. Because OpenStack architecture is very open, convenient for customized development, and supported by many technology vendors, it is very likely to become Linux in the field of cloud computing IaaS platform. Therefore, through the customized development of OpenStack, it is also very beneficial to enterprises in the long run.