Achieving Scalability and
   High Availability for
 clustered Web Services
 using Apache Synapse

 Ruwan Linton [ruwan@apa...
Contents
• Introduction
  – Apache Synapse
  – Web services clustering
  – Scalability/Availability in general
• Configura...
Contents (Cntd..)
• Architecture
  –   Stateless load balancing
  –   State full load balancing
  –   Load balancing with ...
Apache Synapse
• Open source ESB providing mediation
• Configurable via an XML info set
• Lightweight, asynchronous core w...
Synapse operational
         models
• Virtual Service (Proxy service) model
• Message mediation model
• Scheduled work
• E...
Virtual Services
Web services clustering
• Different servers
  providing the same
  service
• Group
  communication
  within the servers
• ...
Scalability


  Ability to either handle growing
amounts of work in a graceful manner,
     or to be readily enlarged
Availability


     The degree to which a system,
 subsystem, or equipment is operable
and in a committable state at the s...
Synapse Configuration
• Configure a proxy service as the virtual
  service for the cluster of services
  – wrapped with a ...
Sample proxy

<proxy name=”foo”>
 <target inSequence=”ref-seq”>
   <endpoint>
     <address uri=”http://host/service”/>
  ...
Synapse Config (Cntd..)
• Endpoint configuration of the proxy
  – 5 types with 3 primitive and 2 secondary
  – wrapped wit...
Sample LB endpoint
<endpoint name=”test-lb”>
  <session type=”soap”/>
  <loadbalance policy=”roundRobin”>
     <endpoint ....
Architecture
• Stateless load balancing
  – LB algorithm implementation is
    pluggable
  – Built in round robin algorith...
State full session aware
       load balancing
• Transport and SOAP session
• Client initiated vs Server initiated
Fail over with LB
LB and FO groups
Dynamic LB
Dynamic LB (Cntd..)
Scalability of Synapse
• Can handle 2500 concurrent connections
• Can handle 30M transactions per day
  – assumption: one ...
Availability of Synapse
• Availability can be achieved with the
  deployment
  – Two passive nodes with a given active nod...
Deployment diagram
Analogy
• Isn't it just shifting the scalability and
  availability to synapse layer?
   – Yes it is... but if you look at...
Analogy (Cntd..)
• Once you have the auto scaling
  implemented the dynamic load balancing
  functionality fits with this ...
More..
• Throttling and caching at the
  Synapse layer
  – Concurrency throttling handles the
    scalability gracefully b...
Summary
• Synapse load balancing and fail over
  routing can be used to achieve high
  availability of the web services
• ...
Thank You!



 Questions??
Aceu2009 Synapse Scalability Availability
Upcoming SlideShare
Loading in …5
×

Aceu2009 Synapse Scalability Availability

2,663 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,663
On SlideShare
0
From Embeds
0
Number of Embeds
409
Actions
Shares
0
Downloads
57
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Aceu2009 Synapse Scalability Availability

  1. 1. Achieving Scalability and High Availability for clustered Web Services using Apache Synapse Ruwan Linton [ruwan@apache.org] WSO2 Inc.
  2. 2. Contents • Introduction – Apache Synapse – Web services clustering – Scalability/Availability in general • Configuration – Proxy Service – Load balance and Fail over endpoints
  3. 3. Contents (Cntd..) • Architecture – Stateless load balancing – State full load balancing – Load balancing with fail over – Dynamic load balancing • Deployment
  4. 4. Apache Synapse • Open source ESB providing mediation • Configurable via an XML info set • Lightweight, asynchronous core with streaming in the HTTP/S transports • Extensible with scripts, or Java • Can act as a front server for the web service infrastructure with load balancing, fail over and various mediation capabilities
  5. 5. Synapse operational models • Virtual Service (Proxy service) model • Message mediation model • Scheduled work • Event driven architecture (Event broker)
  6. 6. Virtual Services
  7. 7. Web services clustering • Different servers providing the same service • Group communication within the servers • Shared resources for the cluster
  8. 8. Scalability Ability to either handle growing amounts of work in a graceful manner, or to be readily enlarged
  9. 9. 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
  10. 10. Synapse Configuration • Configure a proxy service as the virtual service for the cluster of services – wrapped with a <proxy> element – declare an incoming/outgoing mediation – declare the endpoint – configure any quality of service improvements
  11. 11. Sample proxy <proxy name=”foo”> <target inSequence=”ref-seq”> <endpoint> <address uri=”http://host/service”/> </endpoint> <target> </proxy>
  12. 12. Synapse Config (Cntd..) • Endpoint configuration of the proxy – 5 types with 3 primitive and 2 secondary – wrapped with an <endpoint> element – declare the actual endpoint properties – and any optimizations
  13. 13. Sample LB endpoint <endpoint name=”test-lb”> <session type=”soap”/> <loadbalance policy=”roundRobin”> <endpoint ..../> .. .. </loadbalance> </endpoint>
  14. 14. Architecture • Stateless load balancing – LB algorithm implementation is pluggable – Built in round robin algorithm – Weighted LB algorithm
  15. 15. State full session aware load balancing • Transport and SOAP session • Client initiated vs Server initiated
  16. 16. Fail over with LB
  17. 17. LB and FO groups
  18. 18. Dynamic LB
  19. 19. Dynamic LB (Cntd..)
  20. 20. Scalability of Synapse • Can handle 2500 concurrent connections • Can handle 30M transactions per day – assumption: one transaction is one request for Synapse • Non-blocking HTTP/S transport with message queuing with a configurable thread pools • Different thread pool at the application layer and the I/O layer
  21. 21. Availability of Synapse • Availability can be achieved with the deployment – Two passive nodes with a given active node in vertically • 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 and restart the listener manager • Round robin restart of the cluster in active active deployment
  22. 22. Deployment diagram
  23. 23. Analogy • Isn't it just shifting the scalability and availability to synapse layer? – Yes it is... but if you look at the availability and scalability of a typical web service hosting environment and synapse with the non blocking HTTP/S it is much scalable and available than the service hosting environment – Fail over and Load balancing ability of synapse increases the availability and scalability of web services in the cluster
  24. 24. Analogy (Cntd..) • Once you have the auto scaling implemented the dynamic load balancing functionality fits with this nicely to achieve the scalability into great extent • You get many other features with Synapse as the load balancer like session aware load balancing at the SOAP session
  25. 25. More.. • Throttling and caching at the Synapse layer – Concurrency throttling handles the scalability gracefully by rejecting the messages – Caching improves the availability • Fault tolerance through a fault handling mechanism
  26. 26. Summary • Synapse load balancing and fail over routing can be used to achieve high availability of the web services • Synapse is scalable with the non locking transport and streaming • Session aware load balancing on SOAP message is an added advantage of using synapse • Availability of the web services can be achieved with the the correct deployment with synapse
  27. 27. Thank You! Questions??

×