SlideShare a Scribd company logo
1 of 62
Scalable SOA



   Samisa Abeysinghe


WSO2 Summer School 2009
Outline
●Introduction
●Clustering

●Load Balancing

●SOA in the cloud

●Summary and Resources
Outline - 1
Introduction
●

    ●   Scalability and Availability
Outline - 2
Clustering
●

    ●   Clustering Techniques
    ●   Interfaces to be used
    ●   Membership Schemes
    ●   State Management
    ●   Node Management
    ●   Group Management
    ●   Clustering Patterns
Outline - 3
Load Balancing
●

    ●   Stateless load balancing
    ●   Stateful load balancing
    ●   Load Balancing with fail over
    ●   Dynamic load balancing
Outline - 4
SOA in the cloud
●

    ●   AMI deployments
    ●   Auto Scaling
Clustering
Web services clustering
●   Different servers
    providing the same
    service
●   Group communication
    among the servers
●   Shared resources for
    the cluster
Motivation for Clustering
●Achieving high availability and scalability
●Enterprise Service Buses (ESB)

    ●   De-facto standard for integrating autonomous entities
    ●   Could become the bottleneck in the system
          ●   High availability and high scalability critical
    ●   Ability to cluster is an essential functionality for an
         ESB in a SOA deployment
Service hosting engines
●

    ●   Needs to be able to plug into clusters
Scalability
Ability to
  Handle growing amounts of work in a
  graceful manner
Or
  Be readily enlarged
Availability
The degree to which a system, subsystem, or
●

  equipment is
 ● Operable and in a committable state at the

    start of a mission
 ● When the mission is called for at an

    unknown
A Computer Cluster is...
●A group of coupled computers that works closely
  together
●As if they were a single computer
Clustering Basics
Members or nodes of a cluster
●

    ●   Connected to each other through fast local area
         networks
    ●   Redundant hardware and/or software resources
         ●   Increase the availability and/or performance of the whole
               system
Fault-tolerant components
●

    ●   Share any existing state information among members
    ●   Redundant component is able to take over the work
         of another
An ESB Cluster
Performance with a Cluster
●Install the software on different computers in your
   network
●Spread work amongst those

●Achieved using software or hardware load

   balancers
    ●   Distribute incoming requests to different nodes of a
         cluster
    ●   Based on a very simple or sophisticated
         strategy/algorithm
         ●   Most common and the very basic strategy is round-robin
Performance with a Cluster:
                 Scaling
Increasing the numbers of nodes in a cluster
●

    ●   Decrease the average load on each node
    ●   Able to handle more work in a given time period
    ●   Scale to your performance requirements
Scaling with a Cluster
Availability with a Cluster
●Fault-tolerance and failover
●Component failures detected by the cluster

●Repeats the failed operation on an identical node

  residing in the cluster
    ●   Request processed should be completely stateless
    ●   Does not work if an operation is stateful
         ●   The node is required to maintain state information between
              subsequent invocations
         ●   Stateful component needs to communicate its state
              information across all identical components within the
              cluster - State replication
Availability with a Cluster
Clustering with Apache Axis2

●The Web services engine has comprehensive
  SOA support
●Many other projects make use of Axis2

  clustering
    ●   Apache Synapse
    ●   WSO2 Carbon – The SOA Platform
Apache Axis2 Clustering
●Functionality is abstracted out by a set of
  interfaces
●Makes clustering pluggable

    ●   Implement provided interfaces
    ●   Configure implementation classes in the clustering
          configuration section of axis2.xml
Default clustering implementation in Axis2
●

    ●   Based on Apache Tribes
         ●   Group management framework used by Apache Tomcat
Axis2 Clustering API
Address 2 concerns
●

    ●   State replication
         ●   Synchronizing of states related to different members in
              a cluster group
    ●   Management
         ●   Group Management
         ●   Node Management
Axis2 Clustering Interfaces
●org.apache.axis2.clustering.ClusteringAgent
●org.apache.axis2.clustering.state.StateManager

●org.apache.axis2.clustering.management.NodeM

  anager
●org.apache.axis2.clustering.management.Group

  ManagementAgent
org.apache.axis2.clustering.Clus
             teringAgent
Responsible for initializing all clustering related
●

 functionalities of a node
    ●   Also responsible for getting the node to join the
          cluster
    ●   Node should not process any Web services requests
          until it successfully joins the cluster
    ●   Node will also need to obtain state information and/or
          configuration information from a neighboring node
         ●   To be in sync with the other members
         ●   Configuration changes might have taken place
org.apache.axis2.clustering.Cl
           usteringAgent
In axis2.xml, the instance of this interface is
●

  specified using the "clustering" class attribute.
org.apache.axis2.clustering.stat
           e.StateManager
●Responsible for handling state replication
●Property changes (state changes) in the Axis2

  context hierarchy in the node which runs this
  StateManager will be propagated to all other
  nodes in its group
