overview of apache stratos (incubation) 4.0 architecture
DESCRIPTION
TRANSCRIPT
Overview of Apache Stratos (Incubation) 4.0 Architecture
by Lakmal WarusawithanaCommitter, PPMC Member Apache Stratos (Incubating)
Software Architect , WSO2 Inc14th November 2013
Architecture, Design and Code Reviews
Date Description Owner
14th november
Discuss overall Stratos 4 architecture Lakmal
18th november
Load Balancer Imesh
21st november
Autoscaler Architecture Lahiru
25th november
Cloud Controller Reka
28th november
CEP Integration Nirmal
3rd december
Cartridge Agent Sajith
Architecture of Apache Stratos (Incubating) 4.0
USER -----create application-----> Stratos Manager
● select Cartridges and auto scaling policy and deployment policy for the application
● provide repository for the Application
● SM (Stratos Manager) will generate a “subscription key” for the subscription and store against the repository information
SM -----subscription details-----> Cloud Controller
● Pass subscription details (Cartridges+Policies+Subscription key) to CC (Cloud Controller) via a service call
CC ---publish to topology topic---> Message Broker
● create payload for the subscription. It will include○ subscription cluster id○ subscription key
● publish “cluster created” event to topology topic which include associated policy names
MB -----getting topology update-----> Auto Scaler● AS (Auto Scaler) already subscribed to topology topic.
● Received “cluster created” message, then update the current in memory topology inside the AS
● AS will evaluate the rules and send the decision to CC via service call
CC -----update topology-----> MB
● received the decision that send the auto scaler.
● CC update the payload with followings○ member_id○ MB and CEP service endpoints
● create instance via jclouds and pass the payload to instance
● update topology topic with “instance spawned”
Cartridge Agent -----instance_status topic-----> MB
● subscribe to depSync topic
● Publish “member started” event to instance_status, and wait
MB -----get instance_status-----> SM
● SM already subscribed to instance_status topic
● received the “member started” message
● send the depSync message, with encrypted repository information using previously generated “subscription key”
Cartridge Agent -----instance_status topic-----> MB
● receiving depSync message and decrypted repository information with “subscription key” and store in memory
● check and wait for all necessary applications to be started
● publish “member ready” event to instance_status topic with member information
● start cartridge heath publisher. publish periodic health stats to CEP via thrift
CC -----update topology-----> MB
● CC already subscribed to instance_status topic
● received “member ready” message
● publish “member activated” event to topology
MB -----update end-point members-----> LB
● LB already subscribe to topology topic
● received “member activated” message, then update in memory topology for relevant cluster
● update relevant cluster member list of the load balancing end point
Multifactor Auto Scaling
Support for External Load Balancers
Scalable Dynamic Load Balancing
● LB could be defined as a Cartridge
● Service Cluster or a group could defined its own LB
● Subscription can request a dedicate LB
● LB can auto scale
Scalable Dynamic Load Balancing
Smart Policies
● Ability to define Smart Policies○ High availability in multi-cloud○ Economy policy○ Failover policy○ High performance○ Dedicated resources
● Meet SLAs
● Policy could be define by DevOps
Cloud Bursting and Multi-cloud PaaS
Build in LXC Support
Composite Application Deployment
Thank you