Apache stratos (incubation) technical deep dive
-
Upload
lakmal-warusawithana -
Category
Technology
-
view
4.784 -
download
3
description
Transcript of Apache stratos (incubation) technical deep dive
Apache Stratos(Incubation)
Technical Deep Dive
by Lakmal Warusawithana17th July 2013
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
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
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.
CC - Component Architecture
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
Tenant-aware ELB cont....
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
Stratos 2.0 Cartridges
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
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
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)
Custom Domain Mapping● A tenant can have two types of domains for his applications
Sub DomainOwn 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.comthen his own domain url would be
http://myowndomain.com
Artifact Distribution Coordinator
Puppet Based Cartridges
Centralize Logging
More info join