●Generally, Web services authors do not have to

  handle state replication, as it is handled by the
  clustering implementation just before request
  completion.
org.apache.axis2.clustering.sta
               te.StateManager
●org.apache.axis2.clustering.state.Replicator#repli
    cate() can be called to force state replication.
●It is not mandatory to have a StateManager in a

    node
    ●   If we are not interested in high availability, the
           purpose of a cluster is to achieve scalability
    ●   Simply to utilize the group communication capabilities
           of the underlying Group Communication Framework
           (GCF)
         ●   The purpose of a clustered deployment may also be
              management of the cluster using the underlying GCF
         ●   WSO2 Carbon provides such a component which allows
              cluster management.
org.apache.axis2.clustering.sta
           te.StateManager
The implementation of this interface is set by
●

 reading the "stateManager" element in the
 axis2.xml clustering section.
org.apache.axis2.clustering.man
        agement.NodeManager
●Responsible for handling management of a
  particular member
●Not mandatory to have a NodeManager in a node

●Node management is generally used for

  deploying or undeploying services across a
  cluster group
●The implementation of this interface is set by

  reading the "nodeManager" element in the
  axis2.xml
org.apache.axis2.clustering.ma
    nagement.GroupManagementA
                gent
●Responsible for sending group management
  events and messages to members in a
  particular group
●Only used when a member is running in group

  management mode
Group Management Mode
●Member is special and belongs to all groups
   which it is managing
●Any membership changes will be notified by the

   underlying group management framework to
   the group management agent
●A group management agent should be specified

   for each group that has to be managed by the
   member
●In WSO2 Carbon cluster management, the

   cluster manager node needs to define group
   management agents for each group
Membership Schemes
●Static
●Dynamic

●Hybrid
Static Membership
●Only a defined set of members can be in a
  group
●Group Membership Service(GMS) will detect

  members joining or leaving the group
●External members cannot join the group

●Each node may obtain group member details

  from a central repository or configuration file
Dynamic Membership
●Membership is not predefined
●Members can join a group by specifying the

  appropriate group name, and also leave the
  group
●Group Management Service (GMS) will detect

  new members joining or leaving
●Group membership information may be obtained

  from the GMS
Hybrid Membership
There are a set of well-known members
●

    ●   Can consider these members as belonging to a static
         group
External members can join this group by notifying
●

 one of the well known members
    ●   These external members can then get the current
         group membership from this well-known member
●When new members join the group, well-known
  members will notify all other members
●When members leave the group, the GMS can

  detect this event
Load Balancing
Dynamic Load Balancing with
               ESB
●New members can join and leave the application
  group
●This will be reflected in the membership aware

  dynamic load balancer
●The clustering configuration for the dynamic load

  balancer needs to be configured with group
  management to allow group membership
  discovery
Apache Synapse/WSO2 ESB
  Config Sample LB endpoint

<endpoint name=”test-lb”>
  <session type=”soap”/>
  <loadbalance policy=”roundRobin”>
     <endpoint ..../>
       ..
     ..
  </loadbalance>
</endpoint>
Architecture
●   Stateless load balancing
    ●   LB algorithm implementation is pluggable
    ●   Built-in round robin algorithm
    ●   Can configure more advanced algorithms
        ●   e.g. Weighted round robin LB algorithm
State-full Session Aware Load
               Balancing
●   Transport and SOAP session




                   Load Balancer
Fail-Over with LB




     Load Balancer
LB and FO Groups




     Load Balancer
Dynamic LB




Load Balancer
Dynamic LB (Cntd..)




    Load Balancer
Scalability of WSO2 ESB
●   Can handle 2500 concurrent connections
●   Can handle 30M transactions per day
    ●   assumption: one transaction is one request for ESB
●   Non-blocking HTTP/S transport with message
    queuing and configurable thread pools
●   Different thread pools at the application layer
    and the I/O layer
Availability of WSO2 ESB
●   Availability can be achieved with the
    deployment
     ●   Two passive nodes with a given active node
●   Graceful shutdown and maintenance mode
     ●   Shutdown the listeners
     ●   Let the senders send out the responses after
         processing the already accepted messages
     ●   Shutdown the senders and the server or upgrade
         the system and restart the listener manager
●   Round robin restart of the cluster in active active deployment
Deployment diagram
Cloud Computing
Cloud Computing
Characteristics & Benefits to SOA
●

    ●   Auto-scaling (elasticity)
    ●   Multi-tenancy
    ●   Scalable parallel computing
    ●   Other benefits include
          ●   Cost savings by not peak provisioning
          ●   Faster deployment
          ●   Outsource non-core skills
          ●   Utility billing
AMIs for the Cloud
All WSO2 products would be available as
●

 AMIs soon
    ●   Compatible with Amazon EC2
    ●   Ready to be deployed
