10.1 Cloud Computing
Key Concepts
- Cloud Computing
- Cloud Service Models
- Cloud Deployment Models
- Scalability
- Elasticity
- Resource Pooling
- On-Demand Self-Service
- Broad Network Access
- Measured Service
Cloud Computing
Cloud Computing is the delivery of computing services—including servers, storage, databases, networking, software, analytics, and intelligence—over the Internet (“the cloud”) to offer faster innovation, flexible resources, and economies of scale.
Example: Think of cloud computing as a utility company that provides electricity. Instead of generating your own power, you plug into the grid and pay for what you use. Similarly, in cloud computing, you access computing resources over the internet and pay for what you consume.
Cloud Service Models
Cloud Service Models define the level of responsibility and control a user has over the cloud infrastructure. The three primary models are:
- Infrastructure as a Service (IaaS): Provides virtualized computing resources over the internet. Users manage the operating systems, applications, and data, while the cloud provider manages the physical infrastructure.
- Platform as a Service (PaaS): Offers a platform allowing customers to develop, run, and manage applications without dealing with the underlying infrastructure. Users manage the applications and data, while the cloud provider manages the middleware, operating system, and servers.
- Software as a Service (SaaS): Delivers software applications over the internet, on a subscription basis. Users access the applications via a web browser, and the cloud provider manages the entire infrastructure, including the application, middleware, operating system, and servers.
Example: Consider a restaurant. IaaS is like renting a fully equipped kitchen (infrastructure), PaaS is like renting a kitchen with a chef (platform), and SaaS is like ordering a meal from a restaurant (software) that is delivered to your table.
Cloud Deployment Models
Cloud Deployment Models define where and how cloud services are deployed. The main models are:
- Public Cloud: Services are provided over the public internet and are available to anyone who wants to purchase them. Cloud resources are owned and operated by a third-party cloud service provider and delivered over the internet.
- Private Cloud: Services are used by a single organization, not exposed to the public. The cloud infrastructure is either maintained on a private network or by a third-party provider.
- Hybrid Cloud: Combines public and private clouds, allowing data and applications to be shared between them. This model provides greater flexibility and more deployment options.
- Community Cloud: Shared infrastructure between several organizations from a specific community with common concerns (e.g., security requirements, policy compliance).
Example: Think of a public cloud as a public library (open to everyone), a private cloud as a private library in a university (restricted to students and faculty), a hybrid cloud as a library that allows borrowing from both public and private collections, and a community cloud as a specialized library for a specific group of professionals (e.g., medical doctors).
Scalability
Scalability refers to the ability of a system to handle increased load by adding resources. In cloud computing, this means the ability to increase or decrease the amount of resources (CPU, memory, storage) as needed.
Example: Consider a retail store during the holiday season. To handle the increased number of customers, the store hires more staff and increases inventory (scaling up). After the season, it reduces staff and inventory (scaling down).
Elasticity
Elasticity is the ability to automatically scale resources up or down based on demand. Unlike scalability, which requires manual intervention, elasticity is automated and responds in real-time to changes in demand.
Example: Think of an elastic band that stretches (scales up) when pulled and returns to its original size (scales down) when released. Similarly, an elastic cloud system automatically adjusts resources based on real-time demand.
Resource Pooling
Resource Pooling is the practice of sharing resources among multiple customers. Cloud providers use a multi-tenant model where physical and virtual resources are dynamically assigned and reassigned according to demand.
Example: Consider a hotel that pools its rooms (resources) and assigns them to different guests (customers) based on availability. The hotel can dynamically allocate rooms to meet the needs of its guests.
On-Demand Self-Service
On-Demand Self-Service allows users to provision computing resources as needed automatically without requiring human interaction with each service provider.
Example: Think of an ATM machine that allows you to withdraw money (resources) at any time without needing to interact with a bank teller. Similarly, cloud services allow users to provision resources on-demand without human intervention.
Broad Network Access
Broad Network Access means that cloud services 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).
Example: Consider a streaming service that can be accessed from any device with an internet connection, such as a smartphone, tablet, or smart TV. The service is accessible from a wide range of devices, promoting broad network access.
Measured Service
Measured Service refers to the capability of the cloud system to transparently 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).
Example: Think of a utility company that measures your electricity usage (resource use) and bills you accordingly. Similarly, cloud providers measure resource usage (e.g., storage, processing) and charge customers based on consumption.