What is Infrastructure as a Service?

Infrastructure as a Service (IaaS) is a business-to-business cloud computing solution where the IaaS vendor offers server hardware, virtualization, storage, and networking resources to its customers for a fee. All other software, database and applications are managed by the customer on top of the IaaS service. Typically, the IaaS vendor offers the service on a monthly or annual subscription basis or multi-year contractual agreement. Hence the term, Infrastructure as a Service.

In the IaaS model, the network is a shared resource for all customers, and compute/storage can either be shared, or dedicated.

IaaS is at the Bottom of the Cloud Computing Stack

io-cloud_stack

Figure 1. Source: https://en.wikipedia.org/wiki/Cloud_computing

Cloud computing is an internet-based computing model that enables ubiquitous, on-demand access to shared processing resources. This can include resources up and down the cloud computing stack (Figure 1). While databases and applications would be considered higher up the stack, server hardware, networking and virtualization software such as VMWare or OpenStack are considered lower down the stack.

This lower part of the cloud computing stack is where Infrastructure as a Service fits in. IaaS is simply a cloud service that gives customers the freedom to develop their own cloud applications and databases without all the challenges and expenses of designing, installing, and maintaining the infrastructure layers of the stack. It allows them to focus on adding value to their core business applications.

IaaS, PaaS, and SaaS: What’s the Difference?

As the cloud computing industry has matured, three cloud computing models have emerged: Software as a Service (SaaS), Platform as a Service (PaaS) and Infrastructure as a Service (IaaS). But what’s the difference of each and how do they compare to each other, against a traditional IT environment? (Figure 2)

As-a-Service_Environment

Figure 2. Source: http://www.mazikglobal.com/blog/cloud-computing-stack-saas-paas-iaas/

Infrastructure as a Service (IaaS)

As discussed earlier, IaaS provides only the fundamental building blocks for cloud application deployment. IaaS users are responsible for managing applications, runtimes, databases, and servers, while vendors still manage virtualization, hardware, storage, and networking. IaaS customers gain an infrastructure on which they can install any required platform and are responsible for making updates when new versions are released.

Platform as a Service (PaaS)

Platform as a Service (PaaS) is further down the cloud computing stack, but not by much. You can think of PaaS as an application development environment as a service. PaaS vendors control the underlying cloud infrastructure (including runtimes, databases, servers, virtualization, hardware, storage, and networking) and allow application developers to manage the configuration, development, testing and deployment of applications.

As a result, application developers can deploy their software solutions without the cost and complexity of buying and managing the underlying hardware and software layers. This increases developer productivity and utilization rates, while also decreasing an application’s time-to-market. Applications using PaaS inherit cloud characteristics such as scalability, high-availability, multi-tenancy, SaaS enablement, and more.

IaaS and PaaS: Aren’t They the Same Thing?

 

Because the B2B cloud industry is still immature, there’s a lack of consensus on terminology.  Depending on the vendor or industry vertical, PaaS and IaaS can overlap and sometimes be used interchangeably.

To understand the difference between PaaS and IaaS, consider Google as an example:

Google Compute Engine

google-compute-engine

Google’s IaaS offering–Google Compute Engine–provides the computing infrastructure, virtual machines, and resources to its customers. Google says:

Google Compute Engine delivers virtual machines running in Google’s innovative data centers and worldwide fiber network. Compute Engine’s tooling and workflow support enable scaling from single instances to global, load-balanced cloud computing.

Google App Engine

google-app-engine

Google’s PaaS offering–Google App Engine–provides everything that Google Compute Engine does, plus the operating system, programming language execution environment, database, web servers, and so on for building applications. Google says:

Google App Engine is a platform for building scalable web applications and mobile backends. App Engine provides you with built-in services and APIs such as NoSQL datastores, memcache, and a user authentication API, common to most applications.

App Engine will scale your application automatically in response to the amount of traffic it receives, so you only pay for the resources you use. Just upload your code and Google will manage your app’s availability. There are no servers for you to provision or maintain.

Sources: 1) https://cloud.google.com/compute/; 2) https://cloud.google.com/appengine/

Software as a Service (SaaS)

Finally, Software as a Service (SaaS) represents the most well-known aspect of cloud computing services. As its name suggests, SaaS delivers specific software functionality to customers via the internet (typically). The classic (and perhaps original) example of a B2B SaaS company is Salesforce.com.