Auto Scaling - Elasticity
●Ability for the resources to be scaled up, and down, based on
   demand
●Enables efficient use of computer resources

     ●   No need to provision for maximum load
●   Requires application or middleware to do work to manage load
         –     Queue up incoming requests
         –     Distribute amongst available worker nodes
         –     Monitor queue length and adjust worker pool accordingly
Auto Scaling Services
WSO2 WSAS/ESB Approach
Auto Scaling Services
WSO2 WSAS/ESB Approach




                Load Increases
Auto Scaling Services
WSO2 WSAS/ESB Approach

                Startup new instances
Auto Scaling Services
WSO2 WSAS/ESB Approach

                New instances join group
Auto Scaling Services
WSO2 WSAS/ESB Approach

                 Load Decreases
Auto Scaling Services
WSO2 WSAS/ESB Approach

                Terminate instances
Summary
●  Enterprises thrive for scalability and availability
 ● Clustering provides us a perfect solution to

   meet enterprise demands
● Apache Axis2 clustering support is well designed

   and battle tested
     ●   Done by WSO2 team members
     ●   Used in almost all WSO2 products
Summary
●   ESB is a key element in SOA deployments
    when it comes to load balancing and fail over
       ●   WSO2 ESB is well equipped with these capabilities
●   Cloud computing is opening up new
     opportunities for SOA deployments
       ●   Auto scaling one of the key benefits
Resources
● Introduction to WSO2 Carbon Clustering -
     http://wso2.org/library/articles/introduction-wso2-carbon-clustering
● WSO2 Carbon Cluster Configuration Language -

     http://wso2.org/library/articles/wso2-carbon-cluster-configuration-language
● WSO2 ESB/Apache Synapse Clustering Guide -

     http://wso2.org/library/articles/wso2-esb-apache-synapse-clustering-guide
● Achieving Scalability and High Availability for Clustered Web Services using

     Apache Synapse -
     http://wso2.org/library/presentations/apachecon-eu-2009-achieving-scalability-hig
● Autoscaling Axis2 Web Services on Amazon EC2 -

     http://wso2.org/library/presentations/autoscaling-axis2-web-services-amazon-ec2
● Scalable SOA in Your Own Open Source Cloud -

     http://wso2.org/library/news/presentation-soa-symposium-scalable-soa-your-own-
Tell a Friend...
●   If you found this useful...
    ●   Give us your feedback
    ●   Blog
    ●   Tweet
    ●   Spread the word :)

More Related Content

What's hot

Galera cluster - SkySQL Paris Meetup 17.12.2013
Galera cluster - SkySQL Paris Meetup 17.12.2013Galera cluster - SkySQL Paris Meetup 17.12.2013
Galera cluster - SkySQL Paris Meetup 17.12.2013MariaDB Corporation
 
Introduction to Galera
Introduction to GaleraIntroduction to Galera
Introduction to GaleraHenrik Ingo
 
Galera Replication Demystified: How Does It Work?
Galera Replication Demystified: How Does It Work?Galera Replication Demystified: How Does It Work?
Galera Replication Demystified: How Does It Work?Frederic Descamps
 
Apache Helix DevOps & LSPE-IN Meetup
Apache Helix DevOps & LSPE-IN Meetup Apache Helix DevOps & LSPE-IN Meetup
Apache Helix DevOps & LSPE-IN Meetup Shahnawaz Saifi
 
Galera explained 3
Galera explained 3Galera explained 3
Galera explained 3Marco Tusa
 
Flex your Database on 12c's Flex ASM Flex Cluster
Flex your Database on 12c's Flex ASM Flex ClusterFlex your Database on 12c's Flex ASM Flex Cluster
Flex your Database on 12c's Flex ASM Flex ClusterALI ANWAR, OCP®
 
Buytaert kris my_sql-pacemaker
Buytaert kris my_sql-pacemakerBuytaert kris my_sql-pacemaker
Buytaert kris my_sql-pacemakerkuchinskaya
 
SUSE Manager with Salt - Deploy and Config Management for MariaDB
SUSE Manager with Salt - Deploy and Config Management for MariaDBSUSE Manager with Salt - Deploy and Config Management for MariaDB
SUSE Manager with Salt - Deploy and Config Management for MariaDBMariaDB plc
 
Introduction to the Incremental Cooperative Protocol of Kafka
Introduction to the Incremental Cooperative Protocol of KafkaIntroduction to the Incremental Cooperative Protocol of Kafka
Introduction to the Incremental Cooperative Protocol of KafkaGuozhang Wang
 
Percona XtraDB Cluster SF Meetup
Percona XtraDB Cluster SF MeetupPercona XtraDB Cluster SF Meetup
Percona XtraDB Cluster SF MeetupVadim Tkachenko
 
