The cloud has become such a popular term, but what does it really mean? What does it mean to your data backed up to “the cloud”? Or apps running on “the cloud”? Where does it all really go?
As an engineer working in Microsoft Azure, let me explain some of these broader concepts. I will be using Microsoft’s cloud as an example, but these concepts can be extended to any cloud, like Google GCP or Amazon AWS.
I will be explaining this concept in a top-down fashion: from cloud → regions → datacenters → racks → VMs/containers.
Also a side note, I work in the space of on-premise cloud, so discussing the public cloud is one step away from my area of expertise–please correct me if any information is misplaced.
Cloud
In the world of Microsoft Azure, there are 4 distinct clouds. If you install the Azure CLI which enables you to interact with Azure resources via the terminal, you can run the below command:
az cloud list --output table
Which returns a list of all the clouds in Azure!
IsActive Name Profile
---------- ----------------- ---------
True AzureCloud latest
False AzureChinaCloud latest
False AzureUSGovernment latest
False AzureGermanCloud latest
As you can see, Azure has isolated sovereign clouds operating in US, China and Germany that are separate from the Azure Pubic Cloud. This is because they need to meet nation specific requirements in terms of security, compliance etc, in those regions. On that note, Satya just recently announced bringing M365 services to the sovereign cloud to match European data regulations.
Let’s take a look at the cloud of interest to us for this article—the Azure Public Cloud.
Public Cloud
The Azure public cloud is divided into 70+ regions globally. Each region consists of a number of datacenters, joined by a network, and each region is contained within a single geography (country). You can find the full list of regions here
 Alt text](/img/cloud/list_zones.png)
The next level down from regions are availability zones. These are groupings of datacenters within a region, where each availability zone has “independent power, cooling, and networking infrastructure, so that if one zone experiences an outage, then regional services, capacity, and high availability are supported by the remaining zones.”
 Alt text](/img/cloud/availability_zones.png)
Finally, we’ve peeled back enough layers to actually get to the datacenter in the hierarchy.
Datacenter
This is a datacenter.
These are racks within a datacenter. Each rack is connected to multiple servers. And each server can run multiple VM’s or containers (more on that later).
Virtual machines
Virtual machines are like isolated virtual computers on a physical host computer. Thus, one physical computer/host can have multiple virtual machines running on it, each with their own application and operating system. Virtualization at this level is achieved by creating an additional layer of abstraction, called the hypervisor, on top of the host hardware (in the case of bare-metal servers). The hypervisor manages the amount of resources allocated to each VM and provides isolation between the VMs.
|--------| |---------| |--------|
| VM1 | | VM2 | | VM N |
| apps | | apps | ..... | apps |
| OS | | OS | | OS |
|--------| |---------| |--------|
------------------------------------------
| Hypervisor |
------------------------------------------
| Hardware |
------------------------------------------
Service models (IaaS vs PaaS vs SaaS)
Now we have a bunch of compute power. How do we sell it to customers? That’s the main question the cloud service model answers. Different customers like large enterprises (with their own IT department) have different needs compared to small business (who are not knowledgeable about IT and want a fully-fledged solution), compared to a student who wants to simply run their app on the cloud.
IaaS
In the IaaS model, you get virtual machines. This works for any customers who have existing physical infrastructure, and would like to transition their workloads to the cloud. The customer can choose from a variety of machine specs for different uses (e.g., AI, graphics), as well as the VM image itself (e.g., for Windows server, ubuntu, etc). Although the complexity of the backend infrastructure is managed by the cloud provider, the customer will need to manage the VMs themselves, including virtualized networking, and the OS, on top of any data and applications.
PaaS
In the PaaS model, you manage applications and data. The virtual machine aspect is abstracted away from customers. Instead, you use Azure storage for your data needs, and Azure App service to deploy your app, either in code or as a container.
SaaS
Software as a service is basically any cloud-based application delivered over the internet. Users use the internet or an installed web client to use the software, and does not need to worry about the underlying infrastructure. Common examples include gmail, slack, teams, etc.
Conclusion
Thus, we can see that the public cloud delivers a wide range of services— from virtual machines, containers, and bare-metal resources to fully managed applications and platforms—all hosted on the cloud provider’s infrastructure.
Say tuned for part 2, where I will go over the 3 core pillars of cloud compute, and containers (CaaS)!
References:

 Alt text](/img/cloud/datacenter.png)