Hello, everyone!
Currently, cloud computing has great potential to improve efficiency and reduce costs to a great extent. The popularity of cloud computing has not decreased in recent decades. More and more vendors are joining the development team of cloud computing, and more and more enterprises are migrating their services to the cloud. In this post, I want to discuss CloudStack and OpenStack with you. For these two platforms, we will analyze their key strengths, features, architectures, and so on.
What is CloudStack?
Developed by Cloud.com in 2008, it is available in both commercial and open source versions. The open-source version uses the GPL v2 license. In July 2011, Cloud.com was acquired by Citrix (Citrix). All CloudStack is open-source. In April 2012, Citrix contributed CloudStack to the Apache Foundation and changed it to the Apache 2.0 license.
CloudStack logical architecture
Hosts: Servers onto which services will be provisioned.
Primary Storage: VM storage.
Cluster: A grouping of hosts and their associated storage.
Pod: Collection of clusters.
Network: Logical network associated with service offerings.
Secondary Storage: Template, snapshot, and ISO storage.
Zone: Collection of pods, network offerings, and secondary storage.
Management Server Farm: Responsible for all management and provisioning tasks.
Why did we choose CloudStack?
Product Maturity
More than 100 global commercial cases of CloudStack.
Less than 10 Openstack (excluding Openstack Swift-only enclosures).
Community Management
Cloudstack is the Apache Foundation project, the world's largest open source project management foundation, we believe in their ability to manage open source projects.
OpenStack is managed by the OpenStack Foundation Board of Directors.
Development Language
CloudStack uses Java and C.
OpenStack uses Python.
The Features of CloudStack
Apache CloudStack is a Java-based project that provides a management server and agents (if needed) for hypervisor hosts so that you can run an IaaS cloud. Some, but not all, of the features and functionality provided by CloudStack:
Works with hosts running XenServer/XCP, KVM, Hyper-V, and/or VMware ESXi with vSphere
Provides a friendly Web-based UI for managing the cloud
Provides a native API
May provide an Amazon S3/EC2 compatible API (optional)
Manages storage for instances running on the hypervisors (primary storage) as well as templates, snapshots, and ISO images (secondary storage)
Orchestrates network services from the data link layer (L2) to some application layer (L7) services, such as DHCP, NAT, firewall, VPN, and so on
Accounting of network, compute, and storage resources
Multi-tenancy/account separation
User management
What is OpenStack?
OpenStack is developed jointly by Rackspace and NASA. OpenStack is open-source in October 2010, using the Apache 2.0 license. In 2011, Rackspace announced the establishment of the OpenStack Foundation and contributed OpenStack to the Foundation.
OpenStack is a cloud operating system that controls large pools of computing, storage, and network resources throughout the data center. All resources are managed and configured through APIs with common authentication mechanisms.
Dashboards are also available, giving administrators control and authorizing users to configure resources through the web interface.
In addition to standard infrastructure-as-a-service capabilities, other components provide orchestration, fault management and service management, and other services to ensure high availability of user applications.
What Can OpenStack Do?
OpenStack can help us build our own IaaS and provide services similar to Amazon Web Service.
Common users can register cloud services and check the running and charging status.
Development and O&M personnel can create and store customized images of their applications and use these images to start, monitor, and terminate instances.
Administrators of the platform can configure and operate network and storage infrastructures.
OpenStack logical architecture
The OpenStack service consists of independent components such as Nova, Neutron, Glance, and Swift. All services are authenticated by the Public Identity Service. Services interact with each other through public APIs, unless privileged administrator commands are required.
1. Horizon: provides interactive pages for OpenStack.
Django-based universal UI; Communicates with each OpenStack service through RESTful APIs (or admin APIs). OpenStack RESTful APIs are implemented through HTTP GET/PUT/POST/DELETE and JSON.
2. Nova: cloud computing module:
Manages the life cycle of VMs and some networks, mainly related to VMs. Support for OpenStack Compute APIs, Amazon's EC2 APIs, and Admin APIs (Provides management functions for privileged users. Nova-api receives and processes service requests, manages message queues through RabbitMQ, and nova-compute invokes VMs. Nova does not perform hypervisor functions.) , which can be authenticated through the middleware.
3. Neutron: responsible for the network in the virtual environment:
It is called the quantum component in version G and is renamed because it has been registered in versions H. Manages networks resources such as networks and ports. Creating/Deleting a Tenant Network.
4. Swift
Object storage has advantages such as high-speed direct access of SAN and data sharing of NAS. It provides a high-performance, high-reliability, and cross-platform secure data sharing system. Objects contain file data and related attribute information. (The file system needs to support extended attributes, such as XFS or EXT4, etc.) , can perform self-management and use object-level replicas to ensure data security.
5. Cinder: block storage;
cinder-api receives the API request and forwards the request to cinder-volume. cinder-volume maintains the status of requests by performing read/write operations on the Cinder database and interacts with other processes (for example, like cinder-scheduler) through message queues.
6. Keystone: provides unified authentication and authentication services in the OpenStack framework. Keystone is responsible for identity authentication, service list, and token issuance and verification.
Similar to a service bus, or the registry of the entire OpenStack framework, other services register their service endpoints (URLs accessed by services) through Keystone. When services call each other, Keystone authentication is required to obtain the endpoint of the target service and find the target service. The backend supports LDAP, SQL, and Key Value Stores (KVS).
7. Glance: manages images, including querying, registering, and retrieving VM images.
Glance-api receives RESTful APIs to retrieve image metadata and obtain images and storage images. glance-registry stores, processes, and retrieves metadata (for example, size, type, etc.) of an image. Image metadata is stored in Glance Database in multiple formats.
What is Apache License?
Apache License is a protocol used by Apache, a well-known non-profit open source organization. Similar to BSD, the agreement also encourages code sharing and respect for the copyright of the original author, and also allows code to be modified and re-published (as open source or commercial software). The conditions to be met are similar to those for BSD:
You need to give a copy of the Apache license to the code user.
If you modify the code, you need to specify it in the modified file.
The extended code (modified and source-derived code) must contain the original code protocols, trademarks, patent claims, and other instructions that the original author specified to include.
If the product to be released contains a notice file, the notice file must contain the Apache license. You can add your own license to the Notice, but it cannot represent a change to the Apache License.
Apache License is also a commercial application-friendly license. Users can also modify the code as needed and release/sell it as an open source or commercial product.
What is the difference between CloudStack and OpenStack?
CloudStack | OpenStack | |
Hypervisor | BareMetal (via IPMI) Hyper-V KVM LXC vSphere (via vCenter) Xenserver Xen Project | KVM LXC QEMU UML VMware vSphere Xen Xenserver Hyper-V Virtuozzo |
Storage | Categorized into primary and secondary, support SMB, CIFS, Swift, S3 | Swift cinder manila |
Installation | Easy | Difficult |
Written | Java (primarily), Python | Python |
That's all, thanks!