0% found this document useful (0 votes)
42 views11 pages

Load Balancing

Load balancing distributes workloads across multiple servers to enhance resource efficiency and minimize response times, with various algorithms like Round Robin and Least Connections. It also addresses session data management through methods such as Sticky Sessions and Session Databases. Additionally, the document covers scalability, elasticity in cloud computing, and the cloud application deployment life cycle, along with replication methods and network virtualization technologies like NFV and SDN.

Uploaded by

KUMAR VIJAY
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views11 pages

Load Balancing

Load balancing distributes workloads across multiple servers to enhance resource efficiency and minimize response times, with various algorithms like Round Robin and Least Connections. It also addresses session data management through methods such as Sticky Sessions and Session Databases. Additionally, the document covers scalability, elasticity in cloud computing, and the cloud application deployment life cycle, along with replication methods and network virtualization technologies like NFV and SDN.

Uploaded by

KUMAR VIJAY
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 11

Load Balancing:

Load balancing Distributes the workload across multiple servers to ensure efficient use of resources,
minimize response time, and maximize throughput. It helps keep applications running smoothly, even
during high traffic or demand. Since multiple resources under a load balancer are used to serve the
user request, in case of one or more resources failure. The load balancer can easily reroute the user
traffic to healthy resources. The end user accessing the cloud based application, the load balancer
make as to feel working under a single server with high computing capacity.
Types of Load Balancing Algorithms:
Round Robin
In round robin load balancing, the servers are selected one by one to serve the incoming requests in a
non-hierarchical circular fashion with no priority assigned to a specific server.
Weighted Round Robin
In weighted round robin load balancing, severs are assigned some weights. The incoming requests are
proportionally routed using a static or dynamic ratio of respective weights.
Low Latency
In low latency load balancing the load balancer monitors the latency of each server. Each incoming
request is routed to the server which has the lowest latency (respond faster).
Least Connections
In least connections load balancing, the incoming requests are routed to the server with the least
number of connections.
Priority
In priority load balancing, each server is assigned a priority. The incoming traffic is routed to the
highest priority server as long as the server is available. When the highest priority server fails, the
incoming traffic is routed to a server with a lower priority.
Overflow
Overflow load balancing is similar to priority load balancing. When the incoming requests to highest
priority server overflow, the requests are routed to a lower priority server.
The below figure shows (a) Round robin load balancing, (b) Weighted round robin load balancing, (c)
Low latency load balancing, (d) Least connections load balancing, (e) Priority load balancing, (f)
Overload load balancing.
When you're using an app (like shopping, banking, or chatting), your session includes things
like login info and items in your cart. This is called session data.

Now, if the app uses load balancing (sending your requests to different servers), each new
request might go to a different server. But your session data needs to stay the same, no
matter which server handles your request. Keeping the user’s session working correctly when
their requests go to different servers is challenging task. Three common solutions to this problem
(called persistence approaches) are:

1. Sticky Sessions:
o Keep sending the user’s requests to the same server during their session.
o Simple, but can cause problems if that server goes down.
2. Session Database:
o Store session data in a central database that all servers can access.
o This way, any server can serve the user, because it can read the session info.
3. Session Replication:
o Each server copies session data to other servers, so every server has the
latest info.
o Useful when you want high availability and no single point of failure.
4. URL re-writing
In this approach, a URL re-write engine stores the session information by modifying the
URLs on the client side. Though this approach avoids overhead on the load balancer, a draw-
back is that the amount of session information that can be stored is limited. For applications
that require larger amounts of session information, this approach does not work.

Implementation of Load balancer


The load balancer can be implemented as hardware or software. Software-based load
balancers run on standard operating systems and like other cloud resources, load balancers are
also virtualized. Hardware-based load balancers implement load balancing algorithms in
Application Specific Integrated Circuits (ASICs).

1.Scalability and Elasticity

What is Scalability?

Scalability in cloud computing refers to the ability of a system to increase or decrease its
computing resources (like CPU, memory, or storage) based on demand without affecting
performance. It can be done manually or automatically.

Types of Scalability:

1. Vertical Scalability (Scaling Up/Down):


o Increasing or decreasing the capacity of a single server (e.g., adding more
RAM or CPU).
o Example: Upgrading your server from 8 GB RAM to 16 GB.
2. Horizontal Scalability (Scaling Out/In):
o Adding more servers or instances to distribute the workload.
o Example: Adding more servers when website traffic increases.

Example:

If an e-commerce website experiences growth in traffic, scalability allows it to expand


resources to meet that demand without crashing.
What is Elasticity?

Elasticity refers to the automatic allocation and deallocation of cloud resources as per
real-time demand. It helps the system quickly adapt to workload changes.

Example:

During a festival sale, the user traffic on a shopping website increases suddenly. The cloud
platform automatically increases resources to handle the load and reduces them afterward
to save cost. This is elasticity.

2. Cloud Application Deployment Life Cycle


The Cloud Application Deployment Life Cycle consists of all the following stages such as
deployment design, performance evaluation and deployment refinement.
Deployment Design

Deployment design is the initial phase where we plan how an application will be deployed
in the cloud. It sets the foundation for a successful cloud deployment.

It includes the following activities

 Selecting the Cloud Model (IaaS, PaaS, or SaaS).


 Choosing the Cloud Provider: Pick a provider like Amazon Web Services (AWS),
