Cloud computing refers to the availability of hardware, software, and other technologies required to build an application on demand, over the network. Cloud computing providers offer various models for the convenience of cloud consumers.
IaaS is the most basic layer of a cloud computing service model. The other two fundamental layers are PaaS (platform-as-a-service) and SaaS (software-as-a-service). The IaaS layer consists of the hardware required to host an application, i.e., network, compute, and storage resources.
All the physical resources or hardware—like laptops, desktops, cables, switches, routers, data centers, and storage devices—are a part of infrastructure. In cloud computing, all the infrastructure is virtualized and provided to consumers as a service. This is called IaaS.
Basic components of IaaS, namely, compute, network and storage
IaaS provides organizations with good control and management on their applications, without having to maintain the infrastructure, i.e., the physical resources.
IaaS provides the most basic requirements for hardware—like servers, memory, and computational resources for an application. Cloud consumers can also choose to take PaaS—including operating systems, databases, web servers—to further reduce the maintenance related to their cloud resources. Cloud providers also offer SaaS (cloud-based software applications) which are fully managed solutions.
The fundamental layers of the cloud service models, namely, IaaS, PaaS and SaaS
IaaS gives more control and flexibility to cloud consumers, as they still manage the other two layers, whereas SaaS speeds up the time to bring an application to the market because it’s fully managed by the cloud provider.
If we were to keep the cloud computing service models on a stack, IaaS would be at the bottom, followed by the PaaS and then the SaaS layer on the top.
IaaS primarily consists of network, storage, servers, and the virtualization layers. We need a network to communicate between the virtualization, storage, and compute components, and to communicate to other service layers as well.
Network consists of resources like bridge, gateway, router, and switches that are virtualized before the cloud consumer can access them.
The most common type of cloud storage is object storage, which is inexpensive and can store any type of unstructured data including images, documents, blobs, and binary data.
Some object storage providers are Google cloud storage, Azure blob storage, and AWS S3.
Block storage splits data into blocks, allowing it to be spread across various platforms—for example, hard disks and SSD.
File storage stores data in an organized, hierarchical structure. Examples are shared file systems and Network Attached Storage devices (NAS).
Compute layer consists of:
All the physical resources are virtualized using a hypervisor before they can be accessed by the cloud consumer (subscriber). Consumers can access the infrastructure from anywhere using an internet connection, or a virtual private network (VPN) for additional security.
Basic architecture of IaaS with the fundamental components, i.e. storage, compute, network, virtualization
Depending on the organization’s business needs, cloud providers can also offer security, load balancing, monitoring, clustering, log access, backup and recovery, replication, and serverless architecture offerings. These can provide the organization with the necessary level of control and automation they want. The cloud provider has virtual machines that the subscriber (organization) can use to install their choice of operating system, software, database, and other components.
Example IaaS architecture with basic components and additional offerings
In the above example of an IaaS architecture, the system admin manages the virtualized storage resources and the compute resources. VM automation helps in reducing the time taken for maintenance of the logical infrastructure (IaaS). Load balancing can be done for better performance and higher availability. Firewall provides the necessary security for clients to access the application.
In an IaaS environment, the cloud provider acts as a host to the resources needed by the cloud consumers (typically system admins). Cloud consumers can access the resources virtually with an internet connection to run their applications and workloads. IaaS provider performs the following:
Virtualization of resources can be done using a hypervisor. A hypervisor is a software product that shares one physical resource with multiple virtual machines. A cloud provider uses network protocols like fiber channel, iSCSI, and NFS to split a physical network into logical partitions (or views). For example, the hypervisor can provide networking as a service to the virtual machines using routing, bridging, or network address translation. Some popular hypervisors are Microsoft Hyper-V and VMware vSphere.
How a single physical storage is split into various logical partitions using the hypervisor layer
Instead of using a physical data center, or hardware, IaaS provides these as a service on-demand. IaaS can be implemented on public, private, and hybrid cloud models.
In a public cloud setup, the customer’s workloads run on data centers that are owned and maintained by the public cloud provider. The infrastructure is pooled across multiple organizations and institutions. The provider offers infrastructure over the internet as a service through dedicated connections, and takes care of the virtualization software. The provider may also give access to physical resources (not virtualized) as per the organization’s needs.
In a private cloud setup, the infrastructure is available to only one organization, which is similar to having an on-premise data center, but managed by a cloud provider.
A hybrid model offers a mix of virtual machines and container-based applications, deployed on public cloud or data centers.
Read more about public cloud vs private cloud vs hybrid cloud.
Organizations can choose various billing options provided by cloud providers for using their infrastructure as a service:
IaaS deployments support a variety of use cases:
Cloud providers provide all the physical resources, as a service, which means organizations don’t have to manage or buy, install, or set up any of it. They can simply access the virtual machines and build their applications on the underlying infrastructure. This offers many benefits:
Although IaaS enables organizations to put their budget into effective use, a slight miscalculation may lead to overspending on resources. Also, if there is a problem in the cloud provider’s network, the entire application workload may be affected due to downtime.
Here are some major disadvantages:
Example of IaaS along with the other cloud service model layers are:
PaaS: Apache (web server), MongoDB (database), Linux (operating system), JRE (Java runtime environment), Heroku (supports multiple programming languages).
SaaS: Suite of products from MongoDB, GSuite, and Office 365.
Different cloud vendors providing various cloud computing service models
Humana, a leading healthcare provider, made effective use of MongoDB Atlas, MongoDB’s database-as-a-service, to easily create, automate, and enable their workflows. Doing that helped them move from an IaaS-based solution to a fully managed solution without the hassles of upgrades, maintenance, and resource management, and with all the benefits like scalability, flexibility, and increased productivity.
Learn more about Humana's journey with MongoDB: from IaaS to MongoDB Atlas.
Big players like Azure, AWS, Google, and IBM provide IaaS on public, private, and hybrid models. Some IaaS vendors also provide additional services like clustering, load balancing, and security along with the fundamental hardware. With multiple vendors pitching in to provide infrastructure as a service, there are few important IaaS best practices and factors you should consider when choosing the most suitable IaaS provider for your project.
If there is another tenant (IaaS consumer) who takes up more resources like bandwidth, the other consumers may face performance and network issues, causing disruptions in services.
Choose a provider who can provision the infrastructure in the most efficient and fair manner.
Data security is of prime importance. Know about the compliance and regulations, data encryption mechanisms, and certifications of the provider. Also consider the service reliability and time to resolve any hardware and software issues by the provider, as these will affect the performance and speed of the application.
The provider should have flexible plans where you can scale the infrastructure up or down based on your business needs.
Choose how much control you want to have on the IaaS features you have selected, and how easy it is to manage the infrastructure parts under your control.
Most cloud providers offer pay-as-you-go, hourly, and monthly plans. You should compare the options provided by different vendors and choose the plan that suits your organization’s needs.
Consider your network, storage, and compute requirements and the options for server size, virtual machine size, number of processing units, memory units, and storage units.
Consider the speed of interaction between the storage, processing units, internet, data centers, and virtual machines.
Consider a provider who can offer quick backup and recovery options at different levels such as virtual machine, server, or front-end level, in case of a failure.
IaaS provides the required resources in a virtualized manner to the developers. However, it needs timely updates and management by system admins. If you want a fully-managed solution, try MongoDB Atlas.
MongoDB Atlas is the database as a service provided by MongoDB. Atlas supports mobility and data distribution across major cloud providers like AWS, Azure, and Google Cloud simultaneously with multi-cloud clusters.
IaaS is a cloud service model where the physical resources or hardware—like storage, compute, and network—are provisioned and maintained by a cloud provider. Organizations can access these resources virtually via the internet for as long as they want.
Some example providers of IaaS are Amazon AWS, Microsoft Azure, and Google Cloud Platform.