Introduction to Cloud Computing
Cloud computing has transformed how organizations build, deploy, and scale
technology. Instead of owning physical infrastructure, users access computing
resources over the internet on demand.
Cloud computing is the on-demand delivery of computing services—including
servers, storage, databases, networking, and software—over the internet.
Eliminates the need for physical servers and upfront hardware costs.
Enables on-demand access to computing power and storage.
Supports scalability, flexibility, and cost efficiency.
Problem That Cloud Computing Solves:
Before the cloud, if a company wanted to launch a website or an application, it
had to follow a slow and expensive process:
The "Old Way" (On-Premises)
Companies had to purchase physical servers, storage devices, and
networking equipment.
This required a large upfront investment known as Capital Expenditure
(CapEx).
Peak usage had to be estimated in advance, often leading to
overprovisioning and wasted resources.
Procuring and setting up new servers could take weeks or even months.
The "New Way" (Cloud Computing)
Hardware is no longer purchased; computing resources are rented from
cloud providers such as AWS, Google, or Microsoft.
Costs shift from a large upfront investment to a pay as you go Operational
Expenditure model.
Resources can be provisioned instantly without long waiting periods.
Eliminates overprovisioning, guesswork, and resource wastage.
Cloud Computing Architecture
Cloud computing architecture refers to the components and sub-components
required for cloud computing. These components typically refer to:
1. Front end ( Fat client, Thin client)
2. Back-end platforms ( Servers, Storage )
3. Cloud-based delivery and a network ( Internet, Intranet, Intercloud )
1. Front End ( User Interaction Enhancement )
The User Interface of Cloud Computing consists of 2 sections of clients. The Thin
clients are the ones that use web browsers facilitating portable and lightweight
accessibilities and others are known as Fat Clients that use many functionalities
for offering a strong user experience.
2. Back-end Platforms ( Cloud Computing Engine )
The core of cloud computing is made at back-end platforms with several servers
for storage and processing computing. Management of Applications logic is
managed through servers and effective data handling is provided by storage.
The combination of these platforms at the backend offers the processing power,
and capacity to manage and store data behind the cloud.
3. Cloud-Based Delivery and Network
On-demand access to the computer and resources is provided over the Internet,
Intranet, and Intercloud. The Internet comes with global accessibility,
the Intranet helps in internal communications of the services within the
organization and the Intercloud enables interoperability across various cloud
services. This dynamic network connectivity ensures an essential component of
cloud computing architecture on guaranteeing easy access and data transfer.
Characteristics of Cloud Computing
All cloud services share five fundamental characteristics that define them:
1. On-Demand Self-Service: Users can provision computing resources like
servers and storage automatically, without requiring human intervention
from the service provider.
2. Broad Network Access: Capabilities are available over the network and
can be accessed through standard mechanisms by any device, such as
laptops, tablets, and mobile phones.
3. Resource Pooling: The provider's computing resources are pooled to
serve multiple customers using a multi-tenant model. Resources are
dynamically assigned and reassigned according to demand.
4. Rapid Elasticity (Scalability): Resources can be scaled up or down
quickly and, in some cases, automatically, to meet demand. This ensures
you have enough power during traffic spikes and aren't paying for idle
resources during quiet periods.
5. Measured Service (Pay-as-you-go Model): Cloud systems
automatically control and optimize resource use. Usage is monitored,
controlled, and reported, providing transparency for both the provider and
the consumer. You only pay for what you use.
Types of Cloud Computing Services
1. Infrastructure as a Service ( IaaS )
Infrastructure as a Service (IaaS) is a type of cloud computing that gives people
access to IT tools like virtual computers, storage, and networks through the
internet. You don’t need to buy or manage physical hardware. Instead, you pay
only for what you use.
Benefits of using IaaS
Flexibility and Control: IaaS comes up with providing virtualized
computing resources such as VMs, Storage, and networks facilitating users
with control over the Operating system and applications.
Reducing Expenses of Hardware: IaaS provides business cost savings
with the elimination of physical infrastructure investments making it cost-
effective.
Scalability of Resources: The cloud provides in scaling of hardware
resources up or down as per demand facilitating optimal performance with
cost efficiency.
2. Platform as a Service ( PaaS )
Platform as a Service (PaaS) is a cloud computing model where a third-party
provider offers the software and hardware tools needed to develop, test, and run
applications. This allows users to focus on building their applications without
worrying about managing servers or infrastructure.
For example, AWS Elastic Beanstalk is a PaaS offered by Amazon Web Services
that helps developers quickly deploy and manage applications while AWS takes
care of the needed resources like servers, load balancing, and scaling.
Benefits of using PaaS
Simplifying the Development: Platform as a Service offers application
development by keeping the underlying Infrastructure as an Abstraction. It
helps the developers to completely focus on application logic ( Code ) and
background operations are completely managed by the AWS platform.
Enhancing Efficiency and Productivity: PaaS lowers the Management
of Infrastructure complexity, speeding up the Execution time and bringing
the updates quickly to market by streamlining the development process.
Automation of Scaling: Management of resource scaling, guaranteeing
the program's workload efficiency is ensured by PaaS.
3. Software as a Service (SaaS)
Software as a Service (SaaS) is a way of using software over the internet instead
of installing it on your computer. The software is hosted by a company, and you
can use it just by logging in through a web browser. You don’t need to worry
about updates, maintenance, or storage the provider takes care of all that.
A common example is Google Docs. You can write and share documents online
without downloading any software.
Benefits of using SaaS
Collaboration And Accessibility: Software as a Service (SaaS) helps
users to easily access applications without having the requirement of local
installations. It is fully managed by the AWS Software working as a service
over the internet encouraging effortless cooperation and ease of access.
Automation of Updates: SaaS providers manage the handling of
software maintenance with automatic latest updates ensuring users gain
experience with the latest features and security patches.
Cost Efficiency: SaaS acts as a cost-effective solution by reducing the
overhead of IT support by eliminating the need for individual software
licenses.
4. Function as a Service (FaaS)
Function as a service (FaaS) is a cloud-computing service that allows customers
to run code in response to events, without managing the complex infrastructure.
You just write the code, upload it and the cloud provider runs it only when it's
needed. You pay only for the time your code runs.
For example, with AWS Lambda, you can write a function that resizes images
whenever someone uploads a photo to your website. You don’t need to keep a
server running all the time AWS runs your function only when a photo is
uploaded.
Benefits of using SaaS
Event-Driven Execution: FaaS helps in the maintenance of servers and
infrastructure making users worry about it. FaaS facilitates the developers
to run code as a response to the events.
Cost Efficiency: FaaS facilitates cost efficiency by coming up with the
principle "Pay as per you Run" for the computing resources used.
Scalability and Agility: Serverless Architectures scale effortlessly in
handing the workloads promoting agility in development and deployment.
Cloud Deployment Models
1. Private Cloud: The cloud infrastructure is operated solely for a single
organization. It can be managed internally or by a third party and can exist
on-premise or off-premise. It offers the highest level of security and
control.
2. Public Cloud: The cloud infrastructure is owned and operated by a third-
party cloud service provider (like AWS or Google) and is made available to
the general public over the internet. It offers massive scalability and a
pay-as-you-go model.
3. Hybrid Cloud: This model combines a private cloud with one or more
public clouds, allowing data and applications to be shared between them.
This offers flexibility, allowing companies to keep sensitive data on a
private cloud while leveraging the scalable resources of a public cloud for
other applications.
4. Multi-Cloud: A strategy where an organization uses a combination of
clouds from two or more different public cloud providers. This helps avoid
vendor lock-in and allows a company to use the "best-of-breed" service
from each provider.
Characteristics of Cloud Computing:
1. On-demand self-services: The Cloud computing services does not
require any human administrators, user themselves are able to
provision, monitor and manage computing resources as needed.
2. Broad network access: The Computing services are generally
provided over standard networks and heterogeneous devices.
3. Rapid elasticity: The Computing services should have IT resources
that are able to scale out and in quickly and on a need basis.
Whenever the user require services it is provided to him and it is
scale out as soon as its requirement gets over.
4. Resource pooling: The IT resource (e.g., networks, servers,
storage, applications, and services) present are shared across
multiple applications and occupant in an uncommitted manner.
Multiple clients are provided service from a same physical resource.
5. Measured service: The resource utilization is tracked for each
application and occupant, it will provide both the user and the
resource provider with an account of what has been used. This is
done for various reasons like monitoring billing and effective use of
resource.
6. Multi-tenancy: Cloud computing providers can support multiple
tenants (users or organizations) on a single set of shared resources.
7. Virtualization: Cloud computing providers use virtualization
technology to abstract underlying hardware resources and present
them as logical resources to users.
8. Resilient computing: Cloud computing services are typically
designed with redundancy and fault tolerance in mind, which
ensures high availability and reliability.
9. Flexible pricing models: Cloud providers offer a variety of pricing
models, including pay-per-use, subscription-based, and spot pricing,
allowing users to choose the option that best suits their needs.
10. Security: Cloud providers invest heavily in security measures
to protect their users' data and ensure the privacy of sensitive
information.
11. Automation: Cloud computing services are often highly
automated, allowing users to deploy and manage resources with
minimal manual intervention.
12. Sustainability: Cloud providers are increasingly focused on
sustainable practices, such as energy-efficient data centers and the
use of renewable energy sources, to reduce their environmental
impact.
Cloud Deployment Models:
Cloud computing has become an essential part of modern business,
offering unparalleled flexibility, scalability, and cost-effective
solutions. However, to harness its full potential, selecting the most
appropriate cloud deployment model is critical. Whether you are a
small startup or a massive enterprise, your choice will directly
dictate your organization's security, scalability, and operational
efficiency
A cloud deployment model defines where your cloud infrastructure
lives, who owns and manages it, and how it is accessed. It
establishes the boundaries of your cloud environment, dictating
what you can customize, how resources are shared among users,
and the overarching purpose of the setup.
Understanding these models is the crucial first step for any business
migrating to the cloud, as each offers distinct trade-offs in
governance, cost, security, and management.
Public Cloud
The public cloud delivers infrastructure and services over the internet
to the general public or broad industry groups. The infrastructure is
entirely owned, managed, and maintained by a third-party cloud
service provider (e.g., Google Cloud, AWS, Microsoft Azure). Resources
are shared among multiple tenants.
Advantages of the Public Cloud Model
Minimal Investment: Operates on a pay-per-use model with no
substantial upfront capital expenditure.
Zero Setup & Maintenance: The provider subsidizes and manages all
physical hardware setup and ongoing maintenance.
Dynamic Scalability: On-demand resources are nearly limitless,
scaling instantly to fulfill business needs.
Disadvantages of the Public Cloud Model
Lower Security: Because resources are shared publicly, meeting
strict, high-level compliance and security standards can be
challenging.
Low Customization: The standardized environment offers little room
for bespoke hardware or infrastructure customizations.
Private Cloud
The private cloud deployment model is the exact opposite of the
public cloud deployment model. It's a one-on-one environment for a
single user (customer). There is no need to share your hardware
with anyone else. The distinction between private and public
clouds is in how you handle all of the hardware.
It is also called the "internal cloud" & it refers to the ability to access
systems and services within a given border or organization. The
cloud platform is implemented in a cloud-based secure environment
that is protected by powerful firewalls and under the supervision of
an organization's IT department. The private cloud gives greater
flexibility of control over cloud resources.
Advantages of the Private Cloud Model
Total Control: You have complete command over IT operations,
service integration, and user behavior.
Elite Security and Privacy: Ideal for sensitive corporate data,
allowing for strict access controls and physical isolation.
Legacy System Support: Highly customizable, making it capable of
supporting legacy applications that cannot migrate to a public
environment.
Disadvantages of the Private Cloud Model
High Cost: Personalized facilities, dedicated hardware, and internal
IT management make this the most expensive option.
Limited Scalability: Scaling is restricted by the physical capacity of
the dedicated hardware purchased.
Hybrid Cloud
By bridging the public and private worlds with a layer of proprietary
software, hybrid cloud computing gives the best of both worlds. With
a hybrid solution, you may host the app in a safe environment while
taking advantage of the public cloud's cost savings.
Organizations can move data and applications between different
clouds using a combination of two or more cloud deployment
methods, depending on their needs.
Advantages of the Hybrid Cloud Model
Ultimate Flexibility: Businesses can keep sensitive data secure on
the private cloud while running heavy, non-sensitive applications on
the public cloud.
Cost Efficiency: You only pay for additional public cloud capacity
when you experience traffic spikes that your private cloud cannot
handle (known as "cloud bursting").
Targeted Security: Data theft risks are reduced by keeping the most
critical assets completely isolated.
Disadvantages of the Hybrid Cloud Model
Difficult to manage: Hybrid clouds are difficult to manage as it is a
combination of both public and private cloud. So, it is complex.
Slow data transmission: Data transmission in the hybrid cloud takes
place through the public cloud so latency occurs.
Community Cloud
A community cloud is a collaborative infrastructure shared by a specific
group of organizations from a similar industry that have shared
concerns (e.g., compliance, security requirements, or mission goals). It
can be managed internally by the organizations or by a third party.
Advantages of the Community Cloud Model
Cost Effective: It is cost-effective because the cloud is shared by
multiple organizations or communities.
Security: Community cloud provides better security.
Shared resources: It allows you to share resources, infrastructure,
etc. with multiple organizations.
Collaboration and data sharing: It is suitable for both collaboration
and data sharing.
Disadvantages of the Community Cloud Model
Limited Scalability: Community cloud is relatively less scalable as
many organizations share the same resources according to their
collaborative interests.
Rigid in customization: As the data and resources are shared among
different organizations according to their mutual interests if an
organization wants some changes according to their needs they
cannot do so because it will have an impact on other organizations.
Multi-Cloud
While a hybrid cloud mixes private and public models, a multi-cloud
strategy specifically involves using multiple public cloud providers at
the same time (e.g., using AWS for storage, Google Cloud for machine
learning, and Azure for active directory).
Advantages of the Multi-Cloud Model
Best-of-Breed Features: You can mix and match the absolute best
tools from different providers to suit specific workloads.
Reduced Latency: You can route user traffic to the cloud provider
that has a data center closest to that specific user.
High Availability: It is incredibly rare for two different major cloud
providers to experience outages simultaneously, creating
exceptional disaster recovery.
Disadvantages of the Multi-Cloud Model
Complex: The combination of many clouds makes the system
complex and bottlenecks may occur.
Security issue: Due to the complex structure, there may be
loopholes to which a hacker can take advantage hence, makes the
data insecure
Cloud Based Services:
Cloud-based services are computing resources provided over the internet,
allowing users to run applications, store data, and access IT services
without using local hardware. It is a model that delivers computing
resources such as servers, storage, and software over the internet on
demand, eliminating the need for local infrastructure.
Users can get and use resources whenever they need, without
waiting for anyone.
Services are accessible over the internet from multiple devices like
laptops, smartphones, and tablets.
Computing resources are shared across multiple users, with
resources dynamically allocated based on demand.
Resources can be quickly scaled up or down to meet workload
demands.
Users are billed only for the resources they use, reducing
unnecessary costs.
Types of Cloud Computing
Cloud computing services are classified into five main types, collectively
known as the cloud computing stack:
1. Software as a service (SaaS)
2. Platform as a service (PaaS)
3. Infrastructure as a service (IaaS)
4. Anything/Everything as a Service (XaaS)
5. Function as a Service (FaaS)
1. Software as a Service(SaaS)
Software as a Service (SaaS) is a cloud computing model in which
software applications are delivered over the internet and accessed
through a web browser, eliminating the need for local installation,
maintenance, or updates. The service provider manages the application,
infrastructure, and security, while users pay on a usage or subscription
basis.
Accessible through a web browser
Pay-as-you-go or subscription-based pricing
Can be accessed anytime, anywhere
Also known as web-based or on-demand software
Example: Google Docs is a SaaS application where users can create and
edit documents online without installation, while Google handles storage
and updates.
Advantages
Cost-effective: Pay only for the services used.
Quick deployment: No installation or configuration required.
High accessibility: Data can be accessed from any device with
internet.
Automatic updates: Updates are handled by the provider.
Scalable: Resources and features can be adjusted on demand.
Disadvantages
Limited customization: Less flexibility compared to on-premises
software.
Internet dependency: Requires a stable internet connection.
Security risks: Potential risk of data breaches.
Reduced data control: Data is managed by the service provider.
Popular SaaS Providers: Salesforce, Microsoft Office 365, Google
Workspace, Dropbox, BigCommerce, Zoho, Slack.
2. Platform as a Service
Platform as a Service (PaaS) is a cloud computing model that provides
developers with a ready-to-use platform for building, testing, deploying,
and managing applications without worrying about underlying hardware,
operating systems, or infrastructure. The service provider manages
servers, storage, and runtime environments, allowing developers to focus
only on application logic.
Accessed through a web browser
Backend infrastructure is managed by the provider
Developers control the application and its behavior
Example: PaaS is like renting a fully equipped venue for an event—basic
setup is already done, so you can concentrate on organizing the event.
Similarly, developers focus on coding while the provider handles backend
infrastructure.
Advantages
Simple and convenient: No infrastructure management required.
Cost-effective: Pay only for resources used.
Full lifecycle support: Helps in building, testing, deploying, and
updating applications.
Higher efficiency: Reduces development complexity and time.
Disadvantages
Limited infrastructure control: Restricted customization options.
Provider dependency: Availability and reliability depend on the
vendor.
Limited flexibility: Not suitable for all application types.
Popular PaaS Providers: AWS Elastic Beanstalk, Google App Engine,
Azure App Service, Salesforce Platform ([Link]), CloudBees, IBM Cloud
3. Infrastructure as a Service
Infrastructure as a Service (IaaS) is a cloud computing model in which
virtualized computing resources such as servers, storage, and networking
are provided over the internet on a rental basis. The cloud provider
manages the physical infrastructure, while users control the operating
system, applications, and data.
Provides virtual machines, storage, and networking
Pay-as-you-use pricing model
Users have full control over OS and applications
Example: IaaS is like renting a server instead of buying one. You use the
provider’s hardware and network, but you decide what software or
website runs on it.
Advantages
Cost-effective: No need to buy physical hardware.
Flexible hosting: Suitable for websites and applications.
Reduced maintenance: Provider manages data centers and
hardware.
Scalable: Resources can be increased or decreased as needed.
Disadvantages
Security responsibility: Users must secure their own data and
apps.
Limited infrastructure control: Physical infrastructure is
provider-managed.
Regional limitations: Availability may vary due to legal or policy
issues.
Popular IaaS Providers: Amazon Web Services (AWS), Microsoft Azure,
Google Cloud, IBM Cloud, Rackspace, VMware.
4. Anything as a Service
Anything or Everything as a Service (XaaS) is a broad cloud computing
model in which a wide range of IT services—including infrastructure,
platforms, software, storage, security, and networking—are delivered over
the internet on a pay-as-you-use basis. It represents the combination and
extension of SaaS, PaaS, IaaS, and other cloud services.
Example: A company uses AWS for virtual servers (IaaS), Google
Workspace for email and documents (SaaS), and Firebase for backend
services (PaaS). Using all these services together is an example of XaaS.
Advantages
Scalable: Services can be easily scaled as needed.
Flexible: Offers a wide variety of on-demand services.
Cost-effective: Users pay only for the services they consume.
Disadvantages
Provider dependency: Service availability depends on the cloud
provider.
Limited flexibility: Some workloads may not be supported.
Integration issues: Compatibility with existing systems can be
challenging.
5. Function as a Service
Function as a Service (FaaS) is a cloud computing model that allows
developers to run small pieces of code (functions) in response to events
without managing servers or infrastructure. The cloud provider
automatically handles resource allocation, scaling, and execution, and
users pay only for the actual execution time.
Example: When a user uploads an image to a website, a function
automatically resizes the image and stores it. This function runs only when
triggered and stops after execution—this is FaaS.
Advantages
No server management: Fully managed by the provider.
Cost-efficient: Pay only when the function runs.
Automatic scaling: Scales instantly based on demand.
Fast deployment: Ideal for event-driven applications.
Disadvantages
Cold start latency: Delay may occur when a function runs after
being idle.
Limited execution time: Not suitable for long-running tasks.
Vendor dependency: Strong reliance on the cloud provider.
Examples of Cloud-Based Applications
Communication Applications
WhatsApp
Zoom Video Communications Zoom
Storage Applications
Google Drive
Dropbox Dropbox
Productivity Applications
Google Docs
Microsoft Teams
Entertainment Applications
Netflix
Spotify
Virtualization :
Virtualization is the fundamental technology that powers Cloud
Computing. It allows you to create multiple simulated environments
(Virtual Machines or VMs) from a single physical hardware system.
Before virtualization, a physical server could only run one Operating
System (OS) and often one task.
The Core Architecture
At the heart of virtualization is a piece of software called the Hypervisor.
1. Physical Hardware (Host): The actual server (CPU, RAM, Disk).
2. Hypervisor: A lightweight software layer that sits between the
hardware and the virtual machines. It allocates resources (e.g.,
"Give VM1 2GB of RAM") and manages the VMs.
3. Virtual Machine (Guest): A software-based computer that runs
like a physical one. It has its own OS, libraries, and applications.
The Two Types of Hypervisors
Understanding the difference between Type 1 and Type 2 hypervisors is
critical for system architects.
Type 1: Bare-Metal Hypervisor
How it works: Installed directly on the physical hardware. There is
no host Operating System.
Performance: High. Direct access to hardware resources.
Use Case: Enterprise Data Centers, Cloud Providers (AWS EC2,
VMWare ESXi, Microsoft Hyper-V).
Type 2: Hosted Hypervisor
How it works: Installed as an application on top of an existing OS
(like Windows or macOS).
Performance: Lower. Requests must pass through the Host OS
first.
Use Case: Personal use, testing labs (Oracle VirtualBox, VMWare
Workstation).
Types of Virtualization
1. Application Virtualization
2. Network Virtualization
3. Desktop Virtualization
4. Storage Virtualization
5. Server Virtualization
6. Data virtualization
1. Application Virtualization
Concept: Encapsulating an application so it runs independently of
the underlying OS. The user accesses the app remotely without
installing it.
Example: Using Microsoft App-V or Citrix to run Microsoft Excel on
an iPad. The app runs on a server, but the user sees it on their
tablet.
2. Network Virtualization
Decoupling the network functions (routing, switching, firewalls) from
the physical cables and switches. It creates a "Software-Defined
Network" (SDN).
Example: AWS VPC (Virtual Private Cloud). You create subnets and
route tables in software, without touching a physical router.
3. Desktop Virtualization
Concept: Hosting a user's desktop environment on a centralized
server. The user connects via a "thin client" (a basic PC).
Example: Amazon WorkSpaces. An employee logs in from a
Chromebook, but sees a full high-power Windows 11 desktop
running in the cloud
4. Storage Virtualization
Concept: Pooling physical storage from multiple network storage
devices into what appears to be a single storage device managed
from a central console.
Example: SAN (Storage Area Network) or Amazon S3. You see a
single "bucket" or drive, but the data is physically spread across
hundreds of hard drives.
5. Server Virtualization
Concept: Partitioning one physical server into multiple virtual
servers.
Example: Running a Web Server (Linux), a Database (Windows),
and a Mail Server (Linux) all on one physical machine using VMware
vSphere
6. Data Virtualization
Concept: An abstract layer that allows you to access data from
multiple different sources (databases, files, cloud) as if it were in a
single place, without moving the data.
Example: Denodo or Oracle Data Service. A dashboard queries
"Sales Data," and the virtualization layer pulls it from both an old
SQL database and a new Cloud Data Lake instantly.
Load balancing in Cloud Computing
Cloud load balancing is the method of distributing workloads and
computing properties across multiple resources (such as servers,
virtual machines, or containers). As internet traffic continues to grow
rapidly (historically doubling annually), managing workload
demands is critical. Load balancing ensures no single resource is
overburdened, improving overall performance, availability, and
scalability.
The Server Overload Problem and Solutions
1. Single-Server Solution (Vertical Scaling/Upgrading): Upgrading
the existing server to a higher-performance machine.
Drawback: Expensive, arduous, and the new server may also
eventually overload.
2. Multiple-Server Solution (Horizontal
Scaling/Clustering): Building a scalable service system across a cluster
of servers and distributing the traffic.
Advantage: Highly cost-effective and much more scalable.
Levels of Implementation
Load balancing can be implemented at various layers of the technology
stack to handle specific types of traffic:
Network Load Balancing (Layer 4): Balances network traffic
across multiple servers or instances. It ensures incoming traffic is
distributed evenly at the transport level.
Application Load Balancing (Layer 7): Balances the workload
across multiple instances of an application. It inspects the content of
the traffic to ensure each instance receives an equal and
appropriate share of requests.
Database Load Balancing: Distributes incoming queries evenly
across available database servers to prevent database bottlenecks.
Types Of Load Balancers
Type Description Key Characteristic
Runs on standard hardware
Software- Flexible and highly
(PCs, desktops) and standard
Based configurable.
operating systems.
Dedicated physical boxes with
Faster network traffic
Hardware Application Specific
forwarding; excellent for
-Based Integrated Circuits (ASICs)
transport-level balancing.
adapted for routing.
Major Load Balancing Techniques & Examples
Direct Routing Requesting Dispatching: A real server and the
load balancer share a virtual IP address. The load balancer accepts
request packets via an interface configured with this virtual IP and
routes them directly to the selected back-end servers.
Dispatcher-Based Cluster: A dispatcher uses smart load
balancing—evaluating server availability, current workload,
capability, and user-defined criteria—to decide where to send TCP/IP
requests. To the consumer, the cluster acts as a single virtual
service on one IP address.
Linux Virtual Server (LVS): An open-source, enhanced load
balancing solution used to build highly scalable and available
network services (HTTP, POP3, FTP, VoIP). It acts as the primary
entry point for a server cluster and executes IPVS for Layer-4
switching in the Linux kernel.
Advantages vs. Disadvantages
Advantages Disadvantages
Improved
Complexity: Requires careful
Performance: Reduces the load
planning and configuration,
on individual resources by
especially in large-scale systems.
distributing work.
High Availability: Eliminates Cost: Specialized hardware or
single points of failure, providing advanced software solutions can
fault tolerance. increase overall IT expenses.
Potential Bottleneck: The load
Scalability: Easily handles traffic
balancer itself can become a
spikes by scaling resources up or
single point of failure if
down dynamically.
misconfigured.
Security Risks: Improper
Resource Efficiency: Optimizes
implementation can expose
hardware usage, reducing wastage
sensitive data or allow
and cutting long-term costs.
unauthorized access.
Scalability and Elasticity in Cloud Computing
Cloud Elasticity
Cloud elasticity refers to the ability of a cloud environment to dynamically
and automatically expand or compress infrastructural resources based on
sudden fluctuations in demand.
Key Characteristics:
Dynamic Adjustment: Automatically provisions extra compute,
storage, or network resources (CPU, Memory, Bandwidth) when
client access expands, and reduces them when traffic drops.
Cost Efficiency: Maximizes resource utilization and minimizes
infrastructure costs. It is most commonly associated with public
cloud pay-per-use models where you only pay for the duration
resources are consumed.
Horizontal Scaling: Typically relies on scale-out arrangements
(adding or removing instances dynamically) rather than upgrading
existing hardware.
Best For: Unpredictable workloads or scenarios where resource
requirements fluctuate up and down suddenly for specific time
intervals. It is not practical for environments requiring a persistent
infrastructure for a constant heavy workload.
Mission-Critical Performance: Ensures that applications maintain
performance requirements during sudden spikes, preventing
potential business losses due to downtime or latency.
Cloud Scalability
Cloud scalability is used to handle steady, growing workloads where
consistent performance is required over time. It fulfills the static needs of
an organization as it expands.
Key Characteristics:
Persistent Deployment: Designed for handling steady, long-term
growth rather than sudden, temporary spikes.
Capacity Planning: Focuses on upgrading or adding resources to
work efficiently with growing software or applications.
Pay-Per-Use: Like elasticity, scalability is often billed on a pay-per-
use basis, but the baseline of usage consistently increases over time
rather than fluctuating up and down.
Best For: Workloads that remain high and increase statically over
time.
Types of Scalability:
1. Vertical Scalability (Scale-up) -
In this type of scalability, we increase the power of existing resources in
the working environment in an upward direction.
2. Horizontal Scalability: In this kind of scaling, the resources are
added in a horizontal row.
3. Diagonal Scalability -
It is a mixture of both Horizontal and Vertical scalability where the
resources are added both vertically and horizontally.
monitoring
Cloud monitoring in cloud computing is the continuous process of
analyzing and managing the performance, availability, and security of
cloud-based infrastructure. It uses automated tools to collect real-time
data, optimize resource usage, and proactively alert teams to system
anomalies before they affect users. [1, 2, 3]
Core Components Monitored
Infrastructure: Virtual machines (VMs), storage volumes, and
server health.
Applications: End-user experience, API health, and application
response times.
Network: Traffic flow, bandwidth, and latency.
Security: Unauthorized access attempts, compliance violations,
and anomalous user activity.
Software Defined Networking (SDN)
Software Defined Networking (SDN) is a network management approach
that utilizes software-based controllers to dynamically and centrally
control network behavior, enhancing flexibility, performance, and
monitoring capabilities.
It separates the control plane (decision-making) from the data plane
(packet forwarding).
Network intelligence is centralized in an SDN controller instead of
being distributed across devices.
Network devices like switches become simple forwarding elements
that follow controller instructions.
It enables programmability and automation, making networks easier
to manage
Need for SDN
Traditional networks rely on individually configured devices, making
management complex and inflexible. SDN is needed to simplify network
control and efficiently handle modern, dynamic network requirements.
Centralized Control: SDN centralizes network intelligence in a
controller, enabling consistent policy enforcement and easier
network management.
Programmability: Network behavior can be programmed using
software, allowing automated configuration, faster deployment, and
reduced manual errors.
Flexibility and Agility: SDN enables quick adaptation to changing
traffic patterns and application demands without reconfiguring
individual devices.
SDN Architecture
SDN architecture is organized into three logical layers, each with a specific
role. This layered design simplifies network management and enables
centralized control.
1. Application Layer
Contains network applications such as traffic management, security,
and monitoring tools.
Allows administrators to define network policies and requirements.
Communicates with the SDN controller through northbound APIs.
2. Control Layer
Hosts the SDN controller, which acts as the brain of the network.
Translates application requirements into forwarding rules.
Maintains a global view of the network and makes routing decisions.
3. Infrastructure Layer (Data Plane)
Consists of physical or virtual switches and routers.
Forwards packets based on rules received from the controller.
Does not make independent decisions, ensuring simple and efficient
forwarding.
MapReduce Architecture:
MapReduce Architecture is the backbone of Hadoop’s processing, offering
a framework that splits jobs into smaller tasks, executes them in parallel
across a cluster, and merges results. Its design ensures parallelism, data
locality, fault tolerance, and scalability, making it ideal for applications like
log analysis, indexing, machine learning, and recommendation systems.
Core Components of MapReduce Architecture
The MapReduce Architecture follows a master–slave model, where the Job
Tracker (master) coordinates tasks and Task Trackers (slaves) execute
them on cluster nodes. Below are its main components:
1. Client
The Client is the entry point into MapReduce. It submits the job for
execution by packaging the Mapper and Reducer logic into a JAR file and
specifying the input and output paths. After submission, the Client’s role
ends.
2. Job
A Job represents the complete processing request from the client.
Internally, it is divided into job parts (tasks).
Each job part is assigned to either the Map or Reduce phase.
3. Hadoop MapReduce Master
The Master Node coordinates job execution. It:
Accepts jobs from the Client.
Splits them into job parts.
Assigns these parts to the Map and Reduce tasks.
Tracks execution progress and reassigns failed tasks.
4. Job Parts (Tasks)
Every job is divided into smaller units called job parts.
Map job parts: Process input data splits into intermediate key–value
pairs.
Reduce job parts: Aggregate intermediate results into final outputs.
5. Map Phase
Input data is split and given to Map tasks.
Each Map task processes its local split and produces intermediate
results in the form of key–value pairs.
6. Shuffle & Sort (Between Map and Reduce)
Intermediate key–value pairs from the Map phase are grouped by
key.
Sorting ensures ordered keys before passing them to the Reducers.
7. Reduce Phase
Reducers take grouped keys and values from Shuffle & Sort.
They aggregate them to produce the final output data, which is
written back to HDFS.
Phases in MapReduce Architecture
The MapReduce model processes large datasets in two main phases—Map
and Reduce-with an intermediate Shuffle & Sort stage that organizes data
between them.
Map Phase
The input dataset is divided into splits, each processed by a Map Task on
the node storing the data (ensuring data locality). A RecordReader
converts raw input into (key, value) pairs, which the Mapper transforms
into intermediate results (e.g., "Hello Hadoop" → (Hello, 1), (Hadoop, 1)).
The Map Phase generates but does not aggregate data.
Shuffle & Sort Phase
After mapping, the intermediate outputs are reorganized so they can be
processed efficiently by reducers. Shuffling groups identical keys, e.g.,
(Hadoop, 1), (Hadoop, 1), (Hadoop, 1) becomes (Hadoop, [1,1,1]). Sorting
then arranges the keys in order. This stage ensures balanced distribution
of work and is essential for linking the Map and Reduce phases.
Reduce Phase
Finally, reducers take the grouped keys and their associated values from
the Shuffle & Sort stage. The reduce() function aggregates or summarizes
them to produce the final output. For example, (Hadoop, [1,1,1]) becomes
(Hadoop, 3). The consolidated results are written back into HDFS at the
client-specified output location.
Service level agreements in Cloud computing
A Service Level Agreement (SLA) is the bond for performance
negotiated between the cloud services provider and the client. Earlier, in
cloud computing all Service Level Agreements were negotiated between a
client and the service consumer. Nowadays, with the initiation of large
utility-like cloud computing providers, most Service Level Agreements are
standardized until a client becomes a large consumer of cloud services.
Service level agreements are also defined at different levels which are
mentioned below:
Customer-based SLA
Service-based SLA
Multilevel SLA
SLA Lifecycle
Steps in SLA Lifecycle
1. Discover service provider: This step involves identifying a service
provider that can meet the needs of the organization and has the
capability to provide the required service. This can be done through
research, requesting proposals, or reaching out to vendors.
2. Define SLA: In this step, the service level requirements are defined
and agreed upon between the service provider and the organization.
This includes defining the service level objectives, metrics, and
targets that will be used to measure the performance of the service
provider.
3. Establish Agreement: After the service level requirements have
been defined, an agreement is established between the organization
and the service provider outlining the terms and conditions of the
service. This agreement should include the SLA, any penalties for
non-compliance, and the process for monitoring and reporting on
the service level objectives.
4. Monitor SLA violation: This step involves regularly monitoring the
service level objectives to ensure that the service provider is
meeting their commitments. If any violations are identified, they
should be reported and addressed in a timely manner.
5. Terminate SLA: If the service provider is unable to meet the
service level objectives, or if the organization is not satisfied with
the service provided, the SLA can be terminated. This can be done
through mutual agreement or through the enforcement of penalties
for non-compliance.
6. Enforce penalties for SLA Violation: If the service provider is
found to be in violation of the SLA, penalties can be imposed as
outlined in the agreement. These penalties can include financial
penalties, reduced service level objectives, or termination of the
agreement.
Advantages of SLA
1. Improved communication: A better framework for communication
between the service provider and the client is established through
SLAs, which explicitly outline the degree of service that a customer
may anticipate. This can make sure that everyone is talking about
the same things when it comes to service expectations.
2. Increased accountability: SLAs give customers a way to hold
service providers accountable if their services fall short of the
agreed-upon standard. They also hold service providers responsible
for delivering a specific level of service.
3. Better alignment with business goals: SLAs make sure that the
service being given is in line with the goals of the client by laying
down the performance goals and service level requirements that the
service provider must satisfy.
4. Reduced downtime: SLAs can help to limit the effects of service
disruptions by creating explicit protocols for issue management and
resolution.
5. Better cost management: By specifying the level of service that
the customer can anticipate and providing a way to track and
evaluate performance, SLAs can help to limit costs. Making sure the
consumer is getting the best value for their money can be made
easier by doing this.
Disadvantages of SLA
1. Complexity: SLAs can be complex to create and maintain, and may
require significant resources to implement and enforce.
2. Rigidity: SLAs can be rigid and may not be flexible enough to
accommodate changing business needs or service requirements.
3. Limited service options: SLAs can limit the service options
available to the customer, as the service provider may only be able
to offer the specific services outlined in the agreement.
4. Misaligned incentives: SLAs may misalign incentives between the
service provider and the customer, as the provider may focus on
meeting the agreed-upon service levels rather than on providing the
best service possible.
5. Limited liability: SLAs are not legal binding contracts and often
limited the liability of the service provider in case of service failure.