Infrastructure as a service (IaaS) is a cloud computing service model by means of which computing resources are supplied by a cloud services provider. The IaaS vendor provides the storage, network, servers, and virtualization (which mostly refers, in this case, to emulating computer hardware). This service enables users to free themselves from maintaining an on-premises data center. The IaaS provider is hosting these resources in either the public cloud (meaning users share the same hardware, storage, and network devices with other users), the private cloud (meaning users do not share these resources), or the hybrid cloud (combination of both).
It provides the customer with high-level APIs used to dereference various low-level details of underlying network infrastructure like backup, data partitioning, scaling, security, physical computing resources, etc. A hypervisor, such as Xen, Oracle VirtualBox, Oracle VM, KVM, VMware ESX/ESXi, or Hyper-V runs the virtual machines as guests. Pools of hypervisors within the cloud operational system can support large numbers of virtual machines as well as the ability to scale services up and down according to customers' varying requirements.
Typically IaaS involves the use of a cloud orchestration technology like OpenStack, Apache CloudStack or OpenNebula. It manages the creation of a virtual machine and decides on the hypervisor (i.e. physical host) in order to start it whilst enabling VM migration features between hosts, allocates storage volumes, and attaches them to VMs that track usage information for billing and more.
An alternative to hypervisors is Linux containers, which run in isolated partitions of a single Linux kernel running directly on the physical hardware. Linux cgroups and namespaces are the underlying Linux kernel technologies used to isolate, secure and manage the containers. Containerisation offers higher performance than virtualization because there is no hypervisor overhead.
IaaS clouds often offer additional resources such as a virtual-machine disk-image library, raw block storage, file or object storage, firewalls, load balancers, IP addresses, virtual local area networks (VLANs), and software bundles.
The NIST's definition of cloud computing defines infrastructure as a service like:
The capability provided to the consumer is provision processing, storage, networks, as well as other fundamental computing resources where the consumer is able to deploy & run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, & deployed applications; and possibly limited control of select networking components (e.g., host firewalls).
According to the Internet Engineering Task Force (IETF), the most basic cloud-service model offered by the providers is IT infrastructure – virtual machines and other resources – as a service to subscribers.
IaaS-cloud providers supply these resources on-demand from the large pools of equipment installed in data centers. For wide-area connectivity, customers can use either the Internet or carrier clouds (dedicated virtual private networks). To deploy their applications, cloud users install operating-system images and the application software on the cloud infrastructure.[unreliable source?] In this model, the cloud user patches and maintains the operating systems along with application software. Cloud providers typically bill IaaS services on a utility computing basis: cost reflects the number of resources allocated and consumed.