Infrastructure as a Service (IaaS) is a form of cloud computing that provides virtualized computing resources over the Internet. IaaS is one of the three main categories of cloud computing services, along with Software as a Service (SaaS) and Platform as a Service (PaaS).
In an IaaS model, a cloud provider hosts the infrastructure components that traditionally exist in an on-premises data center, including servers, storage and networking hardware, and the virtualization or hypervisor layer.
IaaS providers also offer a range of services to accompany their infrastructure components. These can include detailed billing, monitoring, log access, security, load balancing and clustering, as well as resiliency mechanisms such as backups, replication and recovery. These services are increasingly policy-driven, allowing IaaS users to implement an ever-increasing level of automation and orchestration for key infrastructure tasks. For example, a user can implement policies to improve load balancing to maintain application availability and performance.
IaaS customers access resources and services over a wide area network (WAN) and can use the cloud provider's services to deploy the remaining elements of an application stack. For example, the user can log into the IaaS platform to create virtual machines (VMs), install operating systems in each VM, deploy middleware such as databases, create storage areas for workloads and backups, and install the company's workloads in that VM. Customers can then use the vendor's services to monitor costs and performance, distribute network traffic , troubleshoot application problems, manage disaster recovery methods and more.
Any cloud computing model requires the participation of a provider. The provider is often a third-party organization that specializes in selling IaaS. Amazon Web Services (AWS) and Google Cloud Platform (GCP) are examples of independent IaaS providers. An organization can also choose to use a private cloud and become its own infrastructure services provider.
Enterprises choose IaaS because it's often easier, faster and less expensive to run a workload without having to buy, manage and support the underlying infrastructure. With IaaS, a company can simply rent or lease that infrastructure from another company.
IaaS is an effective model for workloads that are transient, experimental or change unexpectedly. For example, if a company is developing a new software product, it may be more cost-effective to host and test the application through an IaaS provider. Once the new software is tested and refined, the company can remove it from the IaaS environment and use it for a more traditional, in-house deployment. Conversely, the company could earmark that software for a long-term IaaS deployment, with potentially lower costs for a long-term commitment.
Generally, IaaS customers pay for usage, typically per hour, week or month. Some IaaS providers also charge customers based on the amount of virtual machine storage they use. This pay-as-you-go model eliminates the capital costs of deploying in-house hardware and software.
If a company cannot or will not use a third-party provider, a private cloud built on-premises can still provide the control and scalability of IaaS - but the cost benefits are eliminated.
Despite its flexible, pay-as-you-go model, IaaS billing can be a problem for some companies. Billing in the cloud is extremely granular and is split to reflect the exact usage of services. It's not uncommon for users to be startled by the final price when reviewing invoices for each resource and service involved in an application deployment. Users should closely review their IaaS environments and invoices to understand how IaaS is being used and to avoid being billed for unauthorized services.
Another common issue for IaaS users is transparency. Because IaaS providers own the infrastructure, the details of their infrastructure configuration and performance are rarely transparent to IaaS users. This can make system management and monitoring difficult for users.
IaaS users are also concerned about service resiliency. Workload availability and performance is highly dependent on the provider. If an IaaS provider experiences network bottlenecks or downtime, users' workloads will be impacted. Since IaaS is a multi-tenant architecture, the problem of noisy neighbors can impact other users.