1 / 43

Auto-scaling Axis2 Web Services on Amazon EC2 By Afkham Azeez

Auto-scaling Axis2 Web Services on Amazon EC2 By Afkham Azeez. The Problem A Solution Some Concepts Design & Implementation Details. Overview. Fault tolerance, high availability & scalability are essential prerequisites for any enterprise application deployment

Download Presentation

Auto-scaling Axis2 Web Services on Amazon EC2 By Afkham Azeez

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Auto-scaling Axis2 Web Services on Amazon EC2 By Afkham Azeez

  2. The Problem A Solution Some Concepts Design & Implementation Details Overview

  3. Fault tolerance, high availability & scalability are essential prerequisites for any enterprise application deployment One of the major concerns is avoiding single points of failure There is a high cost associated with achieving high availability & scalability. The Problem

  4. Traditional solution Buying safety-net capacity Better solution Scale-up the system when the load increases Scale-down the system when the load decreases Should not have idling nodes Virtualization Pay only for the actual computing power & bandwidth utilized Solutions

  5. Building a framework which will auto-scale the number of Axis2 nodes on Amazon EC2, depending on the load This is a PoC Project Project Objective

  6. Amazon EC2 provides resizable compute capacity in the cloud Provides a simple Web service interface & tooling that allows one to obtain and configure capacity with ease & to build failure resilient applications Amazon EC2

  7. Axis2 is a middleware platform which enables hosting of Web service applications and supports some of the major Web services standards Can host Web services written in Java as well as various scripting languages Can be deployed in a clustered configuration Uses Apache Tribes for clustering Axis2 clustering can be adopted to work on EC2 Apache Axis2

  8. Apache Synapse is designed to be a simple, lightweight and high performance ESB Supports load balancing with or without failover Supports static & dynamic load balancing Uses Apache Axis2 Apache Synapse

  9. A messaging framework with group communication abilities Allows you to send and receive messages over a network, it also allows for dynamic discovery of other nodes in the network. Used by Apache Tomcat & Apache Axis2 Apache Tribes

  10. Deploying a Service on the Cloud AMI Instances

  11. Deploying a Service on the Cloud

  12. Deploying a Service on the Cloud

  13. Deploying a Service on the Cloud Service is available now

  14. Auto-scaling

  15. Auto-scaling Load Increases

  16. Auto-scaling Startup new instances

  17. Auto-scaling New instances join group

  18. Auto-scaling Load Decreases

  19. Auto-scaling Terminate instances

  20. Auto-scaling Terminate instances

  21. Deployment Architecture

  22. Membership Aware Dynamic Load Balancing (1/2)‏

  23. Membership Aware Dynamic Load Balancing (2/2)‏

  24. Membership Schemes Static Dynamic Hybrid (WKA based)‏

  25. WKA Based Membership (1/3)‏ Application member joins. The load balancer is also a well-known member

  26. WKA Based Membership (2/3)‏ A non-WK load balancer joins

  27. WKA Based Membership (3/3)‏ A well-known load balancer rejoins after crashing

  28. Membership Channel Architecture

  29. Initialization Channel Architecture

  30. Synapse Configuration - axis2.xml

  31. Synapse Configuration - synapse.xml

  32. Synapse Configuration AutoscaleInMediator AutoscaleOutMediator Autoscale Task

  33. Synapse Configuration Normal Flow IN From client To Axis2 AutoscaleInMediator SendMediator DynamicLoadbalanceEndpoint LoadAnalyzer Task To EC2 WS Invoke Get length EC2 Client MessageID List OUT To client From Axis2 SendMediator AutoscaleOutMediator Synapse

  34. Synapse Configuration Fault Flow IN From client To Axis2 AutoscaleInMediator SendMediator DynamicLoadbalanceEndpoint LoadAnalyzer Task Get length Invoke To EC2 WS EC2 Client MessageID List ErrorHandler From Axis2 To client SendMediator MakeFaultMediator AutoscaleOutMediator Synapse

  35. Synapse Autoscale Task

  36. Axis2 Configuration - axis2.xml

  37. Synapse Autoscale Task Sanity Check Autoscaling Scale up Scale down

  38. Implementation Details Single AMI – autoscalews Start ec2-run-instances ami-a03fdbc9 -k autoscale -f payload.zip -g autoscale-lb Payload Extract params from payload Env variables Axis2 & Synapse Configuration files & Repositories Maintained on S3 Fault Tolerance Monitoring cron job Java Service Wrapper daemons Future: Use monit Future: Axis2/Synapse agent to check process status

  39. Implementation Details Start Start Start Load configuration Start Initial Instance LB Group Axis2 App Group synapse.xml S3 Bucket

  40. Implementation Details Load repo Repo Axis2 Instance Conf Load configuration S3 Bucket

  41. TODO RightScale comparison Google App Engine comparison Eucalyptus AppScale Perf figures

  42. Questions Suggestions Improvements

  43. Thank You

More Related