Microsoft Azure, or Google Cloud Platform (GCP).
 Designing the Architecture: Decide whether the app will be monolithic,
microservices-based, or serverless.
 Security and Backup Planning: Plan how data will be protected and backed up.
 Scalability Considerations: Ensure the design allows the system to grow as demand
increases.

Example:

For a large-scale web application, we may choose a microservices architecture on AWS


Cloud using Docker containers with auto-scaling features.

Performance Evaluation

Once the application is deployed in the cloud, the next step is to verify that the application
meets the performance requirement. This step include the monitoring the workload in the
application and measure the workload parameter such as Response Time, Throughput, CPU
Usage and Availability. It also includes testing techniques such as Load testing, Stress
testing, Scalability testing and monitoring tools such as Amazon watch and Azure monitor
etc.

Deployment Refinement

This is the final and continuous improvement phase where we make adjustments based on
the performance analysis to ensure better results. The activities are performed.
 Auto-scaling Setup: Automatically adjust resources based on demand.
 Optimizing Code and Resources: Reduce waste and improve speed.
 Improving Security: Implement firewalls, encryption, and access controls.
 Setting Up Disaster Recovery: Backup plans and systems for failure protection.

3. Replication
Replication in cloud computing refers to the process of copying and maintaining multiple
copies of data or applications across different servers, regions, or cloud environments. This
ensures high availability, fault tolerance, and data backup. The cloud based data
replication provide solution for replication of data in multiple location, automated recovery,
Low recovery point objective (RPO) and low recovery time objective (RTO) with affordable
pay per use/ pay-as-you-go models.

There are three types of replication approaches.

Array based Replication

Array-based replication uses matching storage devices to automatically copy data from
one location to another Remote location. It works at the disk level, so it doesn't matter what
kind of computers or data are being used. This makes it possible to use array-based
replication even with different operating systems. It uses systems like NAS (Network
Attached Storage) or SAN (Storage Area Network) to move the data. One disadvantage is
that it needs similar storage devices at both ends, which makes it more expensive than other
methods.

Network-Based Replication

Network-Based Replication is a method of copying data over a network from one storage
system to another, usually managed by dedicated network devices or appliances.

Unlike array-based replication (which works at the storage hardware level), network-based
replication happens at the network level, often using independent tools or devices that sit
between the servers and the storage.

Host-Based Replication

Host-Based Replication is a type of data replication where the host system (server or
computer) handles the task of copying data from one location to another. It is done using
software installed on the host, instead of relying on storage devices or network appliances.
(a) Array-based replication, (b) Network-based replication, (c) Host-based replication

1. Cloud Monitoring
Cloud service providers offer monitoring tools to track the performance of cloud resources.
These tools collect data from cloud systems and applications, using built-in or custom
metrics. Based on this data, users can set actions like auto-scaling when CPU usage is high.
Monitoring also helps users view statistics and keep their cloud services healthy. For
example, a company can monitor its website’s speed and traffic. With real-time data, users
can decide when to increase or decrease cloud resources.
Network Function Virtualization (NFV)
Network Function Virtualization (NFV) is a method of replacing traditional hardware-
based network devices (like routers, firewalls, load balancers, etc.) with software-based
versions that run on standard servers or virtual machines.
Instead of buying a hardware firewall for your network, you can install a firewall software
on a virtual machine (VM) or cloud server. This makes it easy to manage, update, or scale as
needed.
The key components of NFV are follows.
Virtualized Network Function:
VNF is a software implementation of a network function, which is cabable of running over
NFV infrastructure (NFVI).
NFV Infrastructure (NFVI):
It includes compute Network and storage resources that are virtualized.
NFV Management and Orchestration:
It focus on all virtualization specific management task and covers the orchestration and life
cycle management of physical and software resources that support infrastructure
virtualization and life cycle management of VNFs.
2. Software-Defined Networking (SDN)
It is a modern network architecture that separates the control plane from the data plane
and centralize the network controller. This makes the network more flexible, programmable,
and easier to manage, especially in cloud environments. The components of SDN are
Control Plane: It acts as brain of network and make decision, where data to go.
Data Plane: It moves the data based on instruction of control plane. Eg Router and switches.
SDN Controller: A software that control entire networks.
The limitation of SDN are as follows
Complex Network Devices
Old networks are becoming too complex with many added protocols to improve speed. They
use special hardware and software that don’t work well with others and are hard to upgrade.
These networks were made for fixed traffic, but now traffic is always changing due to cloud
computing and more internet devices. So, it's hard to update old networks to handle modern
traffic needs.
Management overhead
Traditional networks are hard to manage and update because they need many changes across
different devices like switches, routers, and firewalls from various vendors. Updating the
network takes a lot of time and effort.

Limited Scalability
Cloud computing uses many virtual machines that need to share large amounts of data. This
needs networks that can grow easily and are simple to manage. Traditional networks struggle
with this because they are hard to scale and need manual setup.

Key elements of SDN


Centralized Network controller
A centralized network controller is the brain of an SDN network that makes all the
decisions about how data moves through the network, while the switches and routers just
follow its instructions.
Programmable Open API

A programmable open API is a set of tools and commands that allow the software application
to communicate with the SDN controller. So developers can write their own programs to
control, monitor, or configure the network.

Standard Communication Interface


A standard communication interface in SDN is a protocol or interface that enables the SDN
controller to communicate with network devices (like switches and routers). Eg. Overflow is
a widely used standard communication interface in SDN.

You might also like