cc_unit1 notes
cc_unit1 notes
Cloud Computing is a model for delivering a variety of computing services over the internet
(“the cloud”). It allows users to access data, applications, storage, and other resources on remote
servers instead of on local computers or devices.
Key Characteristics:
o Broad Network Access: Services are available over the internet and can be
accessed from various devices like smartphones, tablets, and computers.
o Rapid Elasticity: Resources can be scaled up or down quickly, allowing flexible use
according to demand.
The development of cloud computing spans several decades, driven by the need for scalable,
accessible computing resources. Here’s an overview of its evolution:
Telecom and Network Expansion: The growth of the internet and improved networking
laid the groundwork for remote computing.
Application Service Providers (ASPs): Companies started to host applications for other
businesses, similar to SaaS. However, they lacked the scalability and efficiency of modern
cloud services.
2000s: Rise of Modern Cloud Computing
Amazon Web Services (AWS): In 2006, Amazon launched AWS, offering storage and
computation services (S3, EC2). This marked the official beginning of commercial cloud
computing.
Hybrid and Multi-Cloud Models: Organizations now combine private and public clouds
(hybrid cloud) and use multiple cloud providers (multi-cloud) to optimize performance and
reliability.
Edge and Serverless Computing: Recent advancements have led to edge computing
(processing closer to data sources) and serverless computing, where applications run in
response to events without dedicated server infrastructure.
Parallel and Distributed Computing are foundational principles for cloud computing, enabling
large-scale processing and resource sharing across multiple systems.
Parallel Computing
Parallel computing involves dividing tasks into smaller subtasks that can be processed
simultaneously on multiple processors within the same system.
Key Principles:
o Concurrency: Tasks run concurrently, with each processor performing a different part
of the overall computation.
Benefits:
Distributed Computing
Distributed computing involves multiple computers (often over a network) working together to
achieve a common goal. It’s the basis of cloud computing, where tasks are distributed across
many servers.
Key Principles:
o Resource Sharing: Resources (like storage, processing power) are shared across
networked systems.
o Scalability: Distributed systems can easily add resources to handle growing
workloads.
o Fault Tolerance: Distributed systems can continue functioning even if some nodes
fail, ensuring higher reliability.
Benefits:
Parallel Computing: Multiple processors within the same system, each handling a segment
of the same task.
Distributed Computing: Multiple systems working together over a network, each possibly
running different tasks.
4. Cloud Characteristics
Cloud computing has unique characteristics that distinguish it from traditional computing models.
These characteristics help make the cloud a flexible, cost-effective, and scalable solution for
computing needs.
Key Characteristics:
1. On-Demand Self-Service:
o Cloud services are accessible over the internet and can be used from various devices,
such as laptops, mobile phones, and tablets.
3. Resource Pooling:
o Cloud providers use multi-tenant models, where resources (CPU, memory, storage) are
pooled and dynamically assigned to users based on demand.
4. Rapid Elasticity:
5. Measured Service:
o Resources are automatically monitored and controlled, allowing for pay-as-you-go
pricing. Users pay only for the resources they actually consume.
6. Multi-Tenancy:
o Multiple customers can share the same physical infrastructure while maintaining data
security and isolation, making efficient use of resources.
5. Elasticity in Cloud
Elasticity in cloud computing refers to the ability of a cloud system to automatically scale
resources up or down based on demand. It is a key characteristic of cloud computing that allows
businesses to handle varying workloads efficiently, without having to permanently invest in
hardware or resources.
Scalability: Cloud systems can scale their resources dynamically, adding or removing
computing resources (e.g., virtual machines, storage) as needed.
Cost Efficiency: By only using the necessary amount of resources, elasticity helps in
reducing unnecessary costs. You pay only for what you use.
Types of Elasticity:
Vertical Scaling (Scaling Up/Down): Involves increasing or decreasing the resources (like
CPU or memory) of a single instance (virtual machine).
o Example: Adding more web servers to handle increased traffic during peak hours.
Benefits of Elasticity:
High Availability: It ensures that cloud services are always available, even during spikes in
demand.
Example:
A website may experience high traffic during certain events. Elasticity allows the website to
automatically scale up the number of virtual machines (VMs) when needed and scale down
when traffic reduces.
6. On-Demand Provisioning
On-demand provisioning is the capability of cloud services to provide computing resources
when they are requested, typically through a self-service portal or API. This allows users to
provision resources instantly without needing to wait for manual intervention.
Key Features:
Instant Availability: Cloud resources are made available on request, which reduces wait
times and enables rapid deployment of applications.
Self-Service: Users can provision, monitor, and scale resources independently without
needing to rely on cloud administrators.
Automated Management: Cloud providers manage and automate many tasks, such as
resource allocation, system updates, and load balancing, so that users can focus on using
the resources rather than managing them.
How It Works:
Provisioning Resources: When a user needs a virtual machine, storage, or other services,
they can initiate the request via the cloud console or API. The cloud platform responds by
allocating resources automatically.
Scaling: On-demand provisioning often works alongside elasticity, where resources are
dynamically adjusted based on user-defined rules.
Benefits:
Cost Efficiency: Resources are used only when needed, minimizing the need for upfront
investment and ongoing costs.
Example:
Amazon EC2: You can launch an EC2 instance (virtual machine) within minutes and shut it
down when no longer required, paying only for the time the instance is running.