"Infrastructure as a service" (IaaS) refers to online services
that provide high-level APIs
used to dereference
various low-level details of underlying network infrastructure like physical
computing resources, location, data partitioning, scaling, security, backup
etc.
A hypervisor
runs the virtual machines as guests. Pools of hypervisors within the cloud
operational system can support large numbers of virtual machines and the
ability to scale services up and down according to customers' varying
requirements.
Linux containers 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. Also, container capacity auto-scales dynamically with computing load,
which eliminates the problem of over-provisioning and enables usage-based
billing.
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 describes IaaS as "where the consumer is able to deploy
and 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, and deployed
applications; and possibly limited control of select networking components
(e.g., host firewalls)."
IaaS-cloud providers
supply these resources on-demand from their 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 their application
software on the cloud infrastructure.
In this model,
the cloud user patches and maintains the operating systems and the application
software. Cloud providers typically bill IaaS services on a utility computing
basis: cost reflects the amount of resources allocated and consumed