SaaS eliminates the need to install and run applications on individual computers, making it easier to deploy technology across the enterprise because the entire computing stack is managed by vendors. SaaS companies are software and application development and marketing companies. They usually don’t have the expertise or resources to deal with the underlying infrastructure. For this reason, SaaS providers are typically customers of PaaS and IaaS providers.

Benefits of IaaS

IaaS offers highly scalable resources that can be adjusted as a customer’s demand increases or decreases, providing organizations a more cost-effective “pay-as-you-use” model instead of owning and managing less scalable infrastructure. Essentially, IaaS enables organizations to rent an IT infrastructure from a service provider rather than purchasing the technology and hosting it internally. A typical IaaS offering can deliver the following benefits:

  • Scalability–Resources are available as needed, so customers can expand or reduce capacity as their business requirements change.
  • Flexibility–Customers can choose computing power and storage capacity that fits their specific needs at a given time, to capitalize on opportunities.
  • Security–IaaS vendors employs tight security measures to ensure their customers’ infrastructures are protected from potential breaches.
  • Reliability–IaaS offers a multitude of hardware resources and redundancy configurations, with no single point of failure, to keep customers online.
  • Quick Startup–Customers can easily and more quickly get their computing environment up and running since the infrastructure is already in place.
  • Latest Technology–IaaS vendors must stay leading-edge, offering more advanced technologies than what most organizations can afford and manage in-house.
  • Web Access–Having a computing infrastructure in the cloud means customers can access their environment through an internet connection–anytime, from anywhere.
  • Cost Optimization–In addition to no investment in hardware, storage, and networking, customers save the cost–and effort–associated with setup and maintenance.
  • Increased Focus–With an IaaS vendor handling their computing infrastructure needs, customers can concentrate on their core business, and their IT organizations can focus on more strategic initiatives.

Options for Deploying IaaS

IaaS can be achieved in a public, private, or hybrid environment. Most often, public IaaS cloud consists of shared resources deployed on a self-service basis over the internet, while private cloud delivers this virtualization over a private network. More and more vendors–and customers–are shifting towards a hybrid cloud, combining traditional dedicated hosting alongside public and/or private cloud networks.

Public

If a cloud service is run by a third-party and can be used by anyone, it’s a public cloud. This represents the easiest and quickest way to start using a cloud. Amazon Web Services or Google Compute services are examples of public cloud services.

Private

In a private cloud, an organization is simply providing cloud-style services from their data center infrastructure using the same cloud services as many larger enterprises. Organizations also can scale clouds up or down, depending on their requirements. If an organization owns and controls the hardware and software, it most likely is a private cloud.

Hybrid

Hybrid cloud deployments have become popular, as strictly public or private clouds don’t meet the infrastructure and workload needs of most businesses. Hybrid clouds enable organizations to extend their on-premise infrastructure into a third-party managed cloud, taking advantage of cloud benefits while still having a single, cohesive, secure infrastructure.

When Does IaaS Make Sense?

Factoring all of the benefits mentioned above, IaaS is an ideal cloud solution primarily for companies seeking to gain efficiencies, reduce risk, and maintain control while better managing costs. Another way to look at it: If IT is not part of your core business, it might make sense to outsource the management of your infrastructure.

It takes expertise to run complex computer systems, troubleshoot system malfunctions, and spend time provisioning new computing resources. An IaaS deployment eliminates those IT tasks so companies can focus on more strategic projects–and their core businesses.

Other situations that make sense for an IaaS deployment include:

  • Organizations, particularly newer ones, that don’t have the capital to invest in hardware and/or the resources for ongoing support and maintenance.
  • Rapidly growing companies where scaling hardware would be challenging and costly.
  • Businesses seeking to move their IT to an operating expenditure (opex) model, versus capital expenditure (capex).
  • Business–or traffic–fluctuations (e.g., during seasonal periods, trials, etc.), creating peaks and valleys in terms of infrastructure demands.
  • Businesses looking to take advantage of cloud capabilities, but needing to do it with minimum re-tooling of their technologies or human skill sets.
  • Companies looking to provide the cloud as a bridge for supporting their legacy technologies and new web scale services.

Shifting to a new IT environment in-house can be a challenging experience. With IaaS, you can move your existing environment directly to an IaaS provider’s and incrementally move servers and applications as needed. Not only is this often easier on the organization, but it also positions you to react faster to market changes and opportunities.