Using and Benchmarking Galera in different architectures (PLUK 2012)
Using and Benchmarking Galera in different architectures (PLUK 2012)Using and Benchmarking Galera in different architectures (PLUK 2012)
Using and Benchmarking Galera in different architectures (PLUK 2012)Henrik Ingo
 
合并到 XtraDB 存储引擎集群
合并到 XtraDB 存储引擎集群合并到 XtraDB 存储引擎集群
合并到 XtraDB 存储引擎集群YUCHENG HU
 
Solr Lucene Conference 2014 - Nitin Presentation
Solr Lucene Conference 2014 - Nitin PresentationSolr Lucene Conference 2014 - Nitin Presentation
Solr Lucene Conference 2014 - Nitin PresentationNitin Sharma
 
MariaDB High Availability Webinar
MariaDB High Availability WebinarMariaDB High Availability Webinar
MariaDB High Availability WebinarMariaDB plc
 
Yahoo: Experiences with MySQL GTID and Multi Threaded Replication
Yahoo: Experiences with MySQL GTID and Multi Threaded ReplicationYahoo: Experiences with MySQL GTID and Multi Threaded Replication
Yahoo: Experiences with MySQL GTID and Multi Threaded ReplicationYashada Jadhav
 
Running MariaDB in multiple data centers
Running MariaDB in multiple data centersRunning MariaDB in multiple data centers
Running MariaDB in multiple data centersMariaDB plc
 
MySQL HA with PaceMaker
MySQL HA with  PaceMakerMySQL HA with  PaceMaker
MySQL HA with PaceMakerKris Buytaert
 
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #7: ClusterControl
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #7: ClusterControlWebinar Slides: MySQL HA/DR/Geo-Scale - High Noon #7: ClusterControl
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #7: ClusterControlContinuent
 
Galera cluster for MySQL - Introduction Slides
Galera cluster for MySQL - Introduction SlidesGalera cluster for MySQL - Introduction Slides
Galera cluster for MySQL - Introduction SlidesSeveralnines
 

What's hot (20)

Galera cluster - SkySQL Paris Meetup 17.12.2013
Galera cluster - SkySQL Paris Meetup 17.12.2013Galera cluster - SkySQL Paris Meetup 17.12.2013
Galera cluster - SkySQL Paris Meetup 17.12.2013
 
Introduction to Galera
Introduction to GaleraIntroduction to Galera
Introduction to Galera
 
Galera Replication Demystified: How Does It Work?
Galera Replication Demystified: How Does It Work?Galera Replication Demystified: How Does It Work?
Galera Replication Demystified: How Does It Work?
 
Apache Helix DevOps & LSPE-IN Meetup
Apache Helix DevOps & LSPE-IN Meetup Apache Helix DevOps & LSPE-IN Meetup
Apache Helix DevOps & LSPE-IN Meetup
 
Galera explained 3
Galera explained 3Galera explained 3
Galera explained 3
 
Flex your Database on 12c's Flex ASM Flex Cluster
Flex your Database on 12c's Flex ASM Flex ClusterFlex your Database on 12c's Flex ASM Flex Cluster
Flex your Database on 12c's Flex ASM Flex Cluster
 
Buytaert kris my_sql-pacemaker
Buytaert kris my_sql-pacemakerBuytaert kris my_sql-pacemaker
Buytaert kris my_sql-pacemaker
 
SUSE Manager with Salt - Deploy and Config Management for MariaDB
SUSE Manager with Salt - Deploy and Config Management for MariaDBSUSE Manager with Salt - Deploy and Config Management for MariaDB
SUSE Manager with Salt - Deploy and Config Management for MariaDB
 
Introduction to the Incremental Cooperative Protocol of Kafka
Introduction to the Incremental Cooperative Protocol of KafkaIntroduction to the Incremental Cooperative Protocol of Kafka
Introduction to the Incremental Cooperative Protocol of Kafka
 
Percona XtraDB Cluster SF Meetup
Percona XtraDB Cluster SF MeetupPercona XtraDB Cluster SF Meetup
Percona XtraDB Cluster SF Meetup
 
Using and Benchmarking Galera in different architectures (PLUK 2012)
Using and Benchmarking Galera in different architectures (PLUK 2012)Using and Benchmarking Galera in different architectures (PLUK 2012)
Using and Benchmarking Galera in different architectures (PLUK 2012)
 
合并到 XtraDB 存储引擎集群
合并到 XtraDB 存储引擎集群合并到 XtraDB 存储引擎集群
合并到 XtraDB 存储引擎集群
 
Solr Lucene Conference 2014 - Nitin Presentation
Solr Lucene Conference 2014 - Nitin PresentationSolr Lucene Conference 2014 - Nitin Presentation
Solr Lucene Conference 2014 - Nitin Presentation
 
MariaDB High Availability Webinar
MariaDB High Availability WebinarMariaDB High Availability Webinar
MariaDB High Availability Webinar
 
