History of Cloud Computing:
In early 1960’s computers are placed in rack after rack and situated remotely in air conditioned data center. In that time user was unable to see or interact with it. There were no visibility about compute status and all. Developer has to submit their job and wait for results. So many users would share computing resources at same time and at the end users use to get bill for resources they have used.
It is not very convenient and not very cost effective for the organization to buy servers, managing them individually. Instead it is very convenient to use computing powers for their workloads and pay rent for the computing resources as per uses. Here server and infrastructure is completely managed by third-party who is providing computing services. There is no headache of managing and investing a big amount for buying complete server.
What is cloud computing:
As per NIST (National Institute of Standards and Technology),
Cloud computing is a service model which enables and provide very convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.
This cloud model is composed of five essential characteristics, three service models, and four deployment models.
Following are the essential Characteristics:
On-demand self-service:
Cloud computing customers uses an automated user interface for getting resources those are available on demand without human intervention.
Broad network access:
All the resources should be accessible over the network from any location from where they wanted to access.
Resource pooling:
Cloud providers allocate resources from pool of resources irrespective of their physical location.
Rapid elasticity:
Resources should be elastic in nature. Increase resources automatically and rapidly when customers need it more and decrease it when customer need is less.
Measured service:
Cloud computing customers shall pay what they use or reserve the resources. Customer does not have to pay if they stop using resources.
Service Models:
Software as a Service (SaaS):
The capability provided to the consumer is to use the provider’s applications running on a cloud infrastructure. The applications are accessible from various client devices through either a thin client interface, such as a web browser (e.g., web-based email), or a program interface. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user specific application configuration settings.
Example: office 360, Gmail, Dropbox, Salesforce, Cisco WebEx etc.
Platform as a Service (PaaS):
The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages, libraries, services, and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly configuration settings for the application-hosting environment.
Example: Google app engine is a PaaS service.
Infrastructure as a Service (IaaS):
The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, and deployed applications; and possibly limited control of select networking components (e.g., host firewalls).
Example: Google compute engine service (GCE) is a IaaS service.
Deployment Models:
Private cloud:
The cloud infrastructure is provisioned for exclusive use by a single organization comprising multiple consumers (e.g., business units). It may be owned, managed, and operated by the organization, a third party, or some combination of them, and it may exist on or off premises.
Community cloud:
The cloud infrastructure is provisioned for exclusive use by a specific community of consumers from organizations that have shared concerns (e.g., mission, security requirements, policy, and compliance considerations). It may be owned, managed, and operated by one or more of the organizations in the community, a third party, or some combination of them, and it may exist on or off premises.
Public cloud:
The cloud infrastructure is provisioned for open use by the general public. It may be owned, managed, and operated by a business, academic, or government organization, or some combination of them. It exists on the premises of the cloud provider.
Hybrid cloud:
The cloud infrastructure is a composition of two or more distinct cloud infrastructures (private, community, or public) that remain unique entities, but are bound together by standardized or proprietary technology that enables data and application portability (e.g., cloud bursting for load balancing between clouds).