IaaS platform and architecture
IaaS is made up of a collection of physical and virtualized resources that provide consumers with the basic building blocks needed to run applications and workloads in the cloud:
Physical data centers. IaaS providers will manage large data centers, typically around the world, that contain the physical machines required to power the various layers of abstraction on top of them and that are made available to end users over the web. In most IaaS models, end users do not interact directly with the physical infrastructure, but it is provided as a service to them.
Compute. IaaS is typically understood as virtualized compute resources, so for the purposes of this article, we will define IaaS compute as a virtual machine. Providers manage the hypervisors and end users can then programmatically provision virtual “instances” with desired amounts of compute and memory (and sometimes storage). Most providers offer both CPUs and GPUs for different types of workloads. Cloud compute also typically comes paired with supporting services like auto scaling and load balancing that provide the scale and performance characteristics that make cloud desirable in the first place.
Network. Networking in the cloud is a form of Software Defined Networking in which traditional networking hardware, such as routers and switches, are made available programmatically, typically through APIs. More advanced networking use cases involve the construction of multi-zone regions and virtual private clouds, both of which will be discussed in more detail later.
Storage. The three primary types of cloud storage are block storage, file storage, and object storage. Block and file storage are common in traditional data centers but can often struggle with scale, performance and distributed characteristics of cloud. Thus, of the three, object storage has thus become the most common mode of storage in the cloud given that it is highly distributed (and thus resilient), it leverages commodity hardware, data can be accessed easily over HTTP, and scale is not only essentially limitless but performance scales linearly as the cluster grows.
How does it work?
IaaS is a collection of physical and virtual computational resources that offer the resources needed to run applications and workloads in the cloud. IaaS providers can manage a customer’s data centers, provision virtual computing, and offer networking and storage services to customers.
Containers vs. virtual machines
Manage your distributed architecture with Compass
Traditional “bare metal” hosting provides direct access to the hardware and control of the hardware specifications over the internet. But it does not provide virtualized compute, networking, and storage. With bare metal hosting, remote access is granted and given to the hosting customer, who then remotely logs into the machine and configures it. It can provide higher performance than IaaS for such things as GPU computing, high-performance computing, analytics, and more. However, it does not include the benefits of IaaS, including the ability to rapidly provision and scale resources.
Built upon bare metal hosting is “shared hosting,” or “virtual hosting.” Shared hosting uses virtualization to fragment an individual machine into separate virtual machines (VMs). Virtualization is the system-level process in which resources like RAM, CPU, disk, or networking can be virtualized and represented as multiple individual resources. This virtualization of resources enables a single physical machine to host multiple tenants as if they’re on separate machines.
When you scale bare metal and virtual hosting to data centers or a cluster infrastructure, you create IaaS. Instead of using one machine, a room full of servers can be virtualized into individual computational units.
By bringing remote configuration and provisioning to rooms full of servers, IaaS enables cloud computing. In addition to delivering operating system resources, IaaS offers full-service, pre-configured infrastructure resources like load balancers, DNS management, email servers, security gates, and more. These resources are often costly to develop and maintain as first-party efforts.
How does IaaS relate to containers?
Today, many IaaS solutions offer container hosting, or containers as a service (CaaS), as part of the available infrastructure. CaaS is container hosting built on IaaS that allows software developers and IT departments to upload, organize, run, scale, and manage containers by using container-based virtualization. CaaS uses containers as the primary resource, rather than virtual machines.
What popular technology platforms provide IaaS?
Some popular examples of IaaS include Amazon Web Services (AWS), Microsoft Azure, Google Cloud, DigitalOcean, and Linode. Some of the platforms that offer on-premise IaaS solutions include Amazon Outposts, Azure Stack, and Google Anthos. If your organization wants to build its own IaaS, there are a few popular solutions like OpenStack, VMware vCloud, and Azure Stack.