SlideShare a Scribd company logo
The Role of
Elastic Load Balancer (ELB)
Imesh Gunaratne
Apache Contributor, Technical Lead - WSO2 Inc
Agenda
➔ Introduction to Load Balancing
◆ What is Load Balancing?
◆ Algorithms
◆ Node Configuration Modes
◆ Why is it called Elastic?
◆ Purpose
◆ Features
➔ Component Architecture of Apache Stratos ELB
◆ Synapse Mediation Framework
◆ Apache Axis2 Clustering
◆ Apache Tribes Group Management
◆ Binary Relay Message Builder
◆ Load Balance Endpoint Module
◆ Auto-scaling Module
2
Agenda (cont.)
➔ ELB’s role in Apache Stratos PaaS
◆ Apache Stratos Logical Architecture
◆ Workflow
➔ Auto-scaling Process
◆ Configuration
◆ Auto-scaling Algorithm
◆ Plugging in Custom Algorithms
➔ How to Avoid Single Point of Failure of ELB
3
Introduction to Load Balancing
How it is done & why it matters?
4
What is Load Balancing in general?
Load balancing is a computer networking method for
distributing workloads across multiple computers or a computer
cluster, network links, central processing units, disk drives, or
other resources
- Wikipedia
http://en.wikipedia.org/wiki/Load_balancer 5
Load balancing is used to distribute the incoming traffic
amongst a set of backend worker nodes which are statically
configured or dynamically discovered.
http://docs.wso2.org/wiki/display/ELB203/Load+Balacing+Basics
LB
W1
W2
Wn
Clients
Worker nodes
Incoming Traffic
6
What is Load Balancing in
Middleware?
Load Balancing Clusters
A cluster is a set of nodes that communicate with each
other and work towards a common goal.
7
Membership Schemes
Static Dynamic
Configuration Modes
● Only a predefined set of
nodes could exist in a
cluster.
● New nodes cannot be
added at runtime.
● Membership is not
predefined.
● Nodes could discover the
load balancer.
● Nodes could join a cluster by
specifying a cluster name.
Hybrid
● Also called Well-Known
Addressed (WKA).
● A cluster could have set
of well known members.
● Nodes could join a
cluster via a well-known
member.
8
Most widely used Load Balancing
Algorithms
➔ Round Robin
◆ Passes each new connection request to the next server in line
➔ Weighted Round Robin
◆ The number of connections that each machine receives over time is
proportionate to a ratio weight you define.
➔ Least Connections
◆ Passes a new connection to the server that has the least number of
current connections.
https://devcentral.f5.com/articles/intro-to-load-balancing-for-developers-
ndash-the-algorithms 9
Why it is called Elastic?
Load BalancerAutoscaler
+
Monitor the
incoming traffic
and scales request
handling capacity
(no of nodes)
Elastic Load
Balancer=
Distribute the load of
incoming traffic amongst
a set of worker nodes
10
What is the Purpose?
The motivation of load balancing is to
➔ Optimize resource usage
◆ Start and stop resources on demand.
➔ Maximize the throughput
◆ Increase the average rate of successful message delivery.
➔ Minimize the response time
◆ Reduce the time it takes to process a message and send a response
back.
http://en.wikipedia.org/wiki/Load_balancer
11
Main Features of a Load Balancer
There are three main features:
➔ Failover Handling
◆ Avoid single point of failure by hosting multiple instances of a given
service.
➔ Auto-scaling
◆ Manage number of instances of an application according to the
incoming traffic.
➔ Multi-tenancy
◆ Manage multiple tenants of applications.
12
Component Architecture of
Apache Stratos ELB
How it was designed
13
Component Architecture
14
Apache Synapse Mediation
Framework
15
How Synapse was Extended
16
Binary Relay Message Builder
● Synapse uses Axis2 engine for message processing.
● Axis2 uses Message Formatters & Message Builders for
serializing and building incoming messages into SOAP
format.
● Binary Relay is an Axis2 message builder which pass through
all messages without processing them.
Binary Relay
Message Builder 17
Binary Relay definition in Axis2.xml
elb/repository/conf/axis2/axis2.xml
<messageBuilders>
<messageBuilder contentType="application/xml"
class="org.wso2.carbon.relay.BinaryRelayBuilder"/>
<messageBuilder contentType="application/txt"
class="org.wso2.carbon.relay.BinaryRelayBuilder"/>
. . .
</messageBuilders>
Binary Relay
Message Builder 18
Load Balance Endpoint Module
● Tenant Aware Load Balance Endpoint
○ Extends Synapse Dynamic Load Balance Endpoint.
○ Utilizes round robin load balance algorithm.
● Topology Syncher
○ Receives service cluster topology information from Cloud Controller
via the Message Broker.
● Health Checker
○ Re-establishes connection to the Message Broker if it drops.
Load Balance
Endpoint Module 19
Load Balance Endpoint Module (cont.)
● Cluster Domain Manager Impl
○ Manages cluster sub domains of cartridge instances.
● Group Mgt Agent Builder
○ Manages Axis2 group management agents of cluster sub domains.
● Registry Manager
○ Receives domain mappings of cartridge instances from ADC manager
via the registry.
Load Balance
Endpoint Module 20
Session Affinity
● There are two different ways to manage session information.
● Replicate in cluster is a very costly process.
● Therefore ELB manages session information for the
applications.
Session Information
Replicate in Cluster Handled by LB
Load Balance
Endpoint Module
21
Auto-scaling Module
● Autoscale In Mediator
○ Generates a token (request id) per request received and adds it to a
queue.
● Autoscale Out Mediator
○ Removes the token added by the in mediator when a response is
received from the end point.
● Service Requests InFlight Autoscaler (Task)
○ Performs sanity checks to ensure that all clusters meet the minimum
number of nodes.
○ Performs scaling based on the request load & scaling configuration
parameters.
Auto-scaling Module
22
ELB’s role in Apache Stratos PaaS
How does it contribute?
23
ELB’s role in Apache Stratos PaaS
24
Cartridge Subscription Workflow
1. [SC -> CC] Send Cartridge Subscription Request
2. [CC] Deploy Cartridge Instance Service
3. [CC -> MB] Publish Cluster Topology Information
4. [MB -> ELB] Receive Cluster Topology Information
5. [CC -> jclouds] Instance Spawn Request
6. [jclouds -> IaaS] Spawn Cartridge Instance
7. [Cartridge -> Agent] Request to Join Cluster
8. [Agent -> ELB] Add Node to Cluster
25
1. [Client -> ELB] Send request message
2. [ELB] Identify cluster & tenant using message header
3. [ELB] Add request to a list
4. [ELB -> Node] If session exists, send message
5. [ELB] If not store session information
6. [ELB -> Node] Apply algorithm & send message
7. [ELB -> Node] Handle failover
8. [Node -> ELB] Send response
9. [ELB -> Client] Send response and remove request from list
10. [ELB] Scale number of cartridge instances
Load Balancing Workflow
26
Load Balancer Configuration
loadbalancer.conf
loadbalancer {
# minimum number of load balancer instances
instances 1;
# whether autoscaling should be enabled or not.
enable_autoscaler true;
# autoscaling decision making task
#autoscaler_task org.wso2.carbon.mediator.autoscale.lbautoscale.task.
ServiceRequestsInFlightAutoscaler;
#please use this whenever url-mapping is used through LB.
#size_of_cache 100;
...
27
Load Balancer Configuration (cont.)
loadbalancer {
...
# Endpoint reference of the Autoscaler Service. This should be present,
if you disabled embedded autoscaling.
#autoscaler_service_epr https://host_address:
https_port/services/AutoscalerService/;
# interval between two task executions in milliseconds
autoscaler_task_interval 60000;
# after an instance booted up, task will wait maximum till this much of
time and let the server started up
server_startup_delay 180000; #default will be 60000ms
# session timeout
session_timeout 90000;
# enable failover
fail_over true;
}
28
Port Mapping
● Ports of applications deployed in cartridge instances are
mapped to external ports by the load balancer.
● Port mapping is defined in <cartridge>.xml file.
● Example:
<portMapping>
<http port="80" proxyPort="8280"/>
<https port="443" proxyPort="8243"/>
</portMapping>
29
Auto-scaling Process
Configuration & custom implementations
30
Auto-scaling Configuration
loadbalancer.conf
services {
# default parameter values to be used in all services
defaults {
# minimum number of service instances required
min_app_instances 1;
# maximum number of service instances that will be load balanced
max_app_instances 3;
# maximum number of requests served per second by a service instance
max_requests_per_second 5;
# scale up early using AUR, 0 < AUR <= 1 and default is 0.7
alarming_upper_rate 0.7;
# scale down slowly using ALR, 0 < ALR <= 1 and default is 0.2
alarming_lower_rate 0.2;
# scale down slowly using SDF, 0 < SDF <= 1 and default is 0.25
scale_down_factor 0.25;
# no of iterations in-flight avg is calculated to take the decision
rounds_to_average 2;
message_expiry_time 60000;
}
31
Auto-scaling Algorithm
https://cwiki.apache.org/confluence/display/STRATOS/Elastic+Load+Balancer
32
Custom Auto-scaling Implementation
● You could write your own Java implementation which
implements org.apache.synapse.task.Task and org.apache.
synapse.ManagedLifecycle interfaces.
● Wrap the implementation class to an OSGi bundle and deploy
it in the ELB OSGi container.
● Update autoscaler_task value in loadbalancer.conf.
33
How to avoid Single Point of
Failure of ELB
An ELB is prone to single point of failure
34
Clustered ELB Deployment
Architecture
35
Questions?
Or any feedback is really appreciated
36
References
● Apache Stratos Documentation
https://cwiki.apache.org/confluence/display/STRATOS/Index
● WSO2 Load Balancer - How it works
http://blog.afkham.org/2011/09/wso2-load-balancer-how-it-works.html
● WSO2 Webinar - Introducing the WSO2 Load Balancer
http://www.youtube.com/watch?v=HgiTyvZ-Sfw
● WSO2 Elastic Load Balancer Documentation
http://docs.wso2.
org/wiki/display/ELB203/WSO2+Elastic+Load+Balancer+Documentation
● WSO2, Introduction to Carbon Clustering
http://wso2.com/library/articles/introduction-wso2-carbon-clustering
37
Website
http://stratos.incubator.apache.org
Mailing List
Subscribe: dev-subscribe@stratos.incubator.apache.org
Post (After subscription): dev@stratos.incubator.apache.org
Social Media
Google+: https://plus.google.com/103515557134069849802
Twitter: https://twitter.com/ApacheStratos
Facebook: https://www.facebook.com/apache.stratos
LinkedIn: http://www.linkedin.com/groups?home=&gid=5131436
38
Join Us

More Related Content

What's hot

Building your own PaaS using Apache Stratos
Building your own PaaS using Apache Stratos Building your own PaaS using Apache Stratos
Building your own PaaS using Apache Stratos WSO2
 
Openstack heat & How Autoscaling works
Openstack heat & How Autoscaling worksOpenstack heat & How Autoscaling works
Openstack heat & How Autoscaling works
CoreStack
 
Building a Real-Time Data Pipeline with Spark, Kafka, and Python
Building a Real-Time Data Pipeline with Spark, Kafka, and PythonBuilding a Real-Time Data Pipeline with Spark, Kafka, and Python
Building a Real-Time Data Pipeline with Spark, Kafka, and Python
SingleStore
 
Tales from the four-comma club: Managing Kafka as a service at Salesforce | L...
Tales from the four-comma club: Managing Kafka as a service at Salesforce | L...Tales from the four-comma club: Managing Kafka as a service at Salesforce | L...
Tales from the four-comma club: Managing Kafka as a service at Salesforce | L...
HostedbyConfluent
 
How to Autoscale in Apache Cloudstack using LiquiD AutoScaler
How to Autoscale in Apache Cloudstack using LiquiD AutoScalerHow to Autoscale in Apache Cloudstack using LiquiD AutoScaler
How to Autoscale in Apache Cloudstack using LiquiD AutoScaler
Bob Bennink
 
Kafka aws
Kafka awsKafka aws
Kafka aws
Ariel Moskovich
 
Apache Kafka® Security Overview
Apache Kafka® Security OverviewApache Kafka® Security Overview
Apache Kafka® Security Overview
confluent
 
9 plugin Cloudstack Developer Day
9 plugin Cloudstack Developer Day9 plugin Cloudstack Developer Day
9 plugin Cloudstack Developer Day
Kimihiko Kitase
 
KSQL Intro
KSQL IntroKSQL Intro
KSQL Intro
confluent
 
Microservices with Netflix OSS and Spring Cloud
Microservices with Netflix OSS and Spring CloudMicroservices with Netflix OSS and Spring Cloud
Microservices with Netflix OSS and Spring Cloud
acogoluegnes
 
Heat - keep the clouds up
Heat - keep the clouds upHeat - keep the clouds up
Heat - keep the clouds up
Kiran Murari
 
Oops! I started a broker | Yinon Kahta, Taboola
Oops! I started a broker | Yinon Kahta, TaboolaOops! I started a broker | Yinon Kahta, Taboola
Oops! I started a broker | Yinon Kahta, Taboola
HostedbyConfluent
 
An Introduction to OpenStack Heat
An Introduction to OpenStack HeatAn Introduction to OpenStack Heat
An Introduction to OpenStack Heat
Mirantis
 
Discovering Cloud Networking: VPC, VPN, Express Connect & Server Load Balancer
Discovering Cloud Networking: VPC, VPN, Express Connect & Server Load BalancerDiscovering Cloud Networking: VPC, VPN, Express Connect & Server Load Balancer
Discovering Cloud Networking: VPC, VPN, Express Connect & Server Load Balancer
Alibaba Cloud
 
Monitoring, the Prometheus Way - Julius Voltz, Prometheus
Monitoring, the Prometheus Way - Julius Voltz, Prometheus Monitoring, the Prometheus Way - Julius Voltz, Prometheus
Monitoring, the Prometheus Way - Julius Voltz, Prometheus
Docker, Inc.
 
Spark day 2017 - Spark on Kubernetes
Spark day 2017 - Spark on KubernetesSpark day 2017 - Spark on Kubernetes
Spark day 2017 - Spark on Kubernetes
Yousun Jeong
 
Containerizing Distributed Pipes
Containerizing Distributed PipesContainerizing Distributed Pipes
Containerizing Distributed Pipes
inside-BigData.com
 
Building an Event-oriented Data Platform with Kafka, Eric Sammer
Building an Event-oriented Data Platform with Kafka, Eric Sammer Building an Event-oriented Data Platform with Kafka, Eric Sammer
Building an Event-oriented Data Platform with Kafka, Eric Sammer
confluent
 
Using the JMS 2.0 API with Apache Pulsar - Pulsar Virtual Summit Europe 2021
Using the JMS 2.0 API with Apache Pulsar - Pulsar Virtual Summit Europe 2021Using the JMS 2.0 API with Apache Pulsar - Pulsar Virtual Summit Europe 2021
Using the JMS 2.0 API with Apache Pulsar - Pulsar Virtual Summit Europe 2021
StreamNative
 
Building High-Throughput, Low-Latency Pipelines in Kafka
Building High-Throughput, Low-Latency Pipelines in KafkaBuilding High-Throughput, Low-Latency Pipelines in Kafka
Building High-Throughput, Low-Latency Pipelines in Kafka
confluent
 

What's hot (20)

Building your own PaaS using Apache Stratos
Building your own PaaS using Apache Stratos Building your own PaaS using Apache Stratos
Building your own PaaS using Apache Stratos
 
Openstack heat & How Autoscaling works
Openstack heat & How Autoscaling worksOpenstack heat & How Autoscaling works
Openstack heat & How Autoscaling works
 
Building a Real-Time Data Pipeline with Spark, Kafka, and Python
Building a Real-Time Data Pipeline with Spark, Kafka, and PythonBuilding a Real-Time Data Pipeline with Spark, Kafka, and Python
Building a Real-Time Data Pipeline with Spark, Kafka, and Python
 
Tales from the four-comma club: Managing Kafka as a service at Salesforce | L...
Tales from the four-comma club: Managing Kafka as a service at Salesforce | L...Tales from the four-comma club: Managing Kafka as a service at Salesforce | L...
Tales from the four-comma club: Managing Kafka as a service at Salesforce | L...
 
How to Autoscale in Apache Cloudstack using LiquiD AutoScaler
How to Autoscale in Apache Cloudstack using LiquiD AutoScalerHow to Autoscale in Apache Cloudstack using LiquiD AutoScaler
How to Autoscale in Apache Cloudstack using LiquiD AutoScaler
 
Kafka aws
Kafka awsKafka aws
Kafka aws
 
Apache Kafka® Security Overview
Apache Kafka® Security OverviewApache Kafka® Security Overview
Apache Kafka® Security Overview
 
9 plugin Cloudstack Developer Day
9 plugin Cloudstack Developer Day9 plugin Cloudstack Developer Day
9 plugin Cloudstack Developer Day
 
KSQL Intro
KSQL IntroKSQL Intro
KSQL Intro
 
Microservices with Netflix OSS and Spring Cloud
Microservices with Netflix OSS and Spring CloudMicroservices with Netflix OSS and Spring Cloud
Microservices with Netflix OSS and Spring Cloud
 
Heat - keep the clouds up
Heat - keep the clouds upHeat - keep the clouds up
Heat - keep the clouds up
 
Oops! I started a broker | Yinon Kahta, Taboola
Oops! I started a broker | Yinon Kahta, TaboolaOops! I started a broker | Yinon Kahta, Taboola
Oops! I started a broker | Yinon Kahta, Taboola
 
An Introduction to OpenStack Heat
An Introduction to OpenStack HeatAn Introduction to OpenStack Heat
An Introduction to OpenStack Heat
 
Discovering Cloud Networking: VPC, VPN, Express Connect & Server Load Balancer
Discovering Cloud Networking: VPC, VPN, Express Connect & Server Load BalancerDiscovering Cloud Networking: VPC, VPN, Express Connect & Server Load Balancer
Discovering Cloud Networking: VPC, VPN, Express Connect & Server Load Balancer
 
Monitoring, the Prometheus Way - Julius Voltz, Prometheus
Monitoring, the Prometheus Way - Julius Voltz, Prometheus Monitoring, the Prometheus Way - Julius Voltz, Prometheus
Monitoring, the Prometheus Way - Julius Voltz, Prometheus
 
Spark day 2017 - Spark on Kubernetes
Spark day 2017 - Spark on KubernetesSpark day 2017 - Spark on Kubernetes
Spark day 2017 - Spark on Kubernetes
 
Containerizing Distributed Pipes
Containerizing Distributed PipesContainerizing Distributed Pipes
Containerizing Distributed Pipes
 
Building an Event-oriented Data Platform with Kafka, Eric Sammer
Building an Event-oriented Data Platform with Kafka, Eric Sammer Building an Event-oriented Data Platform with Kafka, Eric Sammer
Building an Event-oriented Data Platform with Kafka, Eric Sammer
 
Using the JMS 2.0 API with Apache Pulsar - Pulsar Virtual Summit Europe 2021
Using the JMS 2.0 API with Apache Pulsar - Pulsar Virtual Summit Europe 2021Using the JMS 2.0 API with Apache Pulsar - Pulsar Virtual Summit Europe 2021
Using the JMS 2.0 API with Apache Pulsar - Pulsar Virtual Summit Europe 2021
 
Building High-Throughput, Low-Latency Pipelines in Kafka
Building High-Throughput, Low-Latency Pipelines in KafkaBuilding High-Throughput, Low-Latency Pipelines in Kafka
Building High-Throughput, Low-Latency Pipelines in Kafka
 

Viewers also liked

Oies_IoT_week_lisbon_201506_wearablesfieldservice_final
Oies_IoT_week_lisbon_201506_wearablesfieldservice_finalOies_IoT_week_lisbon_201506_wearablesfieldservice_final
Oies_IoT_week_lisbon_201506_wearablesfieldservice_final
Francisco Maroto
 
SaaS Flatform metering and billing
SaaS Flatform metering and billingSaaS Flatform metering and billing
SaaS Flatform metering and billing상욱 송
 
PaaS Design & Architecture: A Deep Dive into Apache Stratos
PaaS Design & Architecture: A Deep Dive into Apache StratosPaaS Design & Architecture: A Deep Dive into Apache Stratos
PaaS Design & Architecture: A Deep Dive into Apache Stratos
WSO2
 
All You Need to Know about AWS Elastic Load Balancer
All You Need to Know about AWS Elastic Load BalancerAll You Need to Know about AWS Elastic Load Balancer
All You Need to Know about AWS Elastic Load Balancer
Cloudlytics
 
Amazon CloudFront Office Hour, “Using Amazon CloudFront with Amazon S3 & AWS ...
Amazon CloudFront Office Hour, “Using Amazon CloudFront with Amazon S3 & AWS ...Amazon CloudFront Office Hour, “Using Amazon CloudFront with Amazon S3 & AWS ...
Amazon CloudFront Office Hour, “Using Amazon CloudFront with Amazon S3 & AWS ...
Amazon Web Services
 
AWS EC2 and ELB troubleshooting
AWS EC2 and ELB troubleshootingAWS EC2 and ELB troubleshooting
AWS EC2 and ELB troubleshooting
Shiva Narayanaswamy
 
Introduction to Apache jclouds
Introduction to Apache jcloudsIntroduction to Apache jclouds
Introduction to Apache jclouds
Everett Toews
 

Viewers also liked (7)

Oies_IoT_week_lisbon_201506_wearablesfieldservice_final
Oies_IoT_week_lisbon_201506_wearablesfieldservice_finalOies_IoT_week_lisbon_201506_wearablesfieldservice_final
Oies_IoT_week_lisbon_201506_wearablesfieldservice_final
 
SaaS Flatform metering and billing
SaaS Flatform metering and billingSaaS Flatform metering and billing
SaaS Flatform metering and billing
 
PaaS Design & Architecture: A Deep Dive into Apache Stratos
PaaS Design & Architecture: A Deep Dive into Apache StratosPaaS Design & Architecture: A Deep Dive into Apache Stratos
PaaS Design & Architecture: A Deep Dive into Apache Stratos
 
All You Need to Know about AWS Elastic Load Balancer
All You Need to Know about AWS Elastic Load BalancerAll You Need to Know about AWS Elastic Load Balancer
All You Need to Know about AWS Elastic Load Balancer
 
Amazon CloudFront Office Hour, “Using Amazon CloudFront with Amazon S3 & AWS ...
Amazon CloudFront Office Hour, “Using Amazon CloudFront with Amazon S3 & AWS ...Amazon CloudFront Office Hour, “Using Amazon CloudFront with Amazon S3 & AWS ...
Amazon CloudFront Office Hour, “Using Amazon CloudFront with Amazon S3 & AWS ...
 
AWS EC2 and ELB troubleshooting
AWS EC2 and ELB troubleshootingAWS EC2 and ELB troubleshooting
AWS EC2 and ELB troubleshooting
 
Introduction to Apache jclouds
Introduction to Apache jcloudsIntroduction to Apache jclouds
Introduction to Apache jclouds
 

Similar to The Role of Elastic Load Balancer - Apache Stratos

Highly Available Load Balanced Galera MySql Cluster
Highly Available Load Balanced  Galera MySql ClusterHighly Available Load Balanced  Galera MySql Cluster
Highly Available Load Balanced Galera MySql Cluster
Amr Fawzy
 
Stop Worrying and Keep Querying, Using Automated Multi-Region Disaster Recovery
Stop Worrying and Keep Querying, Using Automated Multi-Region Disaster RecoveryStop Worrying and Keep Querying, Using Automated Multi-Region Disaster Recovery
Stop Worrying and Keep Querying, Using Automated Multi-Region Disaster Recovery
DoKC
 
MariaDB Auto-Clustering, Vertical and Horizontal Scaling within Jelastic PaaS
MariaDB Auto-Clustering, Vertical and Horizontal Scaling within Jelastic PaaSMariaDB Auto-Clustering, Vertical and Horizontal Scaling within Jelastic PaaS
MariaDB Auto-Clustering, Vertical and Horizontal Scaling within Jelastic PaaS
Jelastic Multi-Cloud PaaS
 
AskTom: How to Make and Test Your Application "Oracle RAC Ready"?
AskTom: How to Make and Test Your Application "Oracle RAC Ready"?AskTom: How to Make and Test Your Application "Oracle RAC Ready"?
AskTom: How to Make and Test Your Application "Oracle RAC Ready"?
Markus Michalewicz
 
Container orchestration from theory to practice
Container orchestration from theory to practiceContainer orchestration from theory to practice
Container orchestration from theory to practice
Docker, Inc.
 
Container Orchestration from Theory to Practice
Container Orchestration from Theory to PracticeContainer Orchestration from Theory to Practice
Container Orchestration from Theory to Practice
Docker, Inc.
 
Developing Microservices using Spring - Beginner's Guide
Developing Microservices using Spring - Beginner's GuideDeveloping Microservices using Spring - Beginner's Guide
Developing Microservices using Spring - Beginner's Guide
Mohanraj Thirumoorthy
 
Velocity 2018 preetha appan final
Velocity 2018   preetha appan finalVelocity 2018   preetha appan final
Velocity 2018 preetha appan final
preethaappan
 
weblogic perfomence tuning
weblogic perfomence tuningweblogic perfomence tuning
weblogic perfomence tuning
prathap kumar
 
Clustering & nlb
Clustering & nlbClustering & nlb
Clustering & nlb
Vinod Hanumantharayappa
 
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 2
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 2MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 2
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 2
Alfonso Martino
 
Training Slides: Basics 102: Introduction to Tungsten Clustering
Training Slides: Basics 102: Introduction to Tungsten ClusteringTraining Slides: Basics 102: Introduction to Tungsten Clustering
Training Slides: Basics 102: Introduction to Tungsten Clustering
Continuent
 
An introduction to_rac_system_test_planning_methods
An introduction to_rac_system_test_planning_methodsAn introduction to_rac_system_test_planning_methods
An introduction to_rac_system_test_planning_methods
Ajith Narayanan
 
GemFire In Memory Data Grid
GemFire In Memory Data GridGemFire In Memory Data Grid
GemFire In Memory Data GridDmitry Buzdin
 
Characterizing and contrasting kuhn tey-ner awr-kuh-streyt-ors
Characterizing and contrasting kuhn tey-ner awr-kuh-streyt-orsCharacterizing and contrasting kuhn tey-ner awr-kuh-streyt-ors
Characterizing and contrasting kuhn tey-ner awr-kuh-streyt-ors
Lee Calcote
 
Load Balancing traffic in OpenStack neutron
Load Balancing traffic in OpenStack neutron Load Balancing traffic in OpenStack neutron
Load Balancing traffic in OpenStack neutron
sufianfauzani
 
PeopleSoft Integration broker Performance Tunning
PeopleSoft Integration broker Performance TunningPeopleSoft Integration broker Performance Tunning
PeopleSoft Integration broker Performance Tunning
InSync Conference
 
Efficient Resource Allocation to Virtual Machine in Cloud Computing Using an ...
Efficient Resource Allocation to Virtual Machine in Cloud Computing Using an ...Efficient Resource Allocation to Virtual Machine in Cloud Computing Using an ...
Efficient Resource Allocation to Virtual Machine in Cloud Computing Using an ...
ijceronline
 

Similar to The Role of Elastic Load Balancer - Apache Stratos (20)

Highly Available Load Balanced Galera MySql Cluster
Highly Available Load Balanced  Galera MySql ClusterHighly Available Load Balanced  Galera MySql Cluster
Highly Available Load Balanced Galera MySql Cluster
 
Stop Worrying and Keep Querying, Using Automated Multi-Region Disaster Recovery
Stop Worrying and Keep Querying, Using Automated Multi-Region Disaster RecoveryStop Worrying and Keep Querying, Using Automated Multi-Region Disaster Recovery
Stop Worrying and Keep Querying, Using Automated Multi-Region Disaster Recovery
 
MariaDB Auto-Clustering, Vertical and Horizontal Scaling within Jelastic PaaS
MariaDB Auto-Clustering, Vertical and Horizontal Scaling within Jelastic PaaSMariaDB Auto-Clustering, Vertical and Horizontal Scaling within Jelastic PaaS
MariaDB Auto-Clustering, Vertical and Horizontal Scaling within Jelastic PaaS
 
AskTom: How to Make and Test Your Application "Oracle RAC Ready"?
AskTom: How to Make and Test Your Application "Oracle RAC Ready"?AskTom: How to Make and Test Your Application "Oracle RAC Ready"?
AskTom: How to Make and Test Your Application "Oracle RAC Ready"?
 
Container orchestration from theory to practice
Container orchestration from theory to practiceContainer orchestration from theory to practice
Container orchestration from theory to practice
 
les07.pdf
les07.pdfles07.pdf
les07.pdf
 
Container Orchestration from Theory to Practice
Container Orchestration from Theory to PracticeContainer Orchestration from Theory to Practice
Container Orchestration from Theory to Practice
 
Developing Microservices using Spring - Beginner's Guide
Developing Microservices using Spring - Beginner's GuideDeveloping Microservices using Spring - Beginner's Guide
Developing Microservices using Spring - Beginner's Guide
 
Velocity 2018 preetha appan final
Velocity 2018   preetha appan finalVelocity 2018   preetha appan final
Velocity 2018 preetha appan final
 
weblogic perfomence tuning
weblogic perfomence tuningweblogic perfomence tuning
weblogic perfomence tuning
 
Clustering & nlb
Clustering & nlbClustering & nlb
Clustering & nlb
 
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 2
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 2MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 2
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 2
 
Training Slides: Basics 102: Introduction to Tungsten Clustering
Training Slides: Basics 102: Introduction to Tungsten ClusteringTraining Slides: Basics 102: Introduction to Tungsten Clustering
Training Slides: Basics 102: Introduction to Tungsten Clustering
 
An introduction to_rac_system_test_planning_methods
An introduction to_rac_system_test_planning_methodsAn introduction to_rac_system_test_planning_methods
An introduction to_rac_system_test_planning_methods
 
GemFire In Memory Data Grid
GemFire In Memory Data GridGemFire In Memory Data Grid
GemFire In Memory Data Grid
 
Characterizing and contrasting kuhn tey-ner awr-kuh-streyt-ors
Characterizing and contrasting kuhn tey-ner awr-kuh-streyt-orsCharacterizing and contrasting kuhn tey-ner awr-kuh-streyt-ors
Characterizing and contrasting kuhn tey-ner awr-kuh-streyt-ors
 
GemFire In-Memory Data Grid
GemFire In-Memory Data GridGemFire In-Memory Data Grid
GemFire In-Memory Data Grid
 
Load Balancing traffic in OpenStack neutron
Load Balancing traffic in OpenStack neutron Load Balancing traffic in OpenStack neutron
Load Balancing traffic in OpenStack neutron
 
PeopleSoft Integration broker Performance Tunning
PeopleSoft Integration broker Performance TunningPeopleSoft Integration broker Performance Tunning
PeopleSoft Integration broker Performance Tunning
 
Efficient Resource Allocation to Virtual Machine in Cloud Computing Using an ...
Efficient Resource Allocation to Virtual Machine in Cloud Computing Using an ...Efficient Resource Allocation to Virtual Machine in Cloud Computing Using an ...
Efficient Resource Allocation to Virtual Machine in Cloud Computing Using an ...
 

More from Imesh Gunaratne

Planning WSO2 Deployments on Pivotal Cloud Foundry
Planning WSO2 Deployments on Pivotal Cloud FoundryPlanning WSO2 Deployments on Pivotal Cloud Foundry
Planning WSO2 Deployments on Pivotal Cloud Foundry
Imesh Gunaratne
 
Planning WSO2 Deployments on DC/OS
Planning WSO2 Deployments on DC/OSPlanning WSO2 Deployments on DC/OS
Planning WSO2 Deployments on DC/OS
Imesh Gunaratne
 
Deep Dive into Kubernetes - Part 2
Deep Dive into Kubernetes - Part 2Deep Dive into Kubernetes - Part 2
Deep Dive into Kubernetes - Part 2
Imesh Gunaratne
 
Deep Dive into Kubernetes - Part 1
Deep Dive into Kubernetes - Part 1Deep Dive into Kubernetes - Part 1
Deep Dive into Kubernetes - Part 1
Imesh Gunaratne
 
WSO2 Container Strategy
WSO2 Container StrategyWSO2 Container Strategy
WSO2 Container Strategy
Imesh Gunaratne
 
WSO2 API Manager Reference Architecture for DC/OS
WSO2 API Manager Reference Architecture for DC/OSWSO2 API Manager Reference Architecture for DC/OS
WSO2 API Manager Reference Architecture for DC/OS
Imesh Gunaratne
 
WSO2 API Manager Reference Architecture for Pivotal Cloud Foundry
WSO2 API Manager Reference Architecture for Pivotal Cloud FoundryWSO2 API Manager Reference Architecture for Pivotal Cloud Foundry
WSO2 API Manager Reference Architecture for Pivotal Cloud Foundry
Imesh Gunaratne
 
WSO2 Kubernetes Reference Architecture - Nov 2017
WSO2 Kubernetes Reference Architecture - Nov 2017WSO2 Kubernetes Reference Architecture - Nov 2017
WSO2 Kubernetes Reference Architecture - Nov 2017
Imesh Gunaratne
 
WSO2 Cloud and Platform as a Service Strategy
WSO2 Cloud and Platform as a Service StrategyWSO2 Cloud and Platform as a Service Strategy
WSO2 Cloud and Platform as a Service Strategy
Imesh Gunaratne
 
Planning Your Cloud Strategy
Planning Your Cloud StrategyPlanning Your Cloud Strategy
Planning Your Cloud Strategy
Imesh Gunaratne
 
Deploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on ContainersDeploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on Containers
Imesh Gunaratne
 
Multitenancy in WSO2 Carbon 5 (C5)
Multitenancy in WSO2 Carbon 5 (C5)Multitenancy in WSO2 Carbon 5 (C5)
Multitenancy in WSO2 Carbon 5 (C5)
Imesh Gunaratne
 
Deploying WSO2 Middleware on Mesos
Deploying WSO2 Middleware on MesosDeploying WSO2 Middleware on Mesos
Deploying WSO2 Middleware on Mesos
Imesh Gunaratne
 
Deploying WSO2 Middleware on Kubernetes
Deploying WSO2 Middleware on KubernetesDeploying WSO2 Middleware on Kubernetes
Deploying WSO2 Middleware on Kubernetes
Imesh Gunaratne
 
Service Oriented Architecture & Beyond
Service Oriented Architecture & BeyondService Oriented Architecture & Beyond
Service Oriented Architecture & Beyond
Imesh Gunaratne
 
Docker for Java Developers
Docker for Java DevelopersDocker for Java Developers
Docker for Java Developers
Imesh Gunaratne
 
WSO2 Cloud Strategy Update
WSO2 Cloud Strategy UpdateWSO2 Cloud Strategy Update
WSO2 Cloud Strategy Update
Imesh Gunaratne
 
An Introduction to Go
An Introduction to GoAn Introduction to Go
An Introduction to Go
Imesh Gunaratne
 
Scale into Multi-Cloud with Containers
Scale into Multi-Cloud with ContainersScale into Multi-Cloud with Containers
Scale into Multi-Cloud with Containers
Imesh Gunaratne
 
Revolutionizing WSO2 PaaS with Kubernetes & App Factory
Revolutionizing WSO2 PaaS with Kubernetes & App FactoryRevolutionizing WSO2 PaaS with Kubernetes & App Factory
Revolutionizing WSO2 PaaS with Kubernetes & App Factory
Imesh Gunaratne
 

More from Imesh Gunaratne (20)

Planning WSO2 Deployments on Pivotal Cloud Foundry
Planning WSO2 Deployments on Pivotal Cloud FoundryPlanning WSO2 Deployments on Pivotal Cloud Foundry
Planning WSO2 Deployments on Pivotal Cloud Foundry
 
Planning WSO2 Deployments on DC/OS
Planning WSO2 Deployments on DC/OSPlanning WSO2 Deployments on DC/OS
Planning WSO2 Deployments on DC/OS
 
Deep Dive into Kubernetes - Part 2
Deep Dive into Kubernetes - Part 2Deep Dive into Kubernetes - Part 2
Deep Dive into Kubernetes - Part 2
 
Deep Dive into Kubernetes - Part 1
Deep Dive into Kubernetes - Part 1Deep Dive into Kubernetes - Part 1
Deep Dive into Kubernetes - Part 1
 
WSO2 Container Strategy
WSO2 Container StrategyWSO2 Container Strategy
WSO2 Container Strategy
 
WSO2 API Manager Reference Architecture for DC/OS
WSO2 API Manager Reference Architecture for DC/OSWSO2 API Manager Reference Architecture for DC/OS
WSO2 API Manager Reference Architecture for DC/OS
 
WSO2 API Manager Reference Architecture for Pivotal Cloud Foundry
WSO2 API Manager Reference Architecture for Pivotal Cloud FoundryWSO2 API Manager Reference Architecture for Pivotal Cloud Foundry
WSO2 API Manager Reference Architecture for Pivotal Cloud Foundry
 
WSO2 Kubernetes Reference Architecture - Nov 2017
WSO2 Kubernetes Reference Architecture - Nov 2017WSO2 Kubernetes Reference Architecture - Nov 2017
WSO2 Kubernetes Reference Architecture - Nov 2017
 
WSO2 Cloud and Platform as a Service Strategy
WSO2 Cloud and Platform as a Service StrategyWSO2 Cloud and Platform as a Service Strategy
WSO2 Cloud and Platform as a Service Strategy
 
Planning Your Cloud Strategy
Planning Your Cloud StrategyPlanning Your Cloud Strategy
Planning Your Cloud Strategy
 
Deploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on ContainersDeploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on Containers
 
Multitenancy in WSO2 Carbon 5 (C5)
Multitenancy in WSO2 Carbon 5 (C5)Multitenancy in WSO2 Carbon 5 (C5)
Multitenancy in WSO2 Carbon 5 (C5)
 
Deploying WSO2 Middleware on Mesos
Deploying WSO2 Middleware on MesosDeploying WSO2 Middleware on Mesos
Deploying WSO2 Middleware on Mesos
 
Deploying WSO2 Middleware on Kubernetes
Deploying WSO2 Middleware on KubernetesDeploying WSO2 Middleware on Kubernetes
Deploying WSO2 Middleware on Kubernetes
 
Service Oriented Architecture & Beyond
Service Oriented Architecture & BeyondService Oriented Architecture & Beyond
Service Oriented Architecture & Beyond
 
Docker for Java Developers
Docker for Java DevelopersDocker for Java Developers
Docker for Java Developers
 
WSO2 Cloud Strategy Update
WSO2 Cloud Strategy UpdateWSO2 Cloud Strategy Update
WSO2 Cloud Strategy Update
 
An Introduction to Go
An Introduction to GoAn Introduction to Go
An Introduction to Go
 
Scale into Multi-Cloud with Containers
Scale into Multi-Cloud with ContainersScale into Multi-Cloud with Containers
Scale into Multi-Cloud with Containers
 
Revolutionizing WSO2 PaaS with Kubernetes & App Factory
Revolutionizing WSO2 PaaS with Kubernetes & App FactoryRevolutionizing WSO2 PaaS with Kubernetes & App Factory
Revolutionizing WSO2 PaaS with Kubernetes & App Factory
 

Recently uploaded

DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 

Recently uploaded (20)

DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 

The Role of Elastic Load Balancer - Apache Stratos

  • 1. The Role of Elastic Load Balancer (ELB) Imesh Gunaratne Apache Contributor, Technical Lead - WSO2 Inc
  • 2. Agenda ➔ Introduction to Load Balancing ◆ What is Load Balancing? ◆ Algorithms ◆ Node Configuration Modes ◆ Why is it called Elastic? ◆ Purpose ◆ Features ➔ Component Architecture of Apache Stratos ELB ◆ Synapse Mediation Framework ◆ Apache Axis2 Clustering ◆ Apache Tribes Group Management ◆ Binary Relay Message Builder ◆ Load Balance Endpoint Module ◆ Auto-scaling Module 2
  • 3. Agenda (cont.) ➔ ELB’s role in Apache Stratos PaaS ◆ Apache Stratos Logical Architecture ◆ Workflow ➔ Auto-scaling Process ◆ Configuration ◆ Auto-scaling Algorithm ◆ Plugging in Custom Algorithms ➔ How to Avoid Single Point of Failure of ELB 3
  • 4. Introduction to Load Balancing How it is done & why it matters? 4
  • 5. What is Load Balancing in general? Load balancing is a computer networking method for distributing workloads across multiple computers or a computer cluster, network links, central processing units, disk drives, or other resources - Wikipedia http://en.wikipedia.org/wiki/Load_balancer 5
  • 6. Load balancing is used to distribute the incoming traffic amongst a set of backend worker nodes which are statically configured or dynamically discovered. http://docs.wso2.org/wiki/display/ELB203/Load+Balacing+Basics LB W1 W2 Wn Clients Worker nodes Incoming Traffic 6 What is Load Balancing in Middleware?
  • 7. Load Balancing Clusters A cluster is a set of nodes that communicate with each other and work towards a common goal. 7
  • 8. Membership Schemes Static Dynamic Configuration Modes ● Only a predefined set of nodes could exist in a cluster. ● New nodes cannot be added at runtime. ● Membership is not predefined. ● Nodes could discover the load balancer. ● Nodes could join a cluster by specifying a cluster name. Hybrid ● Also called Well-Known Addressed (WKA). ● A cluster could have set of well known members. ● Nodes could join a cluster via a well-known member. 8
  • 9. Most widely used Load Balancing Algorithms ➔ Round Robin ◆ Passes each new connection request to the next server in line ➔ Weighted Round Robin ◆ The number of connections that each machine receives over time is proportionate to a ratio weight you define. ➔ Least Connections ◆ Passes a new connection to the server that has the least number of current connections. https://devcentral.f5.com/articles/intro-to-load-balancing-for-developers- ndash-the-algorithms 9
  • 10. Why it is called Elastic? Load BalancerAutoscaler + Monitor the incoming traffic and scales request handling capacity (no of nodes) Elastic Load Balancer= Distribute the load of incoming traffic amongst a set of worker nodes 10
  • 11. What is the Purpose? The motivation of load balancing is to ➔ Optimize resource usage ◆ Start and stop resources on demand. ➔ Maximize the throughput ◆ Increase the average rate of successful message delivery. ➔ Minimize the response time ◆ Reduce the time it takes to process a message and send a response back. http://en.wikipedia.org/wiki/Load_balancer 11
  • 12. Main Features of a Load Balancer There are three main features: ➔ Failover Handling ◆ Avoid single point of failure by hosting multiple instances of a given service. ➔ Auto-scaling ◆ Manage number of instances of an application according to the incoming traffic. ➔ Multi-tenancy ◆ Manage multiple tenants of applications. 12
  • 13. Component Architecture of Apache Stratos ELB How it was designed 13
  • 16. How Synapse was Extended 16
  • 17. Binary Relay Message Builder ● Synapse uses Axis2 engine for message processing. ● Axis2 uses Message Formatters & Message Builders for serializing and building incoming messages into SOAP format. ● Binary Relay is an Axis2 message builder which pass through all messages without processing them. Binary Relay Message Builder 17
  • 18. Binary Relay definition in Axis2.xml elb/repository/conf/axis2/axis2.xml <messageBuilders> <messageBuilder contentType="application/xml" class="org.wso2.carbon.relay.BinaryRelayBuilder"/> <messageBuilder contentType="application/txt" class="org.wso2.carbon.relay.BinaryRelayBuilder"/> . . . </messageBuilders> Binary Relay Message Builder 18
  • 19. Load Balance Endpoint Module ● Tenant Aware Load Balance Endpoint ○ Extends Synapse Dynamic Load Balance Endpoint. ○ Utilizes round robin load balance algorithm. ● Topology Syncher ○ Receives service cluster topology information from Cloud Controller via the Message Broker. ● Health Checker ○ Re-establishes connection to the Message Broker if it drops. Load Balance Endpoint Module 19
  • 20. Load Balance Endpoint Module (cont.) ● Cluster Domain Manager Impl ○ Manages cluster sub domains of cartridge instances. ● Group Mgt Agent Builder ○ Manages Axis2 group management agents of cluster sub domains. ● Registry Manager ○ Receives domain mappings of cartridge instances from ADC manager via the registry. Load Balance Endpoint Module 20
  • 21. Session Affinity ● There are two different ways to manage session information. ● Replicate in cluster is a very costly process. ● Therefore ELB manages session information for the applications. Session Information Replicate in Cluster Handled by LB Load Balance Endpoint Module 21
  • 22. Auto-scaling Module ● Autoscale In Mediator ○ Generates a token (request id) per request received and adds it to a queue. ● Autoscale Out Mediator ○ Removes the token added by the in mediator when a response is received from the end point. ● Service Requests InFlight Autoscaler (Task) ○ Performs sanity checks to ensure that all clusters meet the minimum number of nodes. ○ Performs scaling based on the request load & scaling configuration parameters. Auto-scaling Module 22
  • 23. ELB’s role in Apache Stratos PaaS How does it contribute? 23
  • 24. ELB’s role in Apache Stratos PaaS 24
  • 25. Cartridge Subscription Workflow 1. [SC -> CC] Send Cartridge Subscription Request 2. [CC] Deploy Cartridge Instance Service 3. [CC -> MB] Publish Cluster Topology Information 4. [MB -> ELB] Receive Cluster Topology Information 5. [CC -> jclouds] Instance Spawn Request 6. [jclouds -> IaaS] Spawn Cartridge Instance 7. [Cartridge -> Agent] Request to Join Cluster 8. [Agent -> ELB] Add Node to Cluster 25
  • 26. 1. [Client -> ELB] Send request message 2. [ELB] Identify cluster & tenant using message header 3. [ELB] Add request to a list 4. [ELB -> Node] If session exists, send message 5. [ELB] If not store session information 6. [ELB -> Node] Apply algorithm & send message 7. [ELB -> Node] Handle failover 8. [Node -> ELB] Send response 9. [ELB -> Client] Send response and remove request from list 10. [ELB] Scale number of cartridge instances Load Balancing Workflow 26
  • 27. Load Balancer Configuration loadbalancer.conf loadbalancer { # minimum number of load balancer instances instances 1; # whether autoscaling should be enabled or not. enable_autoscaler true; # autoscaling decision making task #autoscaler_task org.wso2.carbon.mediator.autoscale.lbautoscale.task. ServiceRequestsInFlightAutoscaler; #please use this whenever url-mapping is used through LB. #size_of_cache 100; ... 27
  • 28. Load Balancer Configuration (cont.) loadbalancer { ... # Endpoint reference of the Autoscaler Service. This should be present, if you disabled embedded autoscaling. #autoscaler_service_epr https://host_address: https_port/services/AutoscalerService/; # interval between two task executions in milliseconds autoscaler_task_interval 60000; # after an instance booted up, task will wait maximum till this much of time and let the server started up server_startup_delay 180000; #default will be 60000ms # session timeout session_timeout 90000; # enable failover fail_over true; } 28
  • 29. Port Mapping ● Ports of applications deployed in cartridge instances are mapped to external ports by the load balancer. ● Port mapping is defined in <cartridge>.xml file. ● Example: <portMapping> <http port="80" proxyPort="8280"/> <https port="443" proxyPort="8243"/> </portMapping> 29
  • 30. Auto-scaling Process Configuration & custom implementations 30
  • 31. Auto-scaling Configuration loadbalancer.conf services { # default parameter values to be used in all services defaults { # minimum number of service instances required min_app_instances 1; # maximum number of service instances that will be load balanced max_app_instances 3; # maximum number of requests served per second by a service instance max_requests_per_second 5; # scale up early using AUR, 0 < AUR <= 1 and default is 0.7 alarming_upper_rate 0.7; # scale down slowly using ALR, 0 < ALR <= 1 and default is 0.2 alarming_lower_rate 0.2; # scale down slowly using SDF, 0 < SDF <= 1 and default is 0.25 scale_down_factor 0.25; # no of iterations in-flight avg is calculated to take the decision rounds_to_average 2; message_expiry_time 60000; } 31
  • 33. Custom Auto-scaling Implementation ● You could write your own Java implementation which implements org.apache.synapse.task.Task and org.apache. synapse.ManagedLifecycle interfaces. ● Wrap the implementation class to an OSGi bundle and deploy it in the ELB OSGi container. ● Update autoscaler_task value in loadbalancer.conf. 33
  • 34. How to avoid Single Point of Failure of ELB An ELB is prone to single point of failure 34
  • 36. Questions? Or any feedback is really appreciated 36
  • 37. References ● Apache Stratos Documentation https://cwiki.apache.org/confluence/display/STRATOS/Index ● WSO2 Load Balancer - How it works http://blog.afkham.org/2011/09/wso2-load-balancer-how-it-works.html ● WSO2 Webinar - Introducing the WSO2 Load Balancer http://www.youtube.com/watch?v=HgiTyvZ-Sfw ● WSO2 Elastic Load Balancer Documentation http://docs.wso2. org/wiki/display/ELB203/WSO2+Elastic+Load+Balancer+Documentation ● WSO2, Introduction to Carbon Clustering http://wso2.com/library/articles/introduction-wso2-carbon-clustering 37
  • 38. Website http://stratos.incubator.apache.org Mailing List Subscribe: dev-subscribe@stratos.incubator.apache.org Post (After subscription): dev@stratos.incubator.apache.org Social Media Google+: https://plus.google.com/103515557134069849802 Twitter: https://twitter.com/ApacheStratos Facebook: https://www.facebook.com/apache.stratos LinkedIn: http://www.linkedin.com/groups?home=&gid=5131436 38 Join Us