Successfully reported this slideshow.

Apache stratos (incubation) technical deep dive

7,523 views

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 http://myapp.php.stratos.com If the own domain he provide is myowndomain.com then his own domain url would be http://myowndomain.com
  14. 14. Artifact Distribution Coordinator
  15. 15. Puppet Based Cartridges
  16. 16. Centralize Logging
  17. 17. More info join "dev@stratos.incubator.apache.org"

×