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.
4.
5. 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
6. 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.
8. 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
10. 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
12. 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
13. 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
14. 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)
15. 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