Infrastructure As a Service
In this Section, we will take a look at Infrastructure As a Service (abbreviated as IAAS).
A traditional datacenter generally uses virtualization to create virtual machines and then deploy or install software in those virtual machines. In this kind of an environment, adding new virtual machine on demand is not a trivial task. Also, if a virtual machine goes down, there are no mechanisms available to bring them up automatically.
The issues in a traditional datacenter could be summarized as below:
- Not Resilient to failures
- Manual creation and configuration
- Cannot remove or add infrastructure on demand
- Configuration of Firewall, load balancers etc., are done manually
How does IAAS help?
To put in a succinct manner, all of the above issues are taken care of by the IAAS platform.
The platform takes care of the following:
- Creating and provisioning of virtual machines on demand
- Resilient – If one virtual machine goes down, the platform takes responsibility to spawn another machine with same configuration and state.
- Provides additional infrastructure, network, storage configurations like firewall, load balancers, security policies. All these configurations could be stored in a template and the template could be used repeatedly.
- Provides multi tenancy. i.e. Provides isolated infrastructure for each account.
- Code based Infrastructure creation (Infrastructure as Code) – The platform exposes APIs which would create and configure infrastructure. So we can create a template of the configurations (like CPU, Memory etc.) and invoke the APIs on our own to provision infrastructure.
- Provides Elasticity – The platform allows us to scale the infrastructure components based on predefined rules. For example, if CPU utilization is more than 80%, we can have a rule to scale horizontally.
Reference Implementations:
Some of the popular IAAS platforms are Amazon Web Services (AWS), OpenStack, VMWare vCloud Air.