Hello there everyone!! How is it going?
Welcome to scaleyourapp.com
This write-up is a comprehensive insight into Apache CloudStack. It will answer all our queries about it such as What is it? Why use it? How different is it in when compared to OpenStack? What features does it offer?
So, without any further ado.
Let’s get started.
1. What is Apache CloudStack?
Apache CloudStack is an open source IaaS Infrastructure as a Service platform. With CloudStack we can deploy an entire network of virtual machines on-prem, as a public cloud or a hybrid solution.
The underlying infrastructure we pick to create a cloud computing platform is completely under our control. It enables us to manage a pool of network, storage & cloud computing resources. We can build custom solutions as per our requirements. There is absolutely no sort of limitation. Well, that’s the whole point of using an open-source solution.
CloudStack, naturally, is cloud-native. The infrastructure built with it is scalable as well as highly available by default. It supports all the popular hypervisors such as VMware, Citrix XenServer, Oracle VM Server, Microsoft Hyper-V, BareMetal (via IPMI) etc. A hypervisor isolates the software running like an operating system from the underlying hardware.
CloudStack offers an advanced customizable web interface to manage stuff, a command-line tool to interact with the software or with the API.
Let’s go through the features offered by this open-source cloud orchestration solution.
2. What Are the Features Offered by Apache CloudStack?
Companies can use Apache CloudStack to set up an open-source powered private, public or a hybrid cloud.
As I’ve already stated, CloudStack works with the latest hypervisors. It has an advanced web-based user interface to efficiently manage the cloud. The UI can also be customized as per our business requirements.
It provides a native API to interact with. We can run & manage operations with the help of the REST-based API. It provides compatibility with Amazon S3/EC2. Supports Amazon Web Services. Provides advanced user management & network orchestration.
Apache CloudStack has a pretty strong community & powers the cloud infrastructures of quite a number of businesses running online.
With CloudStack we can manage thousands of servers distributed across the planet, at different geographical locations. They can be managed & maintained without affecting the VMs running in the cloud.
The network & storage settings for each VM deployment is automatically configured. MySQL DB is ideally configured for data replication. This makes the infrastructure consistent & highly available.
2.1 What is CloudMonkey?
CloudMonkey is a command-line interface tool to interact with the CloudStack based clouds.
3. An Insight into the CloudStack Infrastructure Deployment Architecture
A general CloudStack deployment architecture consists of a management server & the resources which are managed by the management server.
So, a very basic infrastructural architecture would be one machine acting as a management server & another acting as a resource. Though a single machine can also act as both the management server & the resource.
A full-scaled architecture would be an installation of a management server running on multiple highly available nodes. And that installation would manage tens of thousands of resources.
A management server ideally runs on the Apache Tomcat server with MySQL database for persistence. This server is responsible for hosting the UI that is the web interface, CloudStack REST API & many more things. It acts as a single point of configuration for the cloud.
Let’s dig one step further into how the resources are managed in the cloud.
3.1 How Resources Are Managed in CloudStack?
As we see in the diagram below. One or more management servers manage a region.
A region is a collection of several different zones, which are geographically located close to each other. A region is the largest unit within a cloud deployment.
For instance, a continent or a big country would be considered as one region. And the smaller areas like different cities would act as several different zones.
Splitting a massive network into several different regions helps in fault tolerance and disaster recovery. Regions & Zones are visible to the end user & while deploying his application he can pick the region closest to this target users.
A zone is an equivalent of one data centre. And a zone is a collection of several different pods. Zones provide physical isolation & redundancy. The administrator decides How many pods to place in each zone? How many clusters to place in each pod? How many hosts to place in each cluster?
A single or a row of racks is termed as a pod. Every pod contains one or more clusters. Pods are not visible to the end user.
Host, Cluster & Storage
A host stands for one single machine. A single computer. It is the smallest unit the CloudStack deployment architecture. A single machine represents CPU, storage & networking resources required to host virtual machines. The infrastructure automatically detects the amount of CPU & resource which a single host possess.
When several hosts are grouped together, it is called a cluster. The hosts running in a cluster typically have identical hardware & access the same shared primary storage. VMs can be migrated from one host to another within the same cluster, which any interruption of the service to the user.
4. CloudStack vs OpenStack?
Okay, I get it. CloudStack is pretty awesome. But what about OpenStack? That too is kind of a similar open source IaaS solution. Right?
Well yeah!! OpenStack in comparison to CloudStack is a bit of a mature tool as its development started earlier than CloudStack. It is one of the most popular open source IaaS Infrastructure as a service solution & adopted by a wider community. But this doesn’t mean CloudStack lacks behind OpenStack technically, in features & stuff.
CloudStack is technically advanced & gaining ground over time.
5. What Are Some Real World Cases Studies Of Apache CloudStack?
In this section, I talk about a few real-world industry cases of CloudStack adoption.
As a project of the French ACI Grid Incentive, Grid 5000 is a scientific instrument for the study of large scale parallel & distributed systems. Currently, the platform runs on Apache CloudStack with a computational power of over 5000 core processors, being one of a kind research-based platform.
One the leading Internet service provider in the Netherlands, PCextreme runs its infrastructure on CloudStack serving over 40k customers & hosting approximately a hundred thousand websites in a couple of data centres.
Telia Latvia one of the first companies to establish a state-of-the-art data centre in Baltics, provides it’s customers a new generation cloud & CDN services. They successfully run their business on Apache CloudStack.
These are a few of the examples where organization have scaled their infrastructure with the help of CloudStack. If you wish to read in more detail here you go.
6. More On the Blog
Well, guys… This is pretty much it. I would love to know your thoughts on this open-source IaaS platform. Do let me know in the comments.
If you liked the article, share it with your geek friends.
I’ll see you in the next article.
- Distributed Systems, Scalability & System Design #1 – Heroku Client Rate Throttling
- Zero to Software/Application Architect – Learning Track
- Java Full Stack Developer – The Complete Roadmap – Part 2 – Let’s Talk
- Java Full Stack Developer – The Complete Roadmap – Part 1 – Let’s Talk
- Best Handpicked Resources To Learn Software Architecture, Distributed Systems & System Design