AnnouncementIntroducing MongoDB 8.0, the fastest MongoDB ever! Read more >>Introducing MongoDB 8.0, the fastest MongoDB ever! >>

Infrastructure as a Service (IaaS) in Cloud Computing

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.

What is IaaS in cloud computing?

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

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 vs PaaS vs SaaS

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.


Layers of cloud computing service models

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.

Learn more about the differences between IaaS, SaaS, and PaaS.

IaaS architecture

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

Network consists of resources like bridge, gateway, router, and switches that are virtualized before the cloud consumer can access them.

Storage

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

Compute layer consists of:

  • Central processing units (CPU) for processing web requests and running applications.
  • Graphical processing units (GPU) that handle workloads like training algorithms and embedded systems.
  • High performance units that perform advanced complex calculations for science and engineering workloads.

Virtualization

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

Basic architecture of IaaS with the fundamental components, i.e. storage, compute, network, virtualization

Additional offerings

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 of IaaS architecture

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.

How does IaaS work?

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:

  • Maintains network resources, compute resources, storage resources, and data center infrastructure.
  • Provides maintenance-free virtualized access to the hardware or infrastructure resources (mentioned above) on a pay-as-you-go basis.
  • Creates a continuous virtual environment for cloud consumers.
  • Provides easy access and control over individual IaaS components to the cloud consumers.

Virtualization technology

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.


Virtualization using hypervisor

How a single physical storage is split into various logical partitions using the hypervisor layer

How do you implement IaaS?

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:

  • Shared model, where multiple customers can access the services independent of each other.
  • Usage per month or hour, where the billing can be done using the amount of data stored or the number of processors required per month/hour.
  • Pay as you go, where the cloud user can use the services for as long as they want

What are IaaS use cases?

IaaS deployments support a variety of use cases:

  • Advanced workloads: Complex workloads such as scientific computations and machine learning require high computational power, which can otherwise be very costly.
  • Web applications: IaaS provides all the infrastructure needed to host web applications, like servers, storage space, computation resources, clustering, and load balancing.
  • Big data analytics: Big data often requires a lot of data to be pushed through the network and at a great speed. IaaS provides the required network and computational resources to process the incoming data and store them effectively.
  • Data storage, scaling, recovery, and backup: To handle your changing user base, IaaS can provide efficient horizontal and vertical scaling, and availability.
  • Flexibility to set up your environment: With infrastructure taken care of, developers can choose their platforms and tools to build their applications.

What are the advantages of IaaS?

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:

  • It’s cost-effective, as organizations can just lease or rent the resources on-demand.
  • You have full control of the virtual machines.
  • There’s a faster time to market as the infrastructure is flexible for continuous development and enhancements.
  • It provides scalability and control and eliminates the cost and complexity of in-house deployments of hardware.
  • You avoid underuse and overuse of resources; IaaS consumers can use just the right amount as per their business use case.

What are the disadvantages of IaaS?

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:

  • Because of the multi-tenant nature of IaaS, resources like bandwidth and disk space may be unevenly shared or used up by a certain consumer (a noisy neighbor), which may affect the overall network performance.
  • There are network outages from the cloud vendor’s end.
  • There is dependency on vendors for infrastructure upgrades and maintenance.
  • Although providers and subscribers follow security guidelines, the organization is dependent on the provider for data security.

Example of IaaS

Example of IaaS along with the other cloud service model layers are:

IaaS: AWS, Azure, Google Cloud Platform (GCP).

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.

Examples of various vendors providing IaaS, PaaS and SaaS services

Different cloud vendors providing various cloud computing service models

MongoDB IaaS case studies

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.

Things to consider when choosing an IaaS provider

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.

The noisy neighbor problem

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.

Security and reliability

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.

Scalability

The provider should have flexible plans where you can scale the infrastructure up or down based on your business needs.

User level controls

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.

Cost considerations

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.

Flexibility and options in providing virtual resources

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.

Network speed

Consider the speed of interaction between the storage, processing units, internet, data centers, and virtual machines.

Disaster recovery

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.

MongoDB Atlas: The global cloud database service for modern applications

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.

Learn more about MongoDB Atlas.

FAQs

What is meant by IaaS in cloud computing?

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.

What is an example of IaaS?

Some example providers of IaaS are Amazon AWS, Microsoft Azure, and Google Cloud Platform.

What is SaaS, PaaS, and IaaS in cloud computing?

SaaS, PaaS, and IaaS are three fundamental cloud computing service models. IaaS is the most primitive of the three, where physical resources are virtualized and provided to the consumers on-demand. PaaS includes the platform, like operating system, web servers, database, and runtime environment along with IaaS, so that developers can easily build their applications. SaaS is the highest level of service, where the cloud providers manage all the applications and the client simply uses the services via their browser.

What is the use of IaaS in cloud computing?

IaaS provides the basic infrastructure like storage, network, and compute resources and other additional offerings like load balancing, clustering, and security to organizations in a virtualized manner over the internet. This way, organizations can focus on building their applications, without worrying about maintaining the infrastructure or installing the hardware and software, reducing costs and speeding up the application development.