Core Concepts of Cloud Computing
Cloud computing is a model for enabling ubiquitous, 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.
Key Characteristics
The National Institute of Standards and Technology (NIST) defines five essential characteristics of cloud computing:
- On-Demand Self-Service: A consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service’s provider.
- Broad Network Access: The capabilities are available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, tablets, laptops, and workstations).
- Resource Pooling: The provider’s computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. There is a sense of location independence in that the customer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter).
- Rapid Elasticity: Capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward commensurate with demand. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be appropriated in any quantity at any time.
- Measured Service: Cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and consumer of the utilized service.
Service Models
Cloud computing is typically delivered in three primary service models:
- Infrastructure as a Service (IaaS): The capability provided to the consumer is to provision processing, storage, and networking resources in a cloud infrastructure in which the consumer can deploy and run arbitrary software, including operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over the operating systems and deployed applications. Examples include virtual machines and managed storage.
- Platform as a Service (PaaS): The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications that are built using programming languages and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure, storage, networks, or even the operating systems, but has control over the deployed applications and possibly some configuration settings for the application-hosting environment. Examples include managed databases and development environments.
- 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 a well-defined interface. The consumer does not manage or control the underlying cloud infrastructure, networks, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings. Examples include web-based email, CRM software, and collaboration tools.
(Visual representation of Cloud Service Models: IaaS, PaaS, SaaS layered over Cloud Infrastructure)
Deployment Models
Cloud computing can be deployed in several ways:
- Public Cloud: Cloud infrastructure is provisioned for open use by the general public. It may be owned, managed, and operated by a business organization, academic, or government organization, or some combination of them. It exists on the premises of the cloud provider.
- Private Cloud: 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.
- Hybrid Cloud: 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 enabling data and application portability (e.g., cloud bursting for load balancing between clouds).
- Community Cloud: 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.
Virtualization: A fundamental technology that enables cloud computing by abstracting hardware resources to create virtual versions of operating systems, servers, storage devices, and networks. This allows for efficient resource utilization and rapid provisioning.
Scalability: The ability of a system to handle a growing amount of work, or its potential to be enlarged in order to accommodate that growth. In cloud computing, elasticity refers to the ability to scale resources up or down automatically as demand changes.
High Availability: Ensuring that cloud services are accessible and operational for a very high percentage of the time, often through redundancy and failover mechanisms.