Infrastructure-as-a-service (IaaS) delivers full computing capabilities virtually—including servers, storage and network—over the internet.
Sometimes also called hardware-as-a-service, IaaS is a kind of cloud computing in which organisations can access essential computing, networking and storage resources without having to purchase, install or maintain those resources onsite. Instead, most IaaS vendors offer pay-as-you-go models, where businesses ‘rent’ out computing resources. These resources can then be accessed over any secure internet connection.
Providing instant, easy-to-use infrastructure services over the internet, IaaS is an extremely popular solution across nearly every industry. The following as some key advantages of using IaaS:
Effective business continuity relies heavily on available technologies. By taking on infrastructure responsibilities, cloud vendors also take on the responsibility of ensuring that essential technologies remain available even during emergent events and disasters, allowing for improved continuity for users.
When an organisation pays a cloud vendor for access to infrastructure resources, the vendor agrees to meet certain service levels. Service level agreements (SLAs) ensure that business technology is available and reliable, without requiring the user to maintain servers, upgrade network security or find resolutions to hardware-relevant problems. These tasks all fall to the cloud vendor.
Cloud vendors generally service more than one organisation at a time, and that means they need to keep a large amount of computing resources ready and available to meet the changing needs of their clients. When an organisation sees increased or decreased demand, they can easily scale up or down their resources, paying for only what they use.
IaaS is often controlled programmatically - i.e. in code. This means that a developer can use Infrastructure as Code (IaC) to define their own infrastructure requirements that are implemented when their code is deployed into test and production environments. This is sometimes referred to as shifting the responsibility ‘left’ or earlier in the delivery pipeline and moving it from an operations role to a developer or DevOps team activity.
IaaS lets organisations build their own platforms on reliable remote infrastructure. As such, IaaS applications are nearly limitless. Three primary use cases for IaaS are as follows:
With IaaS, users can scale their resources to meet their storage needs, simplifying backup and recovery-system management.
IaaS is capable of effectively pairing big data with business intelligence, empowering businesses to extract competitive insights from structured and unstructured data sources (such as social media, emails and images).
Before it can be deployed with any degree of confidence, software must first be tested and evaluated. IaaS allows organisations to scale computing power and other resources quickly and easily, setting up on-the-spot testing environments tailored to their product’s specific needs, for faster deployment than would be otherwise possible. Developers can be given the ability to define the Infrastructure as Code in the same way they write features in code.
Contrary to traditional on-premises computing solutions in which an organisation would take responsibility for managing the entire end-to-end stack (including all hardware, software, operating systems and virtualisation etc.), cloud computing takes some or all these responsibilities and establishes them as accessible options through the cloud.
IaaS is only one form of cloud computing. Other forms include platform-as-a-service (PaaS) and software-as-a-service (SaaS). The distinction between these different approaches to cloud service depends on which stack elements are the responsibility of the user or customer, and which are managed by the cloud vendor.
If an on-premises solution allows end-users full responsibility and control over their computing resources, IaaS is one step removed. In an IaaS solution, the cloud vendor provides the essential infrastructure technology, including hardware and components, and takes responsibility for housing, operating, maintaining and updating all associated equipment. The customer can then use this infrastructure to deploy the remainder of their application stack.
With IaaS, end-users provide the applications, middleware, runtime, virtual networks and operating system, while the cloud vendor takes care of the physical network, servers and storage. IaaS providers may also offer accompanying services, including load balancing, security, monitoring and more.
PaaS takes things further than IaaS, providing end users with the resources, storage space and infrastructure they need to host, build and deploy consumer-facing applications. Like IaaS solutions, the PaaS cloud vendor takes responsibility for the infrastructure and physical hardware and servers, but also provides the runtime, middleware and operating systems necessary to create custom apps.
SaaS is the logical culmination of cloud computing, managing the entire stack and taking essentially full responsibility for all associated resources. SaaS is probably the most well-known and widely used form of cloud computing for businesses. SaaS gives organisations access to fully developed and maintained applications, usually accessible over any standard web browser (without the need for local installation).
While IaaS, PaaS and SaaS are the most common forms of cloud computing, it’s also worth recognising that new cloud models—containers and serverless—are becoming increasingly prevalent. These models take the IaaS concept of renting out servers and virtual machines and build upon it. The end result is fewer coding responsibilities for developers, and a more-complete level of service from vendors.
Simply put, a container is a self-contained unit of software that includes all the necessary code and relevant dependencies, so that the application can function effectively in any computing environment, and even be moved from one environment to another. Rather than emulating and fulfilling the duties of the physical machines, containers abstract the application layers themselves, so developers can be sure that their applications will run properly on any on-premises server or cloud platform.
Serverless computing does away with the need for complete applications. Instead of having users build apps to run on provided infrastructure, they break up the various application components into constituent functionalities. The vendor then builds the app, scaling (and charging for) each function and properly allocating processing power to ensure that the application performs optimally on the server. Serverless abstracts away almost everything, leaving only business logic for the user to define.
IaaS provides a more-resource efficient approach, but containers and serverless solutions may represent the future of cloud computing.
Although IaaS provides several clear advantages, it is not without its challenges.
IaaS cost structures are extremely granular. And while paying only for what an organisation uses is certainly an advantage in avoiding unnecessary costs, the flip side of this is that an organisation will always pay for everything it uses. And when every resource and service have a price tag attached, costs can add up quickly. This can make cost management and forecasting in IaaS difficult.
Although IaaS users have the authorisation to use the provided computing and infrastructure resources, they don’t always have authorisation to peer into the configuration and details of the infrastructure itself. This can create visibility and transparency problems that make system management much more difficult.
In terms of operations teams, IaaS forces developers to adjust to taking more control of the infrastructure decisions. As some organisations move from project models to product models, they often place Ops people within the product teams, which can lead to issues with managing infrastructure changes and configurations.
Allowing developers to define their infrastructure using IaC means that checks on how infrastructure is configured moves from an operations role to something that must be done as part of the delivery pipeline. Configuration Data Management is a new pipeline discipline that leverages similar automation approaches as test and security in the pipeline.
And last, but not least, using an IaaS solution means putting one’s faith in the cloud vendor. Should the vendor experience an outage or suffer from an unexpected attack, it can negatively impact the businesses that rely on it.
Integrate IaaS with ServiceNow. Our APIs, integration tools and analytics capabilities help you address business problems faster by integrating SaaS, IaaS, legacy systems and databases inside and outside the enterprise.