CLOUD COMPUTING
WHAT IS CLOUD COMPUTING?
Cloud computing is the delivery of computing services—including
servers, storage, databases, networking, software, analytics, and
intelligence—over the Internet ("the cloud").
This allows for the on-demand usage of these resources without the
need to purchase, manage, and maintain them within your own physical
datacenters.
DISTRIBUTED SYSTEM MODELS AND CLOUD COMPUTING
➢ Cloud computing relies on distributed system models to
function.
➢ These models define how resources are shared and accessed
across a network.
➢ Understanding these models is crucial for grasping the
fundamental principles of cloud architecture.
DISTRIBUTED SYSTEM MODELS
1. Client-Server Model:
This is the most common model, where dedicated servers provide resources and
services to clients.
Clients make requests to servers, which process the requests and send back
responses.
2. Peer-to-Peer (P2P) Model:
In this decentralized model, all nodes (peers) can act as both clients and
servers.
Peers share resources and services directly with each other, without a
central server.
3. Cluster Computing Model:
A group of interconnected computers (nodes) work together as
a single unit, providing high processing power for large tasks.
Nodes are typically similar in functionality and share the
workload amongst themselves.
CLOUD COMPUTING
WHAT IS CLOUD COMPUTING?
Cloud computing is the delivery of computing services—including
servers, storage, databases, networking, software, analytics, and
intelligence—over the Internet ("the cloud").
This allows for the on-demand usage of these resources without the
need to purchase, manage, and maintain them within your own physical
datacenters.
KEY CHARACTERISTICS:
On-demand self-service: Users can provision and access
resources as needed, without going through a lengthy approval
process.
Scalability and elasticity: Resources can be rapidly increased or
decreased to match fluctuating demand.
Pay-as-you-go pricing: You only pay for what you use, leading to
cost savings compared to traditional IT infrastructure
investments.
Broad network access: Cloud services can be accessed from
anywhere with an internet connection.
CLOUD DEPLOYMENT MODELS
Cloud deployment models define how the infrastructure and
resources of a cloud are managed and delivered to users.
➢ Public
➢ Private
➢ Hybrid
➢ Community
1. PUBLIC CLOUD:
Description: Shared cloud infrastructure owned and operated by third-party
providers, available to the general public on a pay-as-you-go basis.
Benefits:
Cost-effective: Pay only for what you use, eliminating upfront hardware investments.
Scalable and elastic: Easily adjust resources up or down to meet changing demands.
Broadly accessible: Accessible from anywhere with an internet connection.
Drawbacks:
Security concerns: Data resides on a shared infrastructure, requiring careful security
considerations.
Vendor lock-in: Switching providers can be complex if your applications become
heavily reliant on the specific features of the platform.
Less control: Limited control over the underlying infrastructure compared to private
clouds.
2. PRIVATE CLOUD:
Description: Dedicated cloud infrastructure used by a single organization,
hosted either on-premises or by a third-party provider.
Benefits:
Increased security: Provides greater control and isolation of data and
applications.
Customization: Tailored to meet specific organizational needs and compliance
requirements.
Predictable performance: Dedicated resources ensure consistent performance.
Drawbacks:
Higher cost: Requires upfront investment in hardware and software, and ongoing
maintenance.
Less scalability: Scaling resources may involve acquiring additional hardware,
which can be slower than in public clouds.
Management complexity: Requires internal expertise to manage the
infrastructure.
3. HYBRID CLOUD:
Description: Combines public and private cloud resources, allowing for data and
applications to move between the two environments based on specific needs.
Benefits:
Leverages the strengths of both models: Offers scalability and cost-effectiveness of
public cloud alongside the security and control of private cloud.
Flexibility: Enables on-demand access to additional resources from the public cloud
to handle spikes in demand.
Drawbacks:
Increased complexity: Managing two separate environments adds complexity and
requires orchestration tools.
Data security considerations: Requires careful planning to ensure consistent
security across both environments.
4. COMMUNITY CLOUD:
Description: Shared cloud infrastructure owned and operated by a group of
organizations with similar interests or needs.
Benefits:
Cost-effective: Lower costs compared to private clouds due to shared resources.
Specialized services: Can cater to specific needs of the member organizations.
Drawbacks:
Limited availability: Not as widely available as public clouds.
Less control: Less control over the infrastructure compared to private clouds.
CLOUD SERVICE MODELS
Cloud service models define the type and level of service offered by cloud
providers. These models determine what the provider manages and what
the responsibility of the user is, allowing you to select the most suitable
option for your specific needs.
➢ IaaS
➢ PaaS
➢ SaaS
1. INFRASTRUCTURE AS A SERVICE (IAAS):
Description: IaaS provides the fundamental building blocks of computing,
including virtualized servers, storage, networking, and operating systems.
User Responsibilities:
Users manage the operating system, applications, and data on the virtualized
resources.
They are responsible for security patching, configuration, and resource
management.
Benefits:
Highly customizable: Users have full control over the underlying infrastructure,
allowing for tailored configurations suited to specific needs.
Cost-effective: Pay only for the resources you use, eliminating upfront hardware
costs.
Scalability: Easily scale resources up or down to meet fluctuating demands.
2. PLATFORM AS A SERVICE (PAAS):
Description: PaaS provides a development and deployment
environment in the cloud, including operating systems, middleware,
databases, and development tools.
User Responsibilities:
Users focus on developing, deploying, and managing their
applications on the platform.
The provider takes care of the underlying infrastructure, operating
system, and middleware.
Benefits:
Reduced development time and complexity: Streamlines the
development process by providing pre-configured tools and services.
Faster time-to-market: Allows rapid deployment and scaling of
applications.
Managed infrastructure: Reduces the burden of managing and
maintaining the underlying infrastructure.
3. SOFTWARE AS A SERVICE (SAAS):
Description: SaaS delivers complete, ready-to-use software applications over
the internet, accessible through a web browser or mobile app.
User Responsibilities:
Users subscribe to the service and access it through the internet, with minimal
to no configuration required.
The provider manages all aspects of the application, including infrastructure,
platform, software updates, and security.
Benefits:
Easy to use and manage: Requires minimal technical expertise, allowing rapid
adoption with low overhead.
Scalability: Automatically scales to accommodate changes in user base and
demand.
Cost-effective: Pay only for the features you use, typically on a subscription
basis.
NIST Cloud Computing Reference Architecture
➢ The National Institute of Standards and Technology (NIST) developed
the Cloud Computing Reference Architecture (RA) to provide a common
framework for understanding and discussing various aspects of cloud
computing
➢ The RA focuses on defining and describing the components and service
offerings of cloud computing, not providing specific design or
implementation instructions. It acts as a common language for
discussing cloud concepts.
➢ Stakeholder Roles
➢ Cloud Service Models and Deployment Models
➢ Security and Compliance
NIST ccra document Link
https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication500-292.pdf
CLOUD INFRASTRUCTURE
Cloud infrastructure is the foundation of cloud computing, providing the essential
building blocks to operate applications and store data
Core Components :
➢ Hardware
➢ Networking
➢ Storage
CORE COMPONENTS:
1. Hardware: The physical foundation, encompassing servers, network devices,
storage systems, and data centers housing the entire infrastructure.
Servers: The workhorses, offering processing power for running applications and
storing data.
-- Bare Metal Servers
-- Virtual Servers
-- Dedicated Hosts
Data centers: Secure physical locations housing all hardware, ensuring optimal
environmental conditions and security.
2. Networking:
Virtual networks: Software-defined networks (SDN) offer control over network
configuration, security, and traffic routing within the cloud.
Internet connectivity: High-bandwidth connections enable communication with
the outside world and user access to cloud services.
3. Storage:
Block storage: Provides raw storage volumes functioning like virtual hard
drives for VMs.
Object storage: Stores data as objects with associated metadata, ideal
for unstructured data and large-scale storage.
File storage: Offers shared file systems accessible through network
protocols for collaboration and data organization.
ARCHITECTURAL DESIGN OF COMPUTE CLOUD
A compute cloud is a component of broader cloud computing systems that
provides on-demand, scalable access to computing resources. These
resources primarily include:
Compute Power (CPUs): Provided by virtual machines of varying sizes and
capabilities.
Memory (RAM): For running applications and processing data.
1. Layers of Abstraction
Physical Hardware: The foundation of the compute cloud includes physical servers,
network switches, power infrastructure, etc., housed in data centers.
Virtualization: Key enabling technology that decouples the underlying hardware
resources from the operating systems and applications. Hypervisors manage the
creation of virtual machines (VMs) which encapsulate these software elements.
Resource Pools: Virtualization allows the aggregation of hardware resources (CPU,
memory, network) into pools. These pools are then dynamically allocated to VMs
as needed.
Orchestration and Management: A software layer automates the provisioning,
scaling, monitoring, and management of VMs and underlying resources. This layer
is crucial for efficiency and self-service.
2. Key Components
Frontend:
Client Interfaces: Web portals, command-line interfaces (CLIs), or APIs that give users
access to interact with the cloud.
Identity and Access Management (IAM): Systems for authentication and authorization of
users and resources within the cloud.
.
Backend:
Virtual Machines (VMs): The core unit of cloud computing, consisting of
virtualized CPUs, memory, storage (often ephemeral), and network interfaces.
Hypervisors: Software like VMware ESXi, KVM, and Hyper-V that create, run,
and manage VMs.
Networking: Software-defined networking (SDN) for flexibility in configuring
virtual networks, security, and routing traffic.
Storage: Options ranging from ephemeral VM storage, block storage
(volumes), object storage (buckets), and file storage.
Management and Orchestration Layer: Tools like OpenStack, Kubernetes, and
cloud provider-specific management services
3. Design Principles
Scalability: The ability of the compute cloud to handle increasing or decreasing
workloads by dynamically allocating or releasing resources.
Elasticity: Closely related to scalability, this is the ability to adapt quickly to changes
in demand.
Resilience: Design for high availability and fault tolerance, often through redundancy,
self-healing mechanisms, and distribution across availability zones or geographic
locations.
Security: Multi-layered security at physical, network, virtualization, and application
levels is paramount.
Pay-As-You-Go Model: Users are charged for the resources they consume, minimizing
upfront investment.
ARCHITECTURAL DESIGN OF STORAGE CLOUD
What is a Storage Cloud?
A storage cloud provides a scalable, distributed, and highly available
storage solution accessible over a network (usually the internet). Its
goal is to abstract away the complexity of managing physical storage
and provide a flexible pool of storage resources to users on demand.
KEY ARCHITECTURAL COMPONENTS
❖ Storage Hardware: At the foundation are physical storage devices like
hard disk drives (HDDs), solid-state drives (SSDs), and potentially even
tape drives, organized within data centers.
❖ Storage Virtualization: A software layer that aggregates and presents
the underlying physical storage as a unified, logical storage pool.
❖ Storage Services: The heart of the storage cloud, providing different
models of data storage:
➢ Block Storage: Raw storage volumes presented to VMs, like virtual hard
drives
➢ Object Storage: Storing data as objects with associated metadata for
massive scalability and easy retrieval via APIs. Ideal for unstructured data
➢ File Storage: Hierarchical storage, providing shared file systems accessible
through network protocols
❖ Data Management and Orchestration: A software layer
responsible for:
Provisioning: Creating and allocating storage resources.
Data Replication: Copying data across multiple locations for redundancy.
Data Encryption: Protecting data at rest and in transit.
Snapshotting: Point-in-time copies for backup and recovery.
Security and Access Control: Managing access permissions.
ARCHITECTURAL DESIGN PRINCIPLES
Scalability: The storage cloud must expand or contract seamlessly to match
unpredictable demand.
Availability: Data should be accessible at all times, with safeguards against
hardware failures and site outages.
Durability: Mechanisms like replication and erasure coding ensure data integrity
and prevent loss.
Performance: Factors like storage tiering, intelligent caching, and network
optimization contribute to meeting performance expectations.
Security: Data must be protected through encryption, strict access controls, and
robust security protocols.
DESIGN CHALLENGES IN CLOUD COMPUTING
While cloud computing offers numerous advantages, several design challenges
require careful consideration during implementation:
1. Security and privacy:
Data security: Ensuring user data remains confidential and protected
from unauthorized access, breaches, and insider threats.
Shared responsibility model: Balancing the responsibility between cloud
providers and users for securing data and resources.
Compliance with regulations: Adhering to various data privacy
regulations like GDPR and HIPAA, which can be complex in a cloud
environment.
2. Multi-cloud and hybrid cloud environments:
Complexity of managing multiple clouds: Coordinating configurations, security
policies, and data management across different cloud providers can be intricate.
Vendor lock-in: Avoiding becoming dependent on a specific cloud provider, hindering
portability and flexibility.
Interoperability challenges: Ensuring seamless communication and data exchange
between different cloud platforms and services.
3. Performance and Scalability:
Network latency: Minimizing the impact of network distance and bandwidth limitations
on application performance.
Resource contention: Effectively managing resource utilization to avoid performance
degradation when multiple users share resources.
Scalability limitations: Addressing potential constraints in scaling resources up or down
quickly to meet changing demands.
4. Cost optimization:
Optimizing resource allocation: Choosing the right combination of cloud
resources (e.g., VM size, storage type) to balance cost and performance
needs.
Monitoring and managing costs: Utilizing cloud-provided cost management
tools to track and control cloud spending effectively.
Avoiding hidden costs: Being aware of additional fees associated with data
transfer, egress charges, and API calls.
5. Manageability and monitoring:
Complexity of managing distributed resources: Efficiently monitoring and
managing resources spread across various cloud services and regions.
Standardization and automation: Implementing consistent configurations and
automating routine tasks to streamline cloud management.
Lack of visibility: Gaining full visibility and control over cloud resources and
activities can be challenging, especially in complex environments.
BENEFITS OF CLOUD COMPUTING:
Increased agility and speed: Faster deployment of new IT resources and
faster time-to-market for new applications.
Cost reduction: Convert capital IT expenditure (like buying hardware) to
operating costs. Avoid upfront investments and pay only for what you use.
Improved scalability: Easily adjust resources up or down to match
changing business needs.
Reliability and disaster recovery: Cloud providers invest heavily in
redundancy and backups, ensuring business continuity.
Global access: Collaborate from anywhere, supporting remote teams and
worldwide business expansion.