Cloud computing is the next logical step in terms of the evolution of computing. From traditional data centers and virtualization, to hybrid environments, private, public, and hybrid cloud services, cloud computing is a type of computing that provides multitenant or dedicated computing resources such as compute, storage, and network, which are delivered to cloud consumers on demand. It comes in different flavors which include cloud deployment models and cloud service models. The most important thing in this is the way its pricing model works, which is pay-as-you-go.
Cloud deployment models describe the way cloud resources are deployed:
1) Private cloud: private cloud consists of cloud resources that are behind the firewall and on-premise exclusively for a specific organization
2) Public cloud: public cloud consists of cloud resources that are available to all organizations and individuals
3) Hybrid cloud: hybrid cloud consists of cloud resources that are available to a specific set of organizations that share similar types of interests or similar types of requirements
4) Community cloud: community cloud consists of cloud resources that combine two or more deployment models
Cloud service models describe the way cloud resources are made available to customers of all kinds, from individuals and small organizations, to large enterprises.
It can be in the form of pure infrastructure, where virtual machines are accessible and controlled by cloud consumers or end users, that is, Infrastructure as a Service (IaaS); or a platform where runtime environments are provided so that the installation and configuration of all software needed to run the application is already available and managed by cloud service providers, that is, Platform as a service (PaaS); or Software as a Service (SaaS), where the whole application is made available by cloud service providers with the responsibility of infrastructure and the platform remaining with the cloud service provider.
There are many Service Models that have emerged during the last few years, but IaaS, PaaS, and SaaS are based on the National Institute of Standards and Technology (NIST) definition:
Cloud computing has a few characteristics that are significant such as multitenancy, pay-as-you-use similar to electricity or gas connection, On Demand Self Service, Resource Pooling for better utilization of compute, storage, and network resources, Rapid Elasticity for scaling up and scaling down resources, based on needs, in an automated fashion, and Measured Service for billing.
Over the years, the usage of different cloud deployment models has varied based on use cases. Initially, public cloud was used for applications that were considered noncritical, while private cloud was used for critical applications where security was a major concern.
Hybrid cloud and public cloud usage has evolved over time, with the experience and confidence in the services provided by cloud service providers. Similarly, the usage of different cloud service models has varied based on use cases and flexibility. IaaS was the most popular in the early days, but PaaS is catching up in its maturity and ease of use with enterprise capabilities such as auto-scaling, support for multiple programming languages, and support for end-to-end application life cycle management tools.