The cloud is perhaps one of the most overly used and abused word in the IT-dom today. Some say that it keeps the IT peeps busy as bees. Well, Cloud is just not a buzzword. In this post, I will try to unravel what it actually means and refers to.
From IT Service Management perspective, Cloud can be defined as a collection of services which provides the customer to outsource the IT responsibility with varying degrees of freedom.
Cloud delivers mainly three services. They are:
- Infrastructure as a Service (IaaS)
- Platform as a Service (PaaS) and
- Software as a Service (SaaS)
To understand the three services, consider the image below with infrastructure and application stacks.
The technology stack starting with datacenters (missing in the figure) that houses the physical infrastructure such as networking, storage and servers form the core infrastructure (including the virtualization). Atop infrastructure sits the operating system, and the middleware is hosted on the operating system which leverages runtime and data. Finally the application leverages all the components underneath for its intended operation.
In a traditional model, the entire technology stack starting from datacenters to the application is managed on-premise (generally) and the customer becomes responsible for managing all the components of the technology stack – which is not bad in itself but is a lot of responsibility especially for companies that focus on the business side of things.
Infrastructure as a Service
In the IaaS model, we try to relieve the customer organization of the responsibility of managing the infrastructure. The customer needs to pay a certain amount of money for the infrastructure resources and it gets provisioned. Any incidents or problems pertaining to the infrastructure will be dealt by the IaaS provider.
The customer is still expected to manage the operating system, middleware and the applications.
Platform as a Service
An improvement over IaaS from a customer perspective is the PaaS where the customer not only relieves infrastructure duties but also those pertaining to the operating system, middleware and runtime. For example, a Java application requires a runtime such as JRE and is hosted on a JDK which in turn runs on the Windows operating server.
The customer hands over the reins of the operating server, middleware and the runtime to a cloud service provider, which relieves them of further responsibilities towards managing them. In turn, the cloud computing service fees can be expected to be more expensive than the IaaS service.
Software as a Service
Finally the most advanced model – the present and the future, the SaaS model. In this service model, the customer manages nothing. Everything in the technology stack is outsourced to a cloud service provider. The customer just uses the application and enjoys the service of being a user with no responsibilities towards maintaining them.
A classic example is Office 365, where the user pays on a monthly or annually and never ends up purchasing the software. In return, the latest software is always there for the taking. Otherwise, the purchased software became obsolete within a few months and updates would cost further more.
The cost of SaaS as expected is a whole lot more expensive compared to IaaS and PaaS because it relieves the customer of the IT duties which in turn could be beneficial for the company to focus on what they do the best and to allow cloud service providers to contribute where their expertise lie.
There are a number of cloud service models in the market today – integration as a service, database as a service and datacenter as a service to name a few. The cloud market is really buzzing with competitors throwing in their lots with application and infrastructure bounties to attract customers.
The prominent ones for the IaaS and PaaS models are Microsoft Azure, Amazon Web Services (AWS) and Google Cloud. SaaS model has a number of players and most of the applications we use today are likely to be sold in a SaaS model if it hasn’t been already.