Yahoo: Experiences with MySQL GTID and Multi Threaded Replication
Yahoo: Experiences with MySQL GTID and Multi Threaded ReplicationYahoo: Experiences with MySQL GTID and Multi Threaded Replication
Yahoo: Experiences with MySQL GTID and Multi Threaded Replication
 
Helix talk at RelateIQ
Helix talk at RelateIQHelix talk at RelateIQ
Helix talk at RelateIQ
 
Running MariaDB in multiple data centers
Running MariaDB in multiple data centersRunning MariaDB in multiple data centers
Running MariaDB in multiple data centers
 
MySQL HA with PaceMaker
MySQL HA with  PaceMakerMySQL HA with  PaceMaker
MySQL HA with PaceMaker
 
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #7: ClusterControl
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #7: ClusterControlWebinar Slides: MySQL HA/DR/Geo-Scale - High Noon #7: ClusterControl
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #7: ClusterControl
 
Galera cluster for MySQL - Introduction Slides
Galera cluster for MySQL - Introduction SlidesGalera cluster for MySQL - Introduction Slides
Galera cluster for MySQL - Introduction Slides
 

Similar to Scalable Soa

Do more with Galera Cluster in your OpenStack cloud
Do more with Galera Cluster in your OpenStack cloudDo more with Galera Cluster in your OpenStack cloud
Do more with Galera Cluster in your OpenStack cloudphilip_stoev
 
Comparison between zookeeper, etcd 3 and other distributed coordination systems
Comparison between zookeeper, etcd 3 and other distributed coordination systemsComparison between zookeeper, etcd 3 and other distributed coordination systems
Comparison between zookeeper, etcd 3 and other distributed coordination systemsImesha Sudasingha
 
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 PaaSJelastic Multi-Cloud PaaS
 
M|18 Choosing the Right High Availability Strategy for You
M|18 Choosing the Right High Availability Strategy for YouM|18 Choosing the Right High Availability Strategy for You
M|18 Choosing the Right High Availability Strategy for YouMariaDB plc
 
Divide and conquer: resource segregation in the OpenStack cloud
Divide and conquer: resource segregation in the OpenStack cloudDivide and conquer: resource segregation in the OpenStack cloud
Divide and conquer: resource segregation in the OpenStack cloudStephen Gordon
 
NetflixOSS Open House Lightning talks
NetflixOSS Open House Lightning talksNetflixOSS Open House Lightning talks
NetflixOSS Open House Lightning talksRuslan Meshenberg
 
MySQL High Availability Solutions
MySQL High Availability SolutionsMySQL High Availability Solutions
MySQL High Availability SolutionsLenz Grimmer
 
Mysqlhacodebits20091203 1260184765-phpapp02
Mysqlhacodebits20091203 1260184765-phpapp02Mysqlhacodebits20091203 1260184765-phpapp02
Mysqlhacodebits20091203 1260184765-phpapp02Louis liu
 
MySQL High Availability Solutions
MySQL High Availability SolutionsMySQL High Availability Solutions
MySQL High Availability SolutionsLenz Grimmer
 
Choosing the right high availability strategy
Choosing the right high availability strategyChoosing the right high availability strategy
Choosing the right high availability strategyMariaDB plc
 
Cassandra - A Decentralized Structured Storage System
Cassandra - A Decentralized Structured Storage SystemCassandra - A Decentralized Structured Storage System
Cassandra - A Decentralized Structured Storage SystemVarad Meru
 
JActor Cluster Platform
JActor Cluster PlatformJActor Cluster Platform
JActor Cluster PlatformBill La Forge
 

Similar to Scalable Soa (20)

Do more with Galera Cluster in your OpenStack cloud
Do more with Galera Cluster in your OpenStack cloudDo more with Galera Cluster in your OpenStack cloud
Do more with Galera Cluster in your OpenStack cloud
 
Megastore by Google
Megastore by GoogleMegastore by Google
Megastore by Google
 
Comparison between zookeeper, etcd 3 and other distributed coordination systems
Comparison between zookeeper, etcd 3 and other distributed coordination systemsComparison between zookeeper, etcd 3 and other distributed coordination systems
Comparison between zookeeper, etcd 3 and other distributed coordination systems
 
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
 
M|18 Choosing the Right High Availability Strategy for You
M|18 Choosing the Right High Availability Strategy for YouM|18 Choosing the Right High Availability Strategy for You
M|18 Choosing the Right High Availability Strategy for You
 
OpenShift Multicluster
OpenShift MulticlusterOpenShift Multicluster
OpenShift Multicluster
 
Akka Actors and Clustering
Akka Actors and ClusteringAkka Actors and Clustering
Akka Actors and Clustering
 
