Infrastructure as a service, commonly referred to as simply “IaaS,” is a form of cloud computing that delivers fundamental compute, network and storage resources to consumers on-demand, over the internet and on a pay-as-you-go basis.
IaaS enables users to scale and shrink resources on an as-needed basis, reducing the need for high, up-front capital expenditures or unnecessary “owned” infrastructure, especially in the case of “spiky” workloads. In contrast to PaaS and SaaS (even newer computing models like containers and serverless), IaaS provides the lowest-level control of resources in the cloud.
IaaS emerged as a popular computing model in the early 2010s and since that time, it has become the standard abstraction model for many types of workloads. However, with the advent of new technologies, such as containers and serverless, and the related rise of the microservices application pattern, IaaS remains foundational but is in a more crowded field than ever.
In the following video, Bradley Knapp breaks down the basics of IaaS:
Connect and integrate your systems to prepare your infrastructure for AI.
Register for the guide on DaaS
IaaS comprises 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 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 users over the web. In most IaaS models, 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 define IaaS compute as a virtual machine. Providers manage the hypervisors and 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 because of the following reasons:
BMaaS provides an even lower level of control than traditional IaaS. In a BMaaS environment, resources are still provisioned on-demand, made available over the internet and billed on a pay-as-you-go basis (typically in monthly or hourly increments).
Unlike traditional IaaS, BMaaS does not provide users with already virtualized compute, network and storage; instead, it gives direct access to the underlying hardware. This level of access offers users almost total control of their hardware specs.
Given the hardware is not virtualized and doesn't support multiple virtual machines, it also offers users the greatest amount of potential performance. This feature is of significant value for use cases like HPC and GPU computing, high-performance databases, analytics workloads and more.
For users familiar with operating in traditional data centers, BMaaS environments will also feel the most comfortable and might best map to the architecture patterns of existing workloads.
However, these advantages can also come at the expense of the benefits of traditional IaaS, namely the ability to rapidly provision and horizontally scale resources by simply making copies of instances and load balancing across them.
When it comes to BMaaS versus IaaS, one model is not superior to the other—it’s all about which model best supports the specific use case or workload.
To promote greater availability and resiliency of resources, most cloud providers today offer a hierarchy around how workloads map to physical and virtual infrastructure as well as geography.
As an example, IBM Cloud has availability zones and regions. These two terms are defined as follows:
Read more about regions and zones on the IBM Cloud blog.
For many users, particularly companies with sensitive data or strict compliance requirements, extra security and privacy within a public cloud is a desirable. A virtual private cloud (VPC) can be a way of creating more isolation of cloud infrastructure resources without sacrificing speed, scale or functionality.
VPCs enable users to create a private network for a single tenant in a public cloud. They give users control over multiple facets:
IaaS is usually priced on a consumption basis, meaning users are only charged for what they use. Over time, the pricing models of cloud infrastructure have come to span many different levels of granularity:
Taken together, there are many reasons why someone would see cloud infrastructure as a potential fit:
IaaS represents general-purpose compute resources and is thus capable of supporting use cases of all types. Today, IaaS is most commonly used for dev and test environments, customer-facing websites and web applications, data storage, analytics and data warehousing workloads and backup and recovery, particularly for on-premises workloads. IaaS is also a good fit for deploying and running common business software and applications, such as SAP.
And while IaaS is capable of supporting a diverse array of workloads, as we explore in later sections, there are emerging compute models that might be better positioned to support certain types of workloads or application architectures, such as microservices.
The easiest and most common way of understanding the distinction between the coarse-grained -aaS categories of IaaS, PaaS and SaaS is typically by understanding which elements of the stack are managed by the vendor and which are managed by the user.
In a traditional IT setting, it is up to the user to manage the whole stack end-to-end, from the physical hardware for servers and networking, up through virtualization, operating systems, middleware and so on.
IaaS, PaaS and SaaS each offer a progressive layer of abstraction after that. IaaS abstracts away the physical compute, network, storage and the technology needed to virtualize those resources. PaaS goes a step further and abstracts away the management of the operating system, middleware and runtime.
Serverless computing (see below) abstracts away management of everything but the application code itself, and SaaS provides the entire user application as-a-Service, abstracting away the entire rest of the stack.
Learn more about the differences between IaaS, PaaS and SaaS.
More recently, the discussion around cloud workloads has become increasingly dominated by containers and serverless. In many ways, IaaS was a step in the journey to the platonic ideal of cloud.
IaaS does offer users more granularity to pay for what they use, but they rarely pay only for what they use. Even virtual servers often involve long-running processes and less than perfect capacity utilization.
IaaS abstracts away many low-level components so developers can focus on business logic that differentiates the business, but it still requires users to manage operating systems, middleware and runtimes.
IaaS is often more resource and financially efficient than traditional compute, but spinning up a VM can still be time-consuming, and each VM brings with it overhead in the form of operating systems.
This model of IT was capable of supporting almost anything from a workload perspective but had room for evolution when it came to certain underlying philosophies and values that make cloud, cloud.
Containers and serverless are the two newer cloud models that are challenging the traditional IaaS model for supremacy around certain classes of cloud native applications and workloads.
In some cases, the container has begun replacing the VM as the standard unit of process or service deployment, with orchestration tools like Kubernetes governing the entire ecosystem of clusters.
Serverless goes the furthest of any model, abstracting away nearly everything but the business logic, scaling perfectly with demand and truly delivering on the promise of paying only for what you use.
As the world moves more toward microservices architectures—where applications are decomposed to their small piece parts, deployed independently, manage their own data and communicate via API—containers and serverless approaches will become more common.
Today, traditional IaaS is, by far, the most mature compute model in cloud and controls most of the market share in this space, but containers and serverless approaches are technologies to watch and begin employing opportunistically.
IBM offers a full-stack cloud platform that includes a full IaaS layer of virtualized compute, network and storage. Additionally, and unique within the industry, IBM Cloud also offers BMaaS for users that want more control over the underlying hardware.
IBM is also committed to delivering solutions for cloud-native applications and workloads, which, in addition to IaaS, include IBM Cloud Kubernetes Service and IBM Cloud Functions for serverless applications.
To get started with cloud IaaS, create an IBM Cloud account and provision your first virtual server.
Get maximum performance and secure single tenancy from a dedicated server with root-level access to all server resources for easier workload customization.
IBM Cloud Virtual Servers are public and dedicated virtual servers that provision and scale on demand, with monthly and hourly billing options.
Cloud storage services comprise scalable, durable, security-rich, cost-effective networks of connected data servers that enable access to data across devices.
A virtual machine is a virtual representation, or emulation, of a physical computer. Virtualization makes it possible to create multiple virtual machines on a single physical computer.
Cloud storage allows customers to save data and files in an off-site location accessible via the public internet or a dedicated private network connection.
SDN simplifies network and infrastructure management by decoupling network control logic from network devices.