Apache stratos (incubation) technical deep dive

20
Apache Stratos (Incubation) Technical Deep Dive by Lakmal Warusawithana 17th July 2013

description

Apache Stratos Architecture - 17th Jully 2013

Transcript of Apache stratos (incubation) technical deep dive

Page 1: Apache stratos (incubation) technical deep dive

Apache Stratos(Incubation)

Technical Deep Dive

by Lakmal Warusawithana17th July 2013

Page 2: Apache stratos (incubation) technical deep dive

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

Page 3: Apache stratos (incubation) technical deep dive
Page 4: Apache stratos (incubation) technical deep dive
Page 5: Apache stratos (incubation) technical deep dive

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

Page 6: Apache stratos (incubation) technical deep dive

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.

Page 7: Apache stratos (incubation) technical deep dive

CC - Component Architecture

Page 8: Apache stratos (incubation) technical deep dive

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

Page 9: Apache stratos (incubation) technical deep dive

Tenant-aware ELB cont....

Page 10: Apache stratos (incubation) technical deep dive

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

Page 11: Apache stratos (incubation) technical deep dive

Stratos 2.0 Cartridges

Page 12: Apache stratos (incubation) technical deep dive

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

Page 13: Apache stratos (incubation) technical deep dive

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

Page 14: Apache stratos (incubation) technical deep dive

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)

Page 15: Apache stratos (incubation) technical deep dive

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

Page 16: Apache stratos (incubation) technical deep dive
Page 17: Apache stratos (incubation) technical deep dive

Artifact Distribution Coordinator

Page 18: Apache stratos (incubation) technical deep dive

Puppet Based Cartridges

Page 19: Apache stratos (incubation) technical deep dive

Centralize Logging

Page 20: Apache stratos (incubation) technical deep dive

More info join

"[email protected]"