Divide and conquer: resource segregation in the OpenStack cloud
Divide and conquer: resource segregation in the OpenStack cloudDivide and conquer: resource segregation in the OpenStack cloud
Divide and conquer: resource segregation in the OpenStack cloud
 
Weblogic cluster
Weblogic clusterWeblogic cluster
Weblogic cluster
 
Weblogic cluster
Weblogic clusterWeblogic cluster
Weblogic cluster
 
Introduction to clarity
Introduction to clarityIntroduction to clarity
Introduction to clarity
 
NetflixOSS Open House Lightning talks
NetflixOSS Open House Lightning talksNetflixOSS Open House Lightning talks
NetflixOSS Open House Lightning talks
 
MySQL High Availability Solutions
MySQL High Availability SolutionsMySQL High Availability Solutions
MySQL High Availability Solutions
 
Mysqlhacodebits20091203 1260184765-phpapp02
Mysqlhacodebits20091203 1260184765-phpapp02Mysqlhacodebits20091203 1260184765-phpapp02
Mysqlhacodebits20091203 1260184765-phpapp02
 
MySQL High Availability Solutions
MySQL High Availability SolutionsMySQL High Availability Solutions
MySQL High Availability Solutions
 
SVCC-2014
SVCC-2014SVCC-2014
SVCC-2014
 
70 640 Lesson04 Ppt 041009
70 640 Lesson04 Ppt 04100970 640 Lesson04 Ppt 041009
70 640 Lesson04 Ppt 041009
 
Choosing the right high availability strategy
Choosing the right high availability strategyChoosing the right high availability strategy
Choosing the right high availability strategy
 
Cassandra - A Decentralized Structured Storage System
Cassandra - A Decentralized Structured Storage SystemCassandra - A Decentralized Structured Storage System
Cassandra - A Decentralized Structured Storage System
 
JActor Cluster Platform
JActor Cluster PlatformJActor Cluster Platform
JActor Cluster Platform
 

More from WSO2

WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2
 
WSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid EnvironmentsWSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid EnvironmentsWSO2
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
API Governance and Monetization - The evolution of API governance
API Governance and Monetization -  The evolution of API governanceAPI Governance and Monetization -  The evolution of API governance
API Governance and Monetization - The evolution of API governanceWSO2
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseWSO2
 
Mastering API Lifecycle: Design, Deployment, and Effective Consumption
Mastering API Lifecycle: Design, Deployment, and Effective ConsumptionMastering API Lifecycle: Design, Deployment, and Effective Consumption
Mastering API Lifecycle: Design, Deployment, and Effective ConsumptionWSO2
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringWSO2
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessWSO2
 
How to Create a Service in Choreo
How to Create a Service in ChoreoHow to Create a Service in Choreo
How to Create a Service in ChoreoWSO2
 
Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023WSO2
 
Platform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on AzurePlatform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on AzureWSO2
 
GartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdfGartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdfWSO2
 

More from WSO2 (20)

WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
 
WSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid EnvironmentsWSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid Environments
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - Kanchana
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
API Governance and Monetization - The evolution of API governance
API Governance and Monetization -  The evolution of API governanceAPI Governance and Monetization -  The evolution of API governance
API Governance and Monetization - The evolution of API governance
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern Enterprise
 
Mastering API Lifecycle: Design, Deployment, and Effective Consumption
Mastering API Lifecycle: Design, Deployment, and Effective ConsumptionMastering API Lifecycle: Design, Deployment, and Effective Consumption
Mastering API Lifecycle: Design, Deployment, and Effective Consumption
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software Engineering
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 
How to Create a Service in Choreo
How to Create a Service in ChoreoHow to Create a Service in Choreo
How to Create a Service in Choreo
 
Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023
 
Platform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on AzurePlatform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on Azure
 
GartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdfGartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdf
 

Recently uploaded

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 

Recently uploaded (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 

Scalable Soa

  • 1. Scalable SOA Samisa Abeysinghe WSO2 Summer School 2009
  • 3. Outline - 1 Introduction ● ● Scalability and Availability
  • 4. Outline - 2 Clustering ● ● Clustering Techniques ● Interfaces to be used ● Membership Schemes ● State Management ● Node Management ● Group Management ● Clustering Patterns
  • 5. Outline - 3 Load Balancing ● ● Stateless load balancing ● Stateful load balancing ● Load Balancing with fail over ● Dynamic load balancing
  • 6. Outline - 4 SOA in the cloud ● ● AMI deployments ● Auto Scaling
  • 8. Web services clustering ● Different servers providing the same service ● Group communication among the servers ● Shared resources for the cluster
  • 9. Motivation for Clustering ●Achieving high availability and scalability ●Enterprise Service Buses (ESB) ● De-facto standard for integrating autonomous entities ● Could become the bottleneck in the system ● High availability and high scalability critical ● Ability to cluster is an essential functionality for an ESB in a SOA deployment Service hosting engines ● ● Needs to be able to plug into clusters
  • 10. Scalability Ability to Handle growing amounts of work in a graceful manner Or Be readily enlarged
  • 11. Availability The degree to which a system, subsystem, or ● equipment is ● Operable and in a committable state at the start of a mission ● When the mission is called for at an unknown
  • 12. A Computer Cluster is... ●A group of coupled computers that works closely together ●As if they were a single computer
  • 13. Clustering Basics Members or nodes of a cluster ● ● Connected to each other through fast local area networks ● Redundant hardware and/or software resources ● Increase the availability and/or performance of the whole system Fault-tolerant components ● ● Share any existing state information among members ● Redundant component is able to take over the work of another
  • 15. Performance with a Cluster ●Install the software on different computers in your network ●Spread work amongst those ●Achieved using software or hardware load balancers ● Distribute incoming requests to different nodes of a cluster ● Based on a very simple or sophisticated strategy/algorithm ● Most common and the very basic strategy is round-robin
  • 16. Performance with a Cluster: Scaling Increasing the numbers of nodes in a cluster ● ● Decrease the average load on each node ● Able to handle more work in a given time period ● Scale to your performance requirements
  • 17. Scaling with a Cluster
  • 18. Availability with a Cluster ●Fault-tolerance and failover ●Component failures detected by the cluster ●Repeats the failed operation on an identical node residing in the cluster ● Request processed should be completely stateless ● Does not work if an operation is stateful ● The node is required to maintain state information between subsequent invocations ● Stateful component needs to communicate its state information across all identical components within the cluster - State replication
  • 20. Clustering with Apache Axis2 ●The Web services engine has comprehensive SOA support ●Many other projects make use of Axis2 clustering ● Apache Synapse ● WSO2 Carbon – The SOA Platform
  • 21. Apache Axis2 Clustering ●Functionality is abstracted out by a set of interfaces ●Makes clustering pluggable ● Implement provided interfaces ● Configure implementation classes in the clustering configuration section of axis2.xml Default clustering implementation in Axis2 ● ● Based on Apache Tribes ● Group management framework used by Apache Tomcat
  • 22. Axis2 Clustering API Address 2 concerns ● ● State replication ● Synchronizing of states related to different members in a cluster group ● Management ● Group Management ● Node Management
  • 24. org.apache.axis2.clustering.Clus teringAgent Responsible for initializing all clustering related ● functionalities of a node ● Also responsible for getting the node to join the cluster ● Node should not process any Web services requests until it successfully joins the cluster ● Node will also need to obtain state information and/or configuration information from a neighboring node ● To be in sync with the other members ● Configuration changes might have taken place
  • 25. org.apache.axis2.clustering.Cl usteringAgent In axis2.xml, the instance of this interface is ● specified using the "clustering" class attribute.
  • 26. org.apache.axis2.clustering.stat e.StateManager ●Responsible for handling state replication ●Property changes (state changes) in the Axis2 context hierarchy in the node which runs this StateManager will be propagated to all other nodes in its group ●Generally, Web services authors do not have to handle state replication, as it is handled by the clustering implementation just before request completion.
  • 27. org.apache.axis2.clustering.sta te.StateManager ●org.apache.axis2.clustering.state.Replicator#repli cate() can be called to force state replication. ●It is not mandatory to have a StateManager in a node ● If we are not interested in high availability, the purpose of a cluster is to achieve scalability ● Simply to utilize the group communication capabilities of the underlying Group Communication Framework (GCF) ● The purpose of a clustered deployment may also be management of the cluster using the underlying GCF ● WSO2 Carbon provides such a component which allows cluster management.
  • 28. org.apache.axis2.clustering.sta te.StateManager The implementation of this interface is set by ● reading the "stateManager" element in the axis2.xml clustering section.
  • 29. org.apache.axis2.clustering.man agement.NodeManager ●Responsible for handling management of a particular member ●Not mandatory to have a NodeManager in a node ●Node management is generally used for deploying or undeploying services across a cluster group ●The implementation of this interface is set by reading the "nodeManager" element in the axis2.xml
  • 30. org.apache.axis2.clustering.ma nagement.GroupManagementA gent ●Responsible for sending group management events and messages to members in a particular group ●Only used when a member is running in group management mode
  • 31. Group Management Mode ●Member is special and belongs to all groups which it is managing ●Any membership changes will be notified by the underlying group management framework to the group management agent ●A group management agent should be specified for each group that has to be managed by the member ●In WSO2 Carbon cluster management, the cluster manager node needs to define group management agents for each group
  • 33. Static Membership ●Only a defined set of members can be in a group ●Group Membership Service(GMS) will detect members joining or leaving the group ●External members cannot join the group ●Each node may obtain group member details from a central repository or configuration file
  • 34. Dynamic Membership ●Membership is not predefined ●Members can join a group by specifying the appropriate group name, and also leave the group ●Group Management Service (GMS) will detect new members joining or leaving ●Group membership information may be obtained from the GMS
  • 35. Hybrid Membership There are a set of well-known members ● ● Can consider these members as belonging to a static group External members can join this group by notifying ● one of the well known members ● These external members can then get the current group membership from this well-known member ●When new members join the group, well-known members will notify all other members ●When members leave the group, the GMS can detect this event
  • 37. Dynamic Load Balancing with ESB ●New members can join and leave the application group ●This will be reflected in the membership aware dynamic load balancer ●The clustering configuration for the dynamic load balancer needs to be configured with group management to allow group membership discovery
  • 38. Apache Synapse/WSO2 ESB Config Sample LB endpoint <endpoint name=”test-lb”> <session type=”soap”/> <loadbalance policy=”roundRobin”> <endpoint ..../> .. .. </loadbalance> </endpoint>
  • 39. Architecture ● Stateless load balancing ● LB algorithm implementation is pluggable ● Built-in round robin algorithm ● Can configure more advanced algorithms ● e.g. Weighted round robin LB algorithm
  • 40. State-full Session Aware Load Balancing ● Transport and SOAP session Load Balancer
  • 41. Fail-Over with LB Load Balancer
  • 42. LB and FO Groups Load Balancer
  • 44. Dynamic LB (Cntd..) Load Balancer
  • 45. Scalability of WSO2 ESB ● Can handle 2500 concurrent connections ● Can handle 30M transactions per day ● assumption: one transaction is one request for ESB ● Non-blocking HTTP/S transport with message queuing and configurable thread pools ● Different thread pools at the application layer and the I/O layer
  • 46. Availability of WSO2 ESB ● Availability can be achieved with the deployment ● Two passive nodes with a given active node ● Graceful shutdown and maintenance mode ● Shutdown the listeners ● Let the senders send out the responses after processing the already accepted messages ● Shutdown the senders and the server or upgrade the system and restart the listener manager ● Round robin restart of the cluster in active active deployment
  • 49. Cloud Computing Characteristics & Benefits to SOA ● ● Auto-scaling (elasticity) ● Multi-tenancy ● Scalable parallel computing ● Other benefits include ● Cost savings by not peak provisioning ● Faster deployment ● Outsource non-core skills ● Utility billing
  • 50. AMIs for the Cloud All WSO2 products would be available as ● AMIs soon ● Compatible with Amazon EC2 ● Ready to be deployed
  • 51. Auto Scaling - Elasticity ●Ability for the resources to be scaled up, and down, based on demand ●Enables efficient use of computer resources ● No need to provision for maximum load ● Requires application or middleware to do work to manage load – Queue up incoming requests – Distribute amongst available worker nodes – Monitor queue length and adjust worker pool accordingly
  • 52. Auto Scaling Services WSO2 WSAS/ESB Approach
  • 53. Auto Scaling Services WSO2 WSAS/ESB Approach Load Increases
  • 54. Auto Scaling Services WSO2 WSAS/ESB Approach Startup new instances
  • 55. Auto Scaling Services WSO2 WSAS/ESB Approach New instances join group
  • 56. Auto Scaling Services WSO2 WSAS/ESB Approach Load Decreases
  • 57. Auto Scaling Services WSO2 WSAS/ESB Approach Terminate instances
  • 58. Summary ● Enterprises thrive for scalability and availability ● Clustering provides us a perfect solution to meet enterprise demands ● Apache Axis2 clustering support is well designed and battle tested ● Done by WSO2 team members ● Used in almost all WSO2 products
  • 59. Summary ● ESB is a key element in SOA deployments when it comes to load balancing and fail over ● WSO2 ESB is well equipped with these capabilities ● Cloud computing is opening up new opportunities for SOA deployments ● Auto scaling one of the key benefits
  • 60. Resources ● Introduction to WSO2 Carbon Clustering - http://wso2.org/library/articles/introduction-wso2-carbon-clustering ● WSO2 Carbon Cluster Configuration Language - http://wso2.org/library/articles/wso2-carbon-cluster-configuration-language ● WSO2 ESB/Apache Synapse Clustering Guide - http://wso2.org/library/articles/wso2-esb-apache-synapse-clustering-guide ● Achieving Scalability and High Availability for Clustered Web Services using Apache Synapse - http://wso2.org/library/presentations/apachecon-eu-2009-achieving-scalability-hig ● Autoscaling Axis2 Web Services on Amazon EC2 - http://wso2.org/library/presentations/autoscaling-axis2-web-services-amazon-ec2 ● Scalable SOA in Your Own Open Source Cloud - http://wso2.org/library/news/presentation-soa-symposium-scalable-soa-your-own-
  • 61.
  • 62. Tell a Friend... ● If you found this useful... ● Give us your feedback ● Blog ● Tweet ● Spread the word :)