Successfully reported this slideshow.

Apache stratos (incubation) technical deep dive


Published on

Apache Stratos Architecture - 17th Jully 2013

Published in: Technology

Apache stratos (incubation) technical deep dive

  1. 1. Apache Stratos (Incubation) Technical Deep Dive by Lakmal Warusawithana 17th July 2013
  2. 2. What is Apache Stratos? ● A Platform-as-a-Service (PaaS) Framework ● Initially it was WSO2 Stratos, developed and maintained by WSO2. Recently donated to Apache and now it is in the incubation. ● Deploys onto an Infrastructure-as-a-Service (IaaS) Including Amazon EC2, VMWare vCloud, OpenStack...etc ● Creates a secure, multi-tenant, elastic, metered, billed PaaS ● Supports private, public or hybrid PaaS ● Can enable multiple flavours of PaaS: ● Application PaaS (aPaaS), Integration PaaS (iPaaS), Data PaaS (dPaaS), etc
  3. 3. Stratos Core Components ● Cloud Controller(CC): using jclouds creates/removes VM or LXC instances, based on input from ELB ● Elastic Load Balancer(ELB): distributes requests to the correct instances, based on tenant and load balance, including rewriting URLs ● Artifact Distribution Coordinator(ADC): responsible for distributing artifacts to relevant cartridge instances, which are then loaded by Deployment Synchronizer ● Management Console: allows control of all this by either Web UI or interactive command-line tooling ● Load Monitor: takes information on load from multiple sources
  4. 4. Cloud Controller ● Communicate to IaaS level jclouds API. ● Enables your system to scale across multiple IaaS providers ● Is the central location where the service topology resides ● Responsible for sharing the service topology among Stratos core services ● Supports hot update and deployment of its configuration files ● Currently tested with in AWS EC2, Openstack and vCloud ● Enables cloud burst your system across multiple IaaS providers.
  5. 5. CC - Component Architecture
  6. 6. Tenant-aware ELB ● Failover, auto-scaling and multi-tenancy ● Single load balancer route incoming requests to clusters of different services in a tenant-aware manner ● IaaS independent elasticity ● Simple textual configuration language ● Private Jet Mode for tenants ● Some tenants load to deploy in a single tenant mode ● Cloud Bursting to hybrid clouds
  7. 7. Tenant-aware ELB cont....
  8. 8. Stratos Cartridges ● A component which can be plugged into Stratos, so that it can use Stratos core services of the Foundation Layer ● Cloud-aware platform environment extending legacy technologies into the cloud and delivering cloud benefits ● Stratos operations teams may create custom cartridges and host any application, container, or framework in a Stratos Cloud. (Eg: A custom cartridge to bring cloud characteristics to IBM Websphere Application Server, IBM WebSphere ESB, Oracle WebLogic, or JBoss SOA Platform) ● Single tenant or multi-tenanted ● Process level isolation and instance-level dedicated tenancy
  9. 9. Stratos 2.0 Cartridges
  10. 10. Stratos Cartridges ● A cartridge is a package of code/configuration that plugs into Stratos to offer a new PaaS Service ● e.g. ESB cartridge plugs in to provide a Stratos ESB-as-a-Service ● PHP Cartridge plugs in to provide PHP-as-a-Service ● A cartridge is a VM image plus config
  11. 11. Cartridge Tenancy ● A cartridge can operate in two modes: ○ Single tenant ■ Stratos will run and manage a separate instance for each tenant ■ The PHP Cartridge runs this way ○ Multi-tenant ■ Stratos will run multiple instances partitioned so that sets of tenants run on sets of instances ■ Each instance of a Cartridge may run more than one tenant
  12. 12. User Roles involved in Cartridge Architecture ● Cartridge Creator ○ Understands the cartridge domain (e.g. PHP) plus Cartridge SPI ○ Creates image and configs (including for different IaaS) ● Cartridge Deployer (Stratos Admin/DevOps) ○ Registers cartridge with Stratos ● Cartridge Subscriber(Tenant Admin) ○ Subscribes to the cartridge with ○ Scaling parameters ○ Other resources such as persistent file system / DB ● Cartridge Users ○ Per-tenant users or developers ○ Access deployed applications ○ Upload applications to the cartridge (optional)
  13. 13. Custom Domain Mapping ● A tenant can have two types of domains for his applications Sub Domain Own Domain ● Suppose that a tenant is going to subscribe to an application called myapp Then his sub domain url would be If the own domain he provide is then his own domain url would be
  14. 14. Artifact Distribution Coordinator
  15. 15. Puppet Based Cartridges
  16. 16. Centralize Logging
  17. 17. More info join ""