Auto-scaling Axis2 Web Services
Download
1 / 43

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


  • 78 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Auto-scaling Axis2 Web Services on Amazon EC2 By Afkham Azeez' - cambree-jones


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

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

One of the major concerns is avoiding single points of failure

There is a high cost associated with achieving high availability & scalability.

The Problem


Traditional solution essential prerequisites for any enterprise application deployment

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


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


Amazon EC2 provides resizable compute capacity in the cloud Axis2 nodes on Amazon EC2, depending on the load

Provides a simple Web service interface & tooling that allows one to obtain and configure capacity with ease & to build failure resilient applications

Amazon EC2


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


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


A messaging framework with group communication abilities high performance ESB

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


Deploying a service on the cloud
Deploying a Service on the Cloud high performance ESB

AMI Instances


Deploying a service on the cloud1
Deploying a Service on the Cloud high performance ESB


Deploying a service on the cloud2
Deploying a Service on the Cloud high performance ESB


Deploying a service on the cloud3
Deploying a Service on the Cloud high performance ESB

Service is available now


Auto scaling
Auto-scaling high performance ESB


Auto scaling1
Auto-scaling high performance ESB

Load Increases


Auto scaling2
Auto-scaling high performance ESB

Startup new instances


Auto scaling3
Auto-scaling high performance ESB

New instances join group


Auto scaling4
Auto-scaling high performance ESB

Load Decreases


Auto scaling5
Auto-scaling high performance ESB

Terminate instances


Auto scaling6
Auto-scaling high performance ESB

Terminate instances


Deployment architecture
Deployment Architecture high performance ESB


Membership aware dynamic load balancing 1 2
Membership Aware Dynamic high performance ESBLoad Balancing (1/2)‏


Membership aware dynamic load balancing 2 2
Membership Aware Dynamic high performance ESBLoad Balancing (2/2)‏


Membership schemes
Membership Schemes high performance ESB

Static

Dynamic

Hybrid (WKA based)‏


Wka based membership 1 3
WKA Based Membership (1/3) high performance ESB‏

Application member joins. The load balancer is also a well-known member


Wka based membership 2 3
WKA Based Membership (2/3) high performance ESB‏

A non-WK load balancer joins


Wka based membership 3 3
WKA Based Membership (3/3) high performance ESB‏

A well-known load balancer rejoins after crashing


Membership channel architecture
Membership Channel Architecture high performance ESB



Synapse configuration axis2 xml
Synapse Configuration - axis2.xml high performance ESB



Synapse configuration
Synapse Configuration high performance ESB

AutoscaleInMediator

AutoscaleOutMediator

Autoscale Task


Synapse configuration1
Synapse Configuration high performance ESB

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


Synapse configuration2
Synapse Configuration high performance ESB

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


Synapse autoscale task
Synapse Autoscale Task high performance ESB


Axis2 configuration axis2 xml
Axis2 Configuration - axis2.xml high performance ESB


Synapse autoscale task1
Synapse Autoscale Task high performance ESB

Sanity Check

Autoscaling

Scale up

Scale down


Implementation details
Implementation Details high performance ESB

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


Implementation details1
Implementation Details high performance ESB

Start

Start

Start

Load configuration

Start

Initial Instance

LB Group

Axis2 App Group

synapse.xml

S3 Bucket


Implementation details2
Implementation Details high performance ESB

Load repo

Repo

Axis2 Instance

Conf

Load configuration

S3 Bucket


Todo rightscale comparison google app engine comparison eucalyptus appscale perf figures

TODO high performance ESB

RightScale comparison

Google App Engine comparison

Eucalyptus AppScale

Perf figures


Questions suggestions improvements

Questions high performance ESB

Suggestions

Improvements


Thank you

Thank You high performance ESB


ad