What is a Cloud?
Depending on who you are talking to, you’ll get different answers to this question.
A technically savvy end-user might define cloud as the ability to store and access personal or business data on-demand, over the internet, without having to store it locally.
A business might define cloud as an IT infrastructure that can be rented on-demand, instead of purchasing IT equipment to run their enterprise business applications.
A stakeholder might define cloud as a flexible execution environment of resources involving one or more stakeholders and providing a metered service at multiple levels up to a specified quality benchmark.
A biologist might define cloud as small droplets of water combine to form a cloud.
The traditional method of purchasing and deploying your own servers, storage and networking equipment at your datacenter might not be cost effective under certain circumstances. It is also not possible for start-ups to quickly build their own scalable IT infrastructure. Cloud computing comes to rescue under these situations.
Cloud Service Models
The following are three high level service models in the cloud:
- SaaS (Software as a Service)
- PaaS (Platform as a Service)
- IaaS (Infrastructure as a Service)
SaaS – Software as a Service
SaaS service provider will allow you to use their application software. Depending on your requirement, they might allow access to only specific functionality of their application. In this model, service provider will take care of development, upgrade and maintenance of the software applications. In simple terms, you’ll be paying monthly to use their application software.
For example, salesforce.com which is a CRM application as a service. Basecamp which is project management application as a service.
PaaS – Platform as a Service
PaaS service provider will allow you to use their platform (Operating System, database, web servers, run time environments, etc), or specific stack of solutions as per your requirement. It is one more level up where access is raised to the system software. Service provider will be take care of the complete development or computing environment, and users will take care of developing their own applications or product on top of it. In simple terms, you’ll be paying monthly to use their platform and develop your own application on top of it.
For example, Google App Engine and Red Hat Open Shift.
IaaS – Infrastructure as a Service
IaaS Service provider will allow you to use their infrastructures including servers, network equipment, storage infrastructure, etc. It is one more level up where a complete infrastructure is provided to the user rather just an Operating environment or an application. In simple terms, you’ll be paying monthly to use their scalable and redundant IT infrastructure and run your own enterprise application on top of it.
For example, Google compute engine, Rackspace services, Amazon AWS.
IaaS model can be further classified in two categories:
- Software Infrastructure as a service: A stack of web development essentials on a dedicated virtual server
- Hardware Infrastructure as a service: A stack of environment with firewalls, storage, content delivery networks with a dedicated server
Cloud Service Users
Due to the differences in types of services offered in the above three models, each of them are targeted for different users and skill-sets as explained below:
- SaaS : Non-technical business users are the primary users of this model. These are primarily general purpose application software that are easy to use, rich in application functionality for a particular business domain.
- PaaS : Application development users (programmers) are the primary users of this model.
- IaaS : Various administrators (sysadmin, DBA, network admins) are the primary users of this model.
SaaS applications mainly focus on non-technical users. PaaS and IaaS focus on technical users. IaaS allows the development team to focus on application development so that they can innovate and develop highly scalable application without worrying about the IT infrastructure.
Depending on how it is deployed, cloud can be broadly categorized as follows:
- Public Cloud: Cloud services are made available to the general public in form of application, storage or platform services, maintained by either external or internal providers for an organization. It grants access over internet for its consumers. You pay a either fixed amount every month for the equipment that are rented, or pay only for the number of hours those equipment are used in a month. For example, Amazon web services, Google app engine, etc.
- Private Cloud: Cloud services are made available to an organization for their private use in form of application, storage or platform, maintained and deployed by external or internal providers for an organization. General public are restricted here. Its often deployed within the firewall of the organization having access over its intranet only.
- Hybrid Cloud: Cloud service made available using both public and private cloud to take advantage of their individual benefits. For example, an application platform for developing web services which stores data on private cloud within their firewall, but uses public cloud to make the front end application available for general public use.