Summary: Infrastructure as a service (IaaS) is a cloud computing infrastructure that provides compute, network, and storage resources over the internet, via a subscription model that can scale. Since it’s offered as a subscription service, it can scale up or down as needed, providing greater flexibility compared to on-premise infrastructures.
In the early 2010s, internet speeds increased to a point where digital services could be delivered over the internet, sparking the cloud revolution. Companies began moving their applications to software as a service (SaaS) models. This produced a spike in web traffic that demanded more hardware resources and the need for new tools to automate hardware management. Companies began to offer cloud-based infrastructure resources and management tools as a service, or infrastructure as a service (IaaS).
What is infrastructure as a service?
IaaS is a cloud computing infrastructure that provides compute, network, and storage resources over the internet, via a subscription model that can scale. It’s a foundational cloud service that can build or complement platform as a service (PaaS) and SaaS. Many agile and DevOps teams use IaaS to build their platforms. Since it’s offered as a subscription service, it can scale up or down as needed, providing greater flexibility compared to on-premise infrastructures.
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.
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. 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 (VMs).
What popular technology platforms provide IaaS?
Some popular examples of IaaS include Amazon 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.
IaaS vs. PaaS vs. SaaS
IaaS, PaaS, and SaaS are different layers of a cloud services stack. IaaS is the bottom base layer and provides the underlying infrastructure that enables and supports PaaS and SaaS.
PaaS is an infrastructure that supports application development. PaaS affords developers access to managed programming language and database ecosystems in which they can automatically deploy their application code. This empowers developers to focus on their core business logic code and not maintenance of their preferred programming environment infrastructure. Some popular PaaS ecosystems are Ruby on Rails, Node.js Express, and Python Django.
SaaS products are fully functional specialized software applications delivered from the cloud, such as CRMs, calendar apps, webmail, e-commerce, and more. A SaaS can be built on a PaaS. PaaS provides the language and database ecosystem that developers then write code in to create SaaS.
IaaS lets your organization scale its infrastructure needs to demand. This is beneficial as many organizations don’t want a fixed infrastructure and need to evolve their infrastructure to respond to evolving needs. IaaS gives software development teams more autonomy to requisition resources as needed without depending on a systems administrator to manually do it. This lowers headcount cost and helps to develop lean DevOps teams.
Some reasons an organization may want to implement IaaS include:
- Friction and delays when trying to set up or requisition new hardware resources
- High infrastructure costs that aren’t accounted for with usage
- Inability to rapidly adjust to spikes in traffic
If your organization does not use IaaS there will be a learning curve and a switching cost. It may be easier to use a popular third-party IaaS offering, which can save costs associated with purchasing hardware needed to install IaaS. The challenge often lies in learning how to use the APIs of the third-party platform and migrating existing resources to that platform.
If an organization already has a data center and wants to implement and manage an IaaS, it can be an expensive and time-consuming endeavor.
How to implement IaaS
There are two popular paths to implement IaaS. The first is the hosted path, where an organization creates an account with a third-party IaaS host. Before selecting a hosted provider, it’s important to first understand your company’s specific needs for servers, network, and storage since there are numerous providers who offer different levels of capabilities. Once a provider is selected and an account is established, an organization needs to identify pieces of the existing infrastructure that are best suited to migrate to the new host. This should be an incremental process.
An alternative is to establish an on-premise IaaS architecture with your existing hardware. This involves selecting an IaaS technology platform like Openstack, VMware vCloud, or Azure Stack. The implementation of the IaaS is made using separate hardware form the existing infrastructure. Once the IaaS is installed and operational the same migration process as the hosted path should take place.
IaaS was created out of a history of advancing system administration and hardware management. It gives companies of all sizes access to infrastructure technology resources without the need to buy, maintain, and manage an on-premise infrastructure. This has given even the smallest startup access to enterprise-level infrastructure and fostered innovation.