Cloud controller Architecture in Apache stratos 4.0 incubation

445 views
328 views

Published on

This is the slides set which used in the hangout of Apache stratos on the topic Cloud Controller Architecture for Apache Stratos 4.0.0.

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
445
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Cloud controller Architecture in Apache stratos 4.0 incubation

  1. 1. Cloud Controller Architecture in Apache Stratos (incubation) 4.0.0 Reka Thirunavukkarasu Committer and PPMC Member Apache Stratos (Incubating) Software Engineer, WSO2 Inc 3rd of Dec 2013
  2. 2. Agenda ❖ Cloud Controller Architecture ❖ Topology handling publishing complete topology publishing all the events to topology ❖ Managing IaaS via jclouds Inbuilt support for AWS ec2, openstack and vcloud Ability to manage instances across different partitions(providers, regions and zones) Allow to plug any IaaS ❖ Building information model from Cartridge deployment partition Vs IaasProvider Subscription information Managing instances ❖ Partition validation ❖ Hot deployment for cloud-controller.xml and cartridge definition ❖ Persistence storage for complete Topology and for information model 2
  3. 3. Connected over the message bus 3
  4. 4. Cloud Controller Architecture 4
  5. 5. Topology {"serviceMap":{ "php":{ "serviceName":"php", "clusterMap":{ "phptest.qmog.apache.stratos.com.php.domain":{ "serviceName":"php", "clusterId":"test.apache.stratos.com.php.domain", "hostName":"phptest.apache.stratos.com", "tenantRange":"*", "autoscalePolicyName":"economyPolicy", "averageRequestsInFlight":0.0, "requestsInFlightSecondDerivative":0.0, "requestsInFlightGradient":0.0, "memberMap":{.......................... 5
  6. 6. Sample Topology "memberMap":{ "test.apache.stratos.com.php.domain48c5587e-d1e8-4873-92d4-d4dad67be96f":{ "serviceName":"php", "clusterId":"test.apache.stratos.com.php.domain ", "memberId":"t1.apache.stratos.com.domain48c5587e-d1e8-4873-92d4-d4dad67be96f", "status":"Activated", "loadAverage":0.0, "memoryConsumption":0.0, "memberIp":"172.16.2.20", "portMap":{ "http":{ "protocol":"http", "value":8282, "proxy":8280 } } } } } } 6
  7. 7. Topology Handling ➢ One only publisher for the Topology ➢ Receive all the events to Topology ➢ ➢ Publish events to Topology for subscribers to build the Topology Build it's own Topology and publish complete Topology periodically 7
  8. 8. Managing nodes via jclouds ➢ Inbuilt support for Aws ec2, openstack and vlcoud. ➢ Any IaaS can be plugged ➢ Improved IaaS layer support partitioning (provider, region, zone) support permanent storage for nodes (openstack-volume) 8
  9. 9. Information Model 9
  10. 10. Building Information Model ➢ Cartridge deployment ➢ Cloud-controller.xml deployment ➢ Subscription ➢ Autoscaling decision 10
  11. 11. Identifying the instance state ➢ Subscriber to the instance.status topic. instance.status 11
  12. 12. Partition Validation ➢ Partition gets validated in cloud controller ➢ Who defines the partition..? Autoscaler defines the partition <partitions> <partition id="P1"> <!-- prvider is a required element --> <provider>ec2</provider> <property name="region" value="ap-southeast-1"/> </partition> </partitions> ➢ Validate deployment policy Why policy needs a validation..? 12
  13. 13. Hot deployment ➢ Improved Cartridge schema support any transport in the cartridge definition dynamic payload handling ➢ Improved cloud-controller schema nothing much..! 13
  14. 14. Partition Vs IaaSProvider <iaasProvider type="openstack_region1" name="openstack specific details"> <className>org.wso2.carbon.stratos.cloud.controller.iaases.OpenstackNovaIaas</className> <provider>openstack-nova</provider> <identity svns:secretAlias="cloud.controller.openstack.identity">xxx:xxx</identity> <credential svns:secretAlias="cloud.controller.openstack.credential">xxxxxxx</credential> <property name="jclouds.endpoint" value="http://<xxxxx>:5000/v2.0" /> <property name="jclouds.openstack-nova.auto-create-floating-ips" value="false"/> <property name="jclouds.api-version" value="2.0/" /> </iaasProvider> <iaasProvider type="openstack_zone1" name="openstack specific details"> <className>org.wso2.carbon.stratos.cloud.controller.iaases.OpenstackNovaIaas</className> <provider>openstack-nova</provider> <identity svns:secretAlias="cloud.controller.openstack.identity">xxx:xxx</identity> <credential svns:secretAlias="cloud.controller.openstack.credential">xxxxxxx</credential> <property name="jclouds.endpoint" value="http://<xxxxx>:5000/v2.0" /> <property name="jclouds.openstack-nova.auto-create-floating-ips" value="false"/> <property name="jclouds.api-version" value="2.0/" /> </iaasProvider> 14
  15. 15. How the Topology and Information model persist? ➢ Using registry to persist the Topology and the information model 15
  16. 16. Thank you...! Questions...? 16

×