advanced use cases and approaches with stratos paa s

32
@pzfreo #wso2 Advanced Use Cases and Approaches with WSO2 Stratos Paul Fremantle CTO and Co-Founder www.wso2.com [email protected]

Upload: wso2

Post on 10-May-2015

1.125 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Advanced Use Cases and Approaches with WSO2 Stratos

Paul Fremantle

CTO and Co-Founder wwwwso2com

paulwso2com

pzfreo wso2

Agenda

bull This is a follow on to the presentation I gave at Qcon

ndash httpfreomexhHmkP

bull Quick recap

bull Understanding the system architecture of Stratos

ndash Identity model

ndash Multi-tenancy

ndash Elastic Load Balancer

bull How do new Services fit in

bull How can I multi-tenant existing code

bull Integrating development management into Stratos

bull Advanced use cases

bull Summary

2

pzfreo wso2

What should you take away from this presentation

bull What are Stratos and StratosLive

bull How can I try out Stratos

ndash On the Web

ndash On your machine

bull How can I extend Stratos

bull Where can an extensible open PaaS give me competitive advantage

bull Where can I get more information

3

pzfreo wso2

Moorersquos Law for Data

bull The amount of data online went from

ndash 5 exabytes in 2002

ndash 281 exabytes in 2009

bull Doubling every 15 months

bull You cannot deal with this data growth with the same applications

ndash A reasonable conclusion is that the number of applications will double every 15 months too

pzfreo wso2

Stratos Overview

bull Stratos ndash an Open Source project product ndash A full middleware platform available as a service with

self service bull Fast provisioning

ndash Based on OSGi bull Modular componentized standard

ndash Multi-tenant Elastic Metered and Billed bull Effective and powerful

ndash Available under the Apache License bull Open Source Open License Open Development

bull StratosLive ndash a Platform-as-a-Service ndash Stratos running in the cloud with various plans

bull Including a free demo plan

pzfreo wso2

Stratos resources

bull Running on the web

ndash httpstratoslivewso2com

bull Stratos SVN

ndash httpsvnwso2orgreposwso2trunkstratos

bull Stratos-dev list

ndash httpsmailwso2orgcgi-binmailmanlistinfostratos-dev

bull Blog on how to build install

ndash httpyumaniblogspotcom201106setting-up-wso2-stratos-in-personalhtml

6

pzfreo wso2

Private Cloud Middleware Platform

pzfreo wso2

StratosLive vs Stratos

bull StratosLive contains all the ldquoServicesrdquo in a default vanilla state

bull Stratos can contain

ndash More services

bull eg New services you create

ndash Fewer services

bull eg just ASDSS

ndash Customized deployments of services

bull eg ready configured with libraries APIs host objects

8

pzfreo wso2

Installation options

bull 1 Full installation (like StratosLive)

ndash Pre-reqs

bull IaaS ndash Eucalyptus vmWare Ubuntu or Amazon

bull MySQL amp Perl amp JVM

bull Ability to run a number of VMs (one per service)

bull 2 LaptopSimple install (on my laptop)

ndash Pre-reqs

bull A machine with lots of memory (4Gb min 8GB preferred)

bull JVM

bull MySQL amp Perl

9

pzfreo wso2

Examples and Case Studies

bull System Integrator

ndash Currently running Stratos for internal projects

ndash Examining the use of Stratos for customer projects and SaaS

bull Home Loan Bank

ndash WSO2 runs a private deployment of Stratos

ndash Developer sandbox and test environment

ndash Currently apps are then deployed internally in Carbon

bull Ecosystem PaaS ndash Combination of cross tenant services APIs

ndash Allow each tenant to deploy customise the logic

bull Mobile PaaS

ndash Building a PaaS environment for a mobile telco

bull SaaS-enablement of legacy applications

pzfreo wso2

ESB and PaaS example

Internet Gateway

(WSO2 ESB providing

Traffic shaping

QoS and LB)

Core ESB

Tenant App

Tenant App

Tenant App

TenantApp

Core Services

pzfreo wso2

Available Services in Stratos (a selection)

12

pzfreo wso2

Every Service has a network API

bull All admin functions and all the low level services are available as SOAP APIs

ndash Full SOAP support REST in some cases

ndash Always possible to bridge into REST using the ESB

bull Why

ndash Clear SOA design bull Allow mashups BPEL and ESB integration

ndash Automated provisioning

ndash Support hybrid multi-tenancy models for legacy software

13

pzfreo wso2

Multi-tenancy

bull Every service can support multiple tenants in the same container ndash Higher efficiency lower resources

ndash Can be split tenant per-VM using the MT-aware Load Balancer

bull Isolation includes classloaders code signing and Java security policies ndash Cross-tenant sharing is via the network (REST SOAP etc)

bull Every tenant has all services by default but they can be turned off

bull You can deploy webapps that are available to all tenants ndash Super Tenant mode

14

pzfreo wso2

Carbon Context

bull orgwso2carboncontextCarbonContext

bull Access to

ndash UserRealm (Identity)

ndash Registry

ndash Cache (JSR107)

ndash Endpoint Discovery

bull All within the correct environment for the tenant or within a super-tenant environment

15

pzfreo wso2

Stratos 152 Services

copy WSO2 2011

pzfreo wso2

What is a ldquoStratos Servicerdquo

bull A cluster of one or more network-available servers

ndash could be VMs or JVMs or Linux partitions

ndash Each cluster can logically handle all tenants bull Maybe that there is partitioning by tenant or group of tenants

ndash Should support SAML2 single-sign on bull Identity is used to identify which tenant

bull Can be elastically scaled

ndash Not a hard requirement

ndash Elasticity and Multi-tenancy are orthogonal

17

pzfreo wso2

List of Stratos Services

bull cloud-services-descxml ltcloudServices xmlns=httpwso2comcarboncloudmgtservicesgt

ltcloudService name=WSO2 Stratos Enterprise Service Bus default=truegt

ltlabelgtStratos Enterprise Service Busltlabelgt

ltlinkgthttpsesbcloud-testwso2com9452ltlinkgt

lticongt

httpscloud-testwso2com9443cloud-services-iconsesbgif

lticongt

ltproductPageURLgthttpwso2comproductsenterprise-service-busltproductPageURLgt

ltdescriptiongtEnterprise Service Bus in the cloudltdescriptiongt

ltcloudServicegt

hellip

bull The Registry is used to manage which tenants have access to which services ndash Eg _systemgovernancerepositorycomponentsorgwso2stratoscloud-

managercloud-services27WSO2 Stratos Enterprise Service Bus

18

pzfreo wso2

Elastic Auto-Scaling

bull The WSO2 Elastic Load Balancer is a key part of the Stratos infrastructure

ndash Tenant Self-registration self-deployment and multi-tenancy could lead to a lot of work on a single server

ndash The Stratos multi-tenancy approach is designed to support the ldquolong-tailrdquo

19

pzfreo wso2

Elastic Load Balancer

20

pzfreo wso2

Stratos Elastic Load Balancer

bull A custom deployment of Synapse tuned for passthru proxying and performance

bull Currently supports EC2 APIs

ndash Amazon Eucalyptus OpenStack with vmWare and Rackspace in plan

bull There is a base AMI ID and a per-service payload zip

ndash ELB starts the AMI on a new VM by passing a payloadzip

ndash - Payload contains S3 credentials information about Product to be

ndash deployed configuration files locations etc

ndash AMI downloads the payloadzip

ndash AMI connects to S3 using credentials downloads the service binary from S3 and config files using information from payloadzip

bull Autoscaling is currently based on concurrent message load

ndash Extensible model

ndash Looking at using wider metering results

21

pzfreo wso2

Example of a new Service

bull PHP Services (in progress) ndash Using chroot environments

bull Also looking at LXC (httplxcsourceforgenet)

bull A lightweight model for virtualizationtenant separation

bull Each tenant runs on a different ip+port on the server ndash httpphpstratosyourcomtfremantleorgapp

bull is URL rewritten to

ndash httpipportapp

bull The PHP environment uses the Identity Server and Registry

ndash Provide a store for code

ndash Tenant identity and authorization model

bull This will be extended to become a full SPI (Service Provider Interface) to plug in any new non-Java Service

22

pzfreo wso2

Adding multi-tenancy to existing apps

bull Start with the PHP Service model

bull Add in

ndash HDFS support (multi-tenant filesystem)

ndash RSS support (multi-tenant JDBCRDBMS)

ndash Multi-tenant Logging model

bull Can be syslog-based logging calls

ndash Elastic scaling

ndash Metering and Billing calls

bull Optional ndash but useful

bull Multi-language Thrift API

23

pzfreo wso2

Integrating Development Management into Stratos

bull The Stratos Service model is very extensible and flexible

ndash Eg Dev Staging Production can be different ldquoStratos Servicesrdquo

ndash Use Registry lifecycles or BPEL to manage the workflow lifecycle of code into those Services

24

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 2: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Agenda

bull This is a follow on to the presentation I gave at Qcon

ndash httpfreomexhHmkP

bull Quick recap

bull Understanding the system architecture of Stratos

ndash Identity model

ndash Multi-tenancy

ndash Elastic Load Balancer

bull How do new Services fit in

bull How can I multi-tenant existing code

bull Integrating development management into Stratos

bull Advanced use cases

bull Summary

2

pzfreo wso2

What should you take away from this presentation

bull What are Stratos and StratosLive

bull How can I try out Stratos

ndash On the Web

ndash On your machine

bull How can I extend Stratos

bull Where can an extensible open PaaS give me competitive advantage

bull Where can I get more information

3

pzfreo wso2

Moorersquos Law for Data

bull The amount of data online went from

ndash 5 exabytes in 2002

ndash 281 exabytes in 2009

bull Doubling every 15 months

bull You cannot deal with this data growth with the same applications

ndash A reasonable conclusion is that the number of applications will double every 15 months too

pzfreo wso2

Stratos Overview

bull Stratos ndash an Open Source project product ndash A full middleware platform available as a service with

self service bull Fast provisioning

ndash Based on OSGi bull Modular componentized standard

ndash Multi-tenant Elastic Metered and Billed bull Effective and powerful

ndash Available under the Apache License bull Open Source Open License Open Development

bull StratosLive ndash a Platform-as-a-Service ndash Stratos running in the cloud with various plans

bull Including a free demo plan

pzfreo wso2

Stratos resources

bull Running on the web

ndash httpstratoslivewso2com

bull Stratos SVN

ndash httpsvnwso2orgreposwso2trunkstratos

bull Stratos-dev list

ndash httpsmailwso2orgcgi-binmailmanlistinfostratos-dev

bull Blog on how to build install

ndash httpyumaniblogspotcom201106setting-up-wso2-stratos-in-personalhtml

6

pzfreo wso2

Private Cloud Middleware Platform

pzfreo wso2

StratosLive vs Stratos

bull StratosLive contains all the ldquoServicesrdquo in a default vanilla state

bull Stratos can contain

ndash More services

bull eg New services you create

ndash Fewer services

bull eg just ASDSS

ndash Customized deployments of services

bull eg ready configured with libraries APIs host objects

8

pzfreo wso2

Installation options

bull 1 Full installation (like StratosLive)

ndash Pre-reqs

bull IaaS ndash Eucalyptus vmWare Ubuntu or Amazon

bull MySQL amp Perl amp JVM

bull Ability to run a number of VMs (one per service)

bull 2 LaptopSimple install (on my laptop)

ndash Pre-reqs

bull A machine with lots of memory (4Gb min 8GB preferred)

bull JVM

bull MySQL amp Perl

9

pzfreo wso2

Examples and Case Studies

bull System Integrator

ndash Currently running Stratos for internal projects

ndash Examining the use of Stratos for customer projects and SaaS

bull Home Loan Bank

ndash WSO2 runs a private deployment of Stratos

ndash Developer sandbox and test environment

ndash Currently apps are then deployed internally in Carbon

bull Ecosystem PaaS ndash Combination of cross tenant services APIs

ndash Allow each tenant to deploy customise the logic

bull Mobile PaaS

ndash Building a PaaS environment for a mobile telco

bull SaaS-enablement of legacy applications

pzfreo wso2

ESB and PaaS example

Internet Gateway

(WSO2 ESB providing

Traffic shaping

QoS and LB)

Core ESB

Tenant App

Tenant App

Tenant App

TenantApp

Core Services

pzfreo wso2

Available Services in Stratos (a selection)

12

pzfreo wso2

Every Service has a network API

bull All admin functions and all the low level services are available as SOAP APIs

ndash Full SOAP support REST in some cases

ndash Always possible to bridge into REST using the ESB

bull Why

ndash Clear SOA design bull Allow mashups BPEL and ESB integration

ndash Automated provisioning

ndash Support hybrid multi-tenancy models for legacy software

13

pzfreo wso2

Multi-tenancy

bull Every service can support multiple tenants in the same container ndash Higher efficiency lower resources

ndash Can be split tenant per-VM using the MT-aware Load Balancer

bull Isolation includes classloaders code signing and Java security policies ndash Cross-tenant sharing is via the network (REST SOAP etc)

bull Every tenant has all services by default but they can be turned off

bull You can deploy webapps that are available to all tenants ndash Super Tenant mode

14

pzfreo wso2

Carbon Context

bull orgwso2carboncontextCarbonContext

bull Access to

ndash UserRealm (Identity)

ndash Registry

ndash Cache (JSR107)

ndash Endpoint Discovery

bull All within the correct environment for the tenant or within a super-tenant environment

15

pzfreo wso2

Stratos 152 Services

copy WSO2 2011

pzfreo wso2

What is a ldquoStratos Servicerdquo

bull A cluster of one or more network-available servers

ndash could be VMs or JVMs or Linux partitions

ndash Each cluster can logically handle all tenants bull Maybe that there is partitioning by tenant or group of tenants

ndash Should support SAML2 single-sign on bull Identity is used to identify which tenant

bull Can be elastically scaled

ndash Not a hard requirement

ndash Elasticity and Multi-tenancy are orthogonal

17

pzfreo wso2

List of Stratos Services

bull cloud-services-descxml ltcloudServices xmlns=httpwso2comcarboncloudmgtservicesgt

ltcloudService name=WSO2 Stratos Enterprise Service Bus default=truegt

ltlabelgtStratos Enterprise Service Busltlabelgt

ltlinkgthttpsesbcloud-testwso2com9452ltlinkgt

lticongt

httpscloud-testwso2com9443cloud-services-iconsesbgif

lticongt

ltproductPageURLgthttpwso2comproductsenterprise-service-busltproductPageURLgt

ltdescriptiongtEnterprise Service Bus in the cloudltdescriptiongt

ltcloudServicegt

hellip

bull The Registry is used to manage which tenants have access to which services ndash Eg _systemgovernancerepositorycomponentsorgwso2stratoscloud-

managercloud-services27WSO2 Stratos Enterprise Service Bus

18

pzfreo wso2

Elastic Auto-Scaling

bull The WSO2 Elastic Load Balancer is a key part of the Stratos infrastructure

ndash Tenant Self-registration self-deployment and multi-tenancy could lead to a lot of work on a single server

ndash The Stratos multi-tenancy approach is designed to support the ldquolong-tailrdquo

19

pzfreo wso2

Elastic Load Balancer

20

pzfreo wso2

Stratos Elastic Load Balancer

bull A custom deployment of Synapse tuned for passthru proxying and performance

bull Currently supports EC2 APIs

ndash Amazon Eucalyptus OpenStack with vmWare and Rackspace in plan

bull There is a base AMI ID and a per-service payload zip

ndash ELB starts the AMI on a new VM by passing a payloadzip

ndash - Payload contains S3 credentials information about Product to be

ndash deployed configuration files locations etc

ndash AMI downloads the payloadzip

ndash AMI connects to S3 using credentials downloads the service binary from S3 and config files using information from payloadzip

bull Autoscaling is currently based on concurrent message load

ndash Extensible model

ndash Looking at using wider metering results

21

pzfreo wso2

Example of a new Service

bull PHP Services (in progress) ndash Using chroot environments

bull Also looking at LXC (httplxcsourceforgenet)

bull A lightweight model for virtualizationtenant separation

bull Each tenant runs on a different ip+port on the server ndash httpphpstratosyourcomtfremantleorgapp

bull is URL rewritten to

ndash httpipportapp

bull The PHP environment uses the Identity Server and Registry

ndash Provide a store for code

ndash Tenant identity and authorization model

bull This will be extended to become a full SPI (Service Provider Interface) to plug in any new non-Java Service

22

pzfreo wso2

Adding multi-tenancy to existing apps

bull Start with the PHP Service model

bull Add in

ndash HDFS support (multi-tenant filesystem)

ndash RSS support (multi-tenant JDBCRDBMS)

ndash Multi-tenant Logging model

bull Can be syslog-based logging calls

ndash Elastic scaling

ndash Metering and Billing calls

bull Optional ndash but useful

bull Multi-language Thrift API

23

pzfreo wso2

Integrating Development Management into Stratos

bull The Stratos Service model is very extensible and flexible

ndash Eg Dev Staging Production can be different ldquoStratos Servicesrdquo

ndash Use Registry lifecycles or BPEL to manage the workflow lifecycle of code into those Services

24

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 3: Advanced use cases and approaches with stratos paa s

pzfreo wso2

What should you take away from this presentation

bull What are Stratos and StratosLive

bull How can I try out Stratos

ndash On the Web

ndash On your machine

bull How can I extend Stratos

bull Where can an extensible open PaaS give me competitive advantage

bull Where can I get more information

3

pzfreo wso2

Moorersquos Law for Data

bull The amount of data online went from

ndash 5 exabytes in 2002

ndash 281 exabytes in 2009

bull Doubling every 15 months

bull You cannot deal with this data growth with the same applications

ndash A reasonable conclusion is that the number of applications will double every 15 months too

pzfreo wso2

Stratos Overview

bull Stratos ndash an Open Source project product ndash A full middleware platform available as a service with

self service bull Fast provisioning

ndash Based on OSGi bull Modular componentized standard

ndash Multi-tenant Elastic Metered and Billed bull Effective and powerful

ndash Available under the Apache License bull Open Source Open License Open Development

bull StratosLive ndash a Platform-as-a-Service ndash Stratos running in the cloud with various plans

bull Including a free demo plan

pzfreo wso2

Stratos resources

bull Running on the web

ndash httpstratoslivewso2com

bull Stratos SVN

ndash httpsvnwso2orgreposwso2trunkstratos

bull Stratos-dev list

ndash httpsmailwso2orgcgi-binmailmanlistinfostratos-dev

bull Blog on how to build install

ndash httpyumaniblogspotcom201106setting-up-wso2-stratos-in-personalhtml

6

pzfreo wso2

Private Cloud Middleware Platform

pzfreo wso2

StratosLive vs Stratos

bull StratosLive contains all the ldquoServicesrdquo in a default vanilla state

bull Stratos can contain

ndash More services

bull eg New services you create

ndash Fewer services

bull eg just ASDSS

ndash Customized deployments of services

bull eg ready configured with libraries APIs host objects

8

pzfreo wso2

Installation options

bull 1 Full installation (like StratosLive)

ndash Pre-reqs

bull IaaS ndash Eucalyptus vmWare Ubuntu or Amazon

bull MySQL amp Perl amp JVM

bull Ability to run a number of VMs (one per service)

bull 2 LaptopSimple install (on my laptop)

ndash Pre-reqs

bull A machine with lots of memory (4Gb min 8GB preferred)

bull JVM

bull MySQL amp Perl

9

pzfreo wso2

Examples and Case Studies

bull System Integrator

ndash Currently running Stratos for internal projects

ndash Examining the use of Stratos for customer projects and SaaS

bull Home Loan Bank

ndash WSO2 runs a private deployment of Stratos

ndash Developer sandbox and test environment

ndash Currently apps are then deployed internally in Carbon

bull Ecosystem PaaS ndash Combination of cross tenant services APIs

ndash Allow each tenant to deploy customise the logic

bull Mobile PaaS

ndash Building a PaaS environment for a mobile telco

bull SaaS-enablement of legacy applications

pzfreo wso2

ESB and PaaS example

Internet Gateway

(WSO2 ESB providing

Traffic shaping

QoS and LB)

Core ESB

Tenant App

Tenant App

Tenant App

TenantApp

Core Services

pzfreo wso2

Available Services in Stratos (a selection)

12

pzfreo wso2

Every Service has a network API

bull All admin functions and all the low level services are available as SOAP APIs

ndash Full SOAP support REST in some cases

ndash Always possible to bridge into REST using the ESB

bull Why

ndash Clear SOA design bull Allow mashups BPEL and ESB integration

ndash Automated provisioning

ndash Support hybrid multi-tenancy models for legacy software

13

pzfreo wso2

Multi-tenancy

bull Every service can support multiple tenants in the same container ndash Higher efficiency lower resources

ndash Can be split tenant per-VM using the MT-aware Load Balancer

bull Isolation includes classloaders code signing and Java security policies ndash Cross-tenant sharing is via the network (REST SOAP etc)

bull Every tenant has all services by default but they can be turned off

bull You can deploy webapps that are available to all tenants ndash Super Tenant mode

14

pzfreo wso2

Carbon Context

bull orgwso2carboncontextCarbonContext

bull Access to

ndash UserRealm (Identity)

ndash Registry

ndash Cache (JSR107)

ndash Endpoint Discovery

bull All within the correct environment for the tenant or within a super-tenant environment

15

pzfreo wso2

Stratos 152 Services

copy WSO2 2011

pzfreo wso2

What is a ldquoStratos Servicerdquo

bull A cluster of one or more network-available servers

ndash could be VMs or JVMs or Linux partitions

ndash Each cluster can logically handle all tenants bull Maybe that there is partitioning by tenant or group of tenants

ndash Should support SAML2 single-sign on bull Identity is used to identify which tenant

bull Can be elastically scaled

ndash Not a hard requirement

ndash Elasticity and Multi-tenancy are orthogonal

17

pzfreo wso2

List of Stratos Services

bull cloud-services-descxml ltcloudServices xmlns=httpwso2comcarboncloudmgtservicesgt

ltcloudService name=WSO2 Stratos Enterprise Service Bus default=truegt

ltlabelgtStratos Enterprise Service Busltlabelgt

ltlinkgthttpsesbcloud-testwso2com9452ltlinkgt

lticongt

httpscloud-testwso2com9443cloud-services-iconsesbgif

lticongt

ltproductPageURLgthttpwso2comproductsenterprise-service-busltproductPageURLgt

ltdescriptiongtEnterprise Service Bus in the cloudltdescriptiongt

ltcloudServicegt

hellip

bull The Registry is used to manage which tenants have access to which services ndash Eg _systemgovernancerepositorycomponentsorgwso2stratoscloud-

managercloud-services27WSO2 Stratos Enterprise Service Bus

18

pzfreo wso2

Elastic Auto-Scaling

bull The WSO2 Elastic Load Balancer is a key part of the Stratos infrastructure

ndash Tenant Self-registration self-deployment and multi-tenancy could lead to a lot of work on a single server

ndash The Stratos multi-tenancy approach is designed to support the ldquolong-tailrdquo

19

pzfreo wso2

Elastic Load Balancer

20

pzfreo wso2

Stratos Elastic Load Balancer

bull A custom deployment of Synapse tuned for passthru proxying and performance

bull Currently supports EC2 APIs

ndash Amazon Eucalyptus OpenStack with vmWare and Rackspace in plan

bull There is a base AMI ID and a per-service payload zip

ndash ELB starts the AMI on a new VM by passing a payloadzip

ndash - Payload contains S3 credentials information about Product to be

ndash deployed configuration files locations etc

ndash AMI downloads the payloadzip

ndash AMI connects to S3 using credentials downloads the service binary from S3 and config files using information from payloadzip

bull Autoscaling is currently based on concurrent message load

ndash Extensible model

ndash Looking at using wider metering results

21

pzfreo wso2

Example of a new Service

bull PHP Services (in progress) ndash Using chroot environments

bull Also looking at LXC (httplxcsourceforgenet)

bull A lightweight model for virtualizationtenant separation

bull Each tenant runs on a different ip+port on the server ndash httpphpstratosyourcomtfremantleorgapp

bull is URL rewritten to

ndash httpipportapp

bull The PHP environment uses the Identity Server and Registry

ndash Provide a store for code

ndash Tenant identity and authorization model

bull This will be extended to become a full SPI (Service Provider Interface) to plug in any new non-Java Service

22

pzfreo wso2

Adding multi-tenancy to existing apps

bull Start with the PHP Service model

bull Add in

ndash HDFS support (multi-tenant filesystem)

ndash RSS support (multi-tenant JDBCRDBMS)

ndash Multi-tenant Logging model

bull Can be syslog-based logging calls

ndash Elastic scaling

ndash Metering and Billing calls

bull Optional ndash but useful

bull Multi-language Thrift API

23

pzfreo wso2

Integrating Development Management into Stratos

bull The Stratos Service model is very extensible and flexible

ndash Eg Dev Staging Production can be different ldquoStratos Servicesrdquo

ndash Use Registry lifecycles or BPEL to manage the workflow lifecycle of code into those Services

24

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 4: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Moorersquos Law for Data

bull The amount of data online went from

ndash 5 exabytes in 2002

ndash 281 exabytes in 2009

bull Doubling every 15 months

bull You cannot deal with this data growth with the same applications

ndash A reasonable conclusion is that the number of applications will double every 15 months too

pzfreo wso2

Stratos Overview

bull Stratos ndash an Open Source project product ndash A full middleware platform available as a service with

self service bull Fast provisioning

ndash Based on OSGi bull Modular componentized standard

ndash Multi-tenant Elastic Metered and Billed bull Effective and powerful

ndash Available under the Apache License bull Open Source Open License Open Development

bull StratosLive ndash a Platform-as-a-Service ndash Stratos running in the cloud with various plans

bull Including a free demo plan

pzfreo wso2

Stratos resources

bull Running on the web

ndash httpstratoslivewso2com

bull Stratos SVN

ndash httpsvnwso2orgreposwso2trunkstratos

bull Stratos-dev list

ndash httpsmailwso2orgcgi-binmailmanlistinfostratos-dev

bull Blog on how to build install

ndash httpyumaniblogspotcom201106setting-up-wso2-stratos-in-personalhtml

6

pzfreo wso2

Private Cloud Middleware Platform

pzfreo wso2

StratosLive vs Stratos

bull StratosLive contains all the ldquoServicesrdquo in a default vanilla state

bull Stratos can contain

ndash More services

bull eg New services you create

ndash Fewer services

bull eg just ASDSS

ndash Customized deployments of services

bull eg ready configured with libraries APIs host objects

8

pzfreo wso2

Installation options

bull 1 Full installation (like StratosLive)

ndash Pre-reqs

bull IaaS ndash Eucalyptus vmWare Ubuntu or Amazon

bull MySQL amp Perl amp JVM

bull Ability to run a number of VMs (one per service)

bull 2 LaptopSimple install (on my laptop)

ndash Pre-reqs

bull A machine with lots of memory (4Gb min 8GB preferred)

bull JVM

bull MySQL amp Perl

9

pzfreo wso2

Examples and Case Studies

bull System Integrator

ndash Currently running Stratos for internal projects

ndash Examining the use of Stratos for customer projects and SaaS

bull Home Loan Bank

ndash WSO2 runs a private deployment of Stratos

ndash Developer sandbox and test environment

ndash Currently apps are then deployed internally in Carbon

bull Ecosystem PaaS ndash Combination of cross tenant services APIs

ndash Allow each tenant to deploy customise the logic

bull Mobile PaaS

ndash Building a PaaS environment for a mobile telco

bull SaaS-enablement of legacy applications

pzfreo wso2

ESB and PaaS example

Internet Gateway

(WSO2 ESB providing

Traffic shaping

QoS and LB)

Core ESB

Tenant App

Tenant App

Tenant App

TenantApp

Core Services

pzfreo wso2

Available Services in Stratos (a selection)

12

pzfreo wso2

Every Service has a network API

bull All admin functions and all the low level services are available as SOAP APIs

ndash Full SOAP support REST in some cases

ndash Always possible to bridge into REST using the ESB

bull Why

ndash Clear SOA design bull Allow mashups BPEL and ESB integration

ndash Automated provisioning

ndash Support hybrid multi-tenancy models for legacy software

13

pzfreo wso2

Multi-tenancy

bull Every service can support multiple tenants in the same container ndash Higher efficiency lower resources

ndash Can be split tenant per-VM using the MT-aware Load Balancer

bull Isolation includes classloaders code signing and Java security policies ndash Cross-tenant sharing is via the network (REST SOAP etc)

bull Every tenant has all services by default but they can be turned off

bull You can deploy webapps that are available to all tenants ndash Super Tenant mode

14

pzfreo wso2

Carbon Context

bull orgwso2carboncontextCarbonContext

bull Access to

ndash UserRealm (Identity)

ndash Registry

ndash Cache (JSR107)

ndash Endpoint Discovery

bull All within the correct environment for the tenant or within a super-tenant environment

15

pzfreo wso2

Stratos 152 Services

copy WSO2 2011

pzfreo wso2

What is a ldquoStratos Servicerdquo

bull A cluster of one or more network-available servers

ndash could be VMs or JVMs or Linux partitions

ndash Each cluster can logically handle all tenants bull Maybe that there is partitioning by tenant or group of tenants

ndash Should support SAML2 single-sign on bull Identity is used to identify which tenant

bull Can be elastically scaled

ndash Not a hard requirement

ndash Elasticity and Multi-tenancy are orthogonal

17

pzfreo wso2

List of Stratos Services

bull cloud-services-descxml ltcloudServices xmlns=httpwso2comcarboncloudmgtservicesgt

ltcloudService name=WSO2 Stratos Enterprise Service Bus default=truegt

ltlabelgtStratos Enterprise Service Busltlabelgt

ltlinkgthttpsesbcloud-testwso2com9452ltlinkgt

lticongt

httpscloud-testwso2com9443cloud-services-iconsesbgif

lticongt

ltproductPageURLgthttpwso2comproductsenterprise-service-busltproductPageURLgt

ltdescriptiongtEnterprise Service Bus in the cloudltdescriptiongt

ltcloudServicegt

hellip

bull The Registry is used to manage which tenants have access to which services ndash Eg _systemgovernancerepositorycomponentsorgwso2stratoscloud-

managercloud-services27WSO2 Stratos Enterprise Service Bus

18

pzfreo wso2

Elastic Auto-Scaling

bull The WSO2 Elastic Load Balancer is a key part of the Stratos infrastructure

ndash Tenant Self-registration self-deployment and multi-tenancy could lead to a lot of work on a single server

ndash The Stratos multi-tenancy approach is designed to support the ldquolong-tailrdquo

19

pzfreo wso2

Elastic Load Balancer

20

pzfreo wso2

Stratos Elastic Load Balancer

bull A custom deployment of Synapse tuned for passthru proxying and performance

bull Currently supports EC2 APIs

ndash Amazon Eucalyptus OpenStack with vmWare and Rackspace in plan

bull There is a base AMI ID and a per-service payload zip

ndash ELB starts the AMI on a new VM by passing a payloadzip

ndash - Payload contains S3 credentials information about Product to be

ndash deployed configuration files locations etc

ndash AMI downloads the payloadzip

ndash AMI connects to S3 using credentials downloads the service binary from S3 and config files using information from payloadzip

bull Autoscaling is currently based on concurrent message load

ndash Extensible model

ndash Looking at using wider metering results

21

pzfreo wso2

Example of a new Service

bull PHP Services (in progress) ndash Using chroot environments

bull Also looking at LXC (httplxcsourceforgenet)

bull A lightweight model for virtualizationtenant separation

bull Each tenant runs on a different ip+port on the server ndash httpphpstratosyourcomtfremantleorgapp

bull is URL rewritten to

ndash httpipportapp

bull The PHP environment uses the Identity Server and Registry

ndash Provide a store for code

ndash Tenant identity and authorization model

bull This will be extended to become a full SPI (Service Provider Interface) to plug in any new non-Java Service

22

pzfreo wso2

Adding multi-tenancy to existing apps

bull Start with the PHP Service model

bull Add in

ndash HDFS support (multi-tenant filesystem)

ndash RSS support (multi-tenant JDBCRDBMS)

ndash Multi-tenant Logging model

bull Can be syslog-based logging calls

ndash Elastic scaling

ndash Metering and Billing calls

bull Optional ndash but useful

bull Multi-language Thrift API

23

pzfreo wso2

Integrating Development Management into Stratos

bull The Stratos Service model is very extensible and flexible

ndash Eg Dev Staging Production can be different ldquoStratos Servicesrdquo

ndash Use Registry lifecycles or BPEL to manage the workflow lifecycle of code into those Services

24

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 5: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Stratos Overview

bull Stratos ndash an Open Source project product ndash A full middleware platform available as a service with

self service bull Fast provisioning

ndash Based on OSGi bull Modular componentized standard

ndash Multi-tenant Elastic Metered and Billed bull Effective and powerful

ndash Available under the Apache License bull Open Source Open License Open Development

bull StratosLive ndash a Platform-as-a-Service ndash Stratos running in the cloud with various plans

bull Including a free demo plan

pzfreo wso2

Stratos resources

bull Running on the web

ndash httpstratoslivewso2com

bull Stratos SVN

ndash httpsvnwso2orgreposwso2trunkstratos

bull Stratos-dev list

ndash httpsmailwso2orgcgi-binmailmanlistinfostratos-dev

bull Blog on how to build install

ndash httpyumaniblogspotcom201106setting-up-wso2-stratos-in-personalhtml

6

pzfreo wso2

Private Cloud Middleware Platform

pzfreo wso2

StratosLive vs Stratos

bull StratosLive contains all the ldquoServicesrdquo in a default vanilla state

bull Stratos can contain

ndash More services

bull eg New services you create

ndash Fewer services

bull eg just ASDSS

ndash Customized deployments of services

bull eg ready configured with libraries APIs host objects

8

pzfreo wso2

Installation options

bull 1 Full installation (like StratosLive)

ndash Pre-reqs

bull IaaS ndash Eucalyptus vmWare Ubuntu or Amazon

bull MySQL amp Perl amp JVM

bull Ability to run a number of VMs (one per service)

bull 2 LaptopSimple install (on my laptop)

ndash Pre-reqs

bull A machine with lots of memory (4Gb min 8GB preferred)

bull JVM

bull MySQL amp Perl

9

pzfreo wso2

Examples and Case Studies

bull System Integrator

ndash Currently running Stratos for internal projects

ndash Examining the use of Stratos for customer projects and SaaS

bull Home Loan Bank

ndash WSO2 runs a private deployment of Stratos

ndash Developer sandbox and test environment

ndash Currently apps are then deployed internally in Carbon

bull Ecosystem PaaS ndash Combination of cross tenant services APIs

ndash Allow each tenant to deploy customise the logic

bull Mobile PaaS

ndash Building a PaaS environment for a mobile telco

bull SaaS-enablement of legacy applications

pzfreo wso2

ESB and PaaS example

Internet Gateway

(WSO2 ESB providing

Traffic shaping

QoS and LB)

Core ESB

Tenant App

Tenant App

Tenant App

TenantApp

Core Services

pzfreo wso2

Available Services in Stratos (a selection)

12

pzfreo wso2

Every Service has a network API

bull All admin functions and all the low level services are available as SOAP APIs

ndash Full SOAP support REST in some cases

ndash Always possible to bridge into REST using the ESB

bull Why

ndash Clear SOA design bull Allow mashups BPEL and ESB integration

ndash Automated provisioning

ndash Support hybrid multi-tenancy models for legacy software

13

pzfreo wso2

Multi-tenancy

bull Every service can support multiple tenants in the same container ndash Higher efficiency lower resources

ndash Can be split tenant per-VM using the MT-aware Load Balancer

bull Isolation includes classloaders code signing and Java security policies ndash Cross-tenant sharing is via the network (REST SOAP etc)

bull Every tenant has all services by default but they can be turned off

bull You can deploy webapps that are available to all tenants ndash Super Tenant mode

14

pzfreo wso2

Carbon Context

bull orgwso2carboncontextCarbonContext

bull Access to

ndash UserRealm (Identity)

ndash Registry

ndash Cache (JSR107)

ndash Endpoint Discovery

bull All within the correct environment for the tenant or within a super-tenant environment

15

pzfreo wso2

Stratos 152 Services

copy WSO2 2011

pzfreo wso2

What is a ldquoStratos Servicerdquo

bull A cluster of one or more network-available servers

ndash could be VMs or JVMs or Linux partitions

ndash Each cluster can logically handle all tenants bull Maybe that there is partitioning by tenant or group of tenants

ndash Should support SAML2 single-sign on bull Identity is used to identify which tenant

bull Can be elastically scaled

ndash Not a hard requirement

ndash Elasticity and Multi-tenancy are orthogonal

17

pzfreo wso2

List of Stratos Services

bull cloud-services-descxml ltcloudServices xmlns=httpwso2comcarboncloudmgtservicesgt

ltcloudService name=WSO2 Stratos Enterprise Service Bus default=truegt

ltlabelgtStratos Enterprise Service Busltlabelgt

ltlinkgthttpsesbcloud-testwso2com9452ltlinkgt

lticongt

httpscloud-testwso2com9443cloud-services-iconsesbgif

lticongt

ltproductPageURLgthttpwso2comproductsenterprise-service-busltproductPageURLgt

ltdescriptiongtEnterprise Service Bus in the cloudltdescriptiongt

ltcloudServicegt

hellip

bull The Registry is used to manage which tenants have access to which services ndash Eg _systemgovernancerepositorycomponentsorgwso2stratoscloud-

managercloud-services27WSO2 Stratos Enterprise Service Bus

18

pzfreo wso2

Elastic Auto-Scaling

bull The WSO2 Elastic Load Balancer is a key part of the Stratos infrastructure

ndash Tenant Self-registration self-deployment and multi-tenancy could lead to a lot of work on a single server

ndash The Stratos multi-tenancy approach is designed to support the ldquolong-tailrdquo

19

pzfreo wso2

Elastic Load Balancer

20

pzfreo wso2

Stratos Elastic Load Balancer

bull A custom deployment of Synapse tuned for passthru proxying and performance

bull Currently supports EC2 APIs

ndash Amazon Eucalyptus OpenStack with vmWare and Rackspace in plan

bull There is a base AMI ID and a per-service payload zip

ndash ELB starts the AMI on a new VM by passing a payloadzip

ndash - Payload contains S3 credentials information about Product to be

ndash deployed configuration files locations etc

ndash AMI downloads the payloadzip

ndash AMI connects to S3 using credentials downloads the service binary from S3 and config files using information from payloadzip

bull Autoscaling is currently based on concurrent message load

ndash Extensible model

ndash Looking at using wider metering results

21

pzfreo wso2

Example of a new Service

bull PHP Services (in progress) ndash Using chroot environments

bull Also looking at LXC (httplxcsourceforgenet)

bull A lightweight model for virtualizationtenant separation

bull Each tenant runs on a different ip+port on the server ndash httpphpstratosyourcomtfremantleorgapp

bull is URL rewritten to

ndash httpipportapp

bull The PHP environment uses the Identity Server and Registry

ndash Provide a store for code

ndash Tenant identity and authorization model

bull This will be extended to become a full SPI (Service Provider Interface) to plug in any new non-Java Service

22

pzfreo wso2

Adding multi-tenancy to existing apps

bull Start with the PHP Service model

bull Add in

ndash HDFS support (multi-tenant filesystem)

ndash RSS support (multi-tenant JDBCRDBMS)

ndash Multi-tenant Logging model

bull Can be syslog-based logging calls

ndash Elastic scaling

ndash Metering and Billing calls

bull Optional ndash but useful

bull Multi-language Thrift API

23

pzfreo wso2

Integrating Development Management into Stratos

bull The Stratos Service model is very extensible and flexible

ndash Eg Dev Staging Production can be different ldquoStratos Servicesrdquo

ndash Use Registry lifecycles or BPEL to manage the workflow lifecycle of code into those Services

24

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 6: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Stratos resources

bull Running on the web

ndash httpstratoslivewso2com

bull Stratos SVN

ndash httpsvnwso2orgreposwso2trunkstratos

bull Stratos-dev list

ndash httpsmailwso2orgcgi-binmailmanlistinfostratos-dev

bull Blog on how to build install

ndash httpyumaniblogspotcom201106setting-up-wso2-stratos-in-personalhtml

6

pzfreo wso2

Private Cloud Middleware Platform

pzfreo wso2

StratosLive vs Stratos

bull StratosLive contains all the ldquoServicesrdquo in a default vanilla state

bull Stratos can contain

ndash More services

bull eg New services you create

ndash Fewer services

bull eg just ASDSS

ndash Customized deployments of services

bull eg ready configured with libraries APIs host objects

8

pzfreo wso2

Installation options

bull 1 Full installation (like StratosLive)

ndash Pre-reqs

bull IaaS ndash Eucalyptus vmWare Ubuntu or Amazon

bull MySQL amp Perl amp JVM

bull Ability to run a number of VMs (one per service)

bull 2 LaptopSimple install (on my laptop)

ndash Pre-reqs

bull A machine with lots of memory (4Gb min 8GB preferred)

bull JVM

bull MySQL amp Perl

9

pzfreo wso2

Examples and Case Studies

bull System Integrator

ndash Currently running Stratos for internal projects

ndash Examining the use of Stratos for customer projects and SaaS

bull Home Loan Bank

ndash WSO2 runs a private deployment of Stratos

ndash Developer sandbox and test environment

ndash Currently apps are then deployed internally in Carbon

bull Ecosystem PaaS ndash Combination of cross tenant services APIs

ndash Allow each tenant to deploy customise the logic

bull Mobile PaaS

ndash Building a PaaS environment for a mobile telco

bull SaaS-enablement of legacy applications

pzfreo wso2

ESB and PaaS example

Internet Gateway

(WSO2 ESB providing

Traffic shaping

QoS and LB)

Core ESB

Tenant App

Tenant App

Tenant App

TenantApp

Core Services

pzfreo wso2

Available Services in Stratos (a selection)

12

pzfreo wso2

Every Service has a network API

bull All admin functions and all the low level services are available as SOAP APIs

ndash Full SOAP support REST in some cases

ndash Always possible to bridge into REST using the ESB

bull Why

ndash Clear SOA design bull Allow mashups BPEL and ESB integration

ndash Automated provisioning

ndash Support hybrid multi-tenancy models for legacy software

13

pzfreo wso2

Multi-tenancy

bull Every service can support multiple tenants in the same container ndash Higher efficiency lower resources

ndash Can be split tenant per-VM using the MT-aware Load Balancer

bull Isolation includes classloaders code signing and Java security policies ndash Cross-tenant sharing is via the network (REST SOAP etc)

bull Every tenant has all services by default but they can be turned off

bull You can deploy webapps that are available to all tenants ndash Super Tenant mode

14

pzfreo wso2

Carbon Context

bull orgwso2carboncontextCarbonContext

bull Access to

ndash UserRealm (Identity)

ndash Registry

ndash Cache (JSR107)

ndash Endpoint Discovery

bull All within the correct environment for the tenant or within a super-tenant environment

15

pzfreo wso2

Stratos 152 Services

copy WSO2 2011

pzfreo wso2

What is a ldquoStratos Servicerdquo

bull A cluster of one or more network-available servers

ndash could be VMs or JVMs or Linux partitions

ndash Each cluster can logically handle all tenants bull Maybe that there is partitioning by tenant or group of tenants

ndash Should support SAML2 single-sign on bull Identity is used to identify which tenant

bull Can be elastically scaled

ndash Not a hard requirement

ndash Elasticity and Multi-tenancy are orthogonal

17

pzfreo wso2

List of Stratos Services

bull cloud-services-descxml ltcloudServices xmlns=httpwso2comcarboncloudmgtservicesgt

ltcloudService name=WSO2 Stratos Enterprise Service Bus default=truegt

ltlabelgtStratos Enterprise Service Busltlabelgt

ltlinkgthttpsesbcloud-testwso2com9452ltlinkgt

lticongt

httpscloud-testwso2com9443cloud-services-iconsesbgif

lticongt

ltproductPageURLgthttpwso2comproductsenterprise-service-busltproductPageURLgt

ltdescriptiongtEnterprise Service Bus in the cloudltdescriptiongt

ltcloudServicegt

hellip

bull The Registry is used to manage which tenants have access to which services ndash Eg _systemgovernancerepositorycomponentsorgwso2stratoscloud-

managercloud-services27WSO2 Stratos Enterprise Service Bus

18

pzfreo wso2

Elastic Auto-Scaling

bull The WSO2 Elastic Load Balancer is a key part of the Stratos infrastructure

ndash Tenant Self-registration self-deployment and multi-tenancy could lead to a lot of work on a single server

ndash The Stratos multi-tenancy approach is designed to support the ldquolong-tailrdquo

19

pzfreo wso2

Elastic Load Balancer

20

pzfreo wso2

Stratos Elastic Load Balancer

bull A custom deployment of Synapse tuned for passthru proxying and performance

bull Currently supports EC2 APIs

ndash Amazon Eucalyptus OpenStack with vmWare and Rackspace in plan

bull There is a base AMI ID and a per-service payload zip

ndash ELB starts the AMI on a new VM by passing a payloadzip

ndash - Payload contains S3 credentials information about Product to be

ndash deployed configuration files locations etc

ndash AMI downloads the payloadzip

ndash AMI connects to S3 using credentials downloads the service binary from S3 and config files using information from payloadzip

bull Autoscaling is currently based on concurrent message load

ndash Extensible model

ndash Looking at using wider metering results

21

pzfreo wso2

Example of a new Service

bull PHP Services (in progress) ndash Using chroot environments

bull Also looking at LXC (httplxcsourceforgenet)

bull A lightweight model for virtualizationtenant separation

bull Each tenant runs on a different ip+port on the server ndash httpphpstratosyourcomtfremantleorgapp

bull is URL rewritten to

ndash httpipportapp

bull The PHP environment uses the Identity Server and Registry

ndash Provide a store for code

ndash Tenant identity and authorization model

bull This will be extended to become a full SPI (Service Provider Interface) to plug in any new non-Java Service

22

pzfreo wso2

Adding multi-tenancy to existing apps

bull Start with the PHP Service model

bull Add in

ndash HDFS support (multi-tenant filesystem)

ndash RSS support (multi-tenant JDBCRDBMS)

ndash Multi-tenant Logging model

bull Can be syslog-based logging calls

ndash Elastic scaling

ndash Metering and Billing calls

bull Optional ndash but useful

bull Multi-language Thrift API

23

pzfreo wso2

Integrating Development Management into Stratos

bull The Stratos Service model is very extensible and flexible

ndash Eg Dev Staging Production can be different ldquoStratos Servicesrdquo

ndash Use Registry lifecycles or BPEL to manage the workflow lifecycle of code into those Services

24

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 7: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Private Cloud Middleware Platform

pzfreo wso2

StratosLive vs Stratos

bull StratosLive contains all the ldquoServicesrdquo in a default vanilla state

bull Stratos can contain

ndash More services

bull eg New services you create

ndash Fewer services

bull eg just ASDSS

ndash Customized deployments of services

bull eg ready configured with libraries APIs host objects

8

pzfreo wso2

Installation options

bull 1 Full installation (like StratosLive)

ndash Pre-reqs

bull IaaS ndash Eucalyptus vmWare Ubuntu or Amazon

bull MySQL amp Perl amp JVM

bull Ability to run a number of VMs (one per service)

bull 2 LaptopSimple install (on my laptop)

ndash Pre-reqs

bull A machine with lots of memory (4Gb min 8GB preferred)

bull JVM

bull MySQL amp Perl

9

pzfreo wso2

Examples and Case Studies

bull System Integrator

ndash Currently running Stratos for internal projects

ndash Examining the use of Stratos for customer projects and SaaS

bull Home Loan Bank

ndash WSO2 runs a private deployment of Stratos

ndash Developer sandbox and test environment

ndash Currently apps are then deployed internally in Carbon

bull Ecosystem PaaS ndash Combination of cross tenant services APIs

ndash Allow each tenant to deploy customise the logic

bull Mobile PaaS

ndash Building a PaaS environment for a mobile telco

bull SaaS-enablement of legacy applications

pzfreo wso2

ESB and PaaS example

Internet Gateway

(WSO2 ESB providing

Traffic shaping

QoS and LB)

Core ESB

Tenant App

Tenant App

Tenant App

TenantApp

Core Services

pzfreo wso2

Available Services in Stratos (a selection)

12

pzfreo wso2

Every Service has a network API

bull All admin functions and all the low level services are available as SOAP APIs

ndash Full SOAP support REST in some cases

ndash Always possible to bridge into REST using the ESB

bull Why

ndash Clear SOA design bull Allow mashups BPEL and ESB integration

ndash Automated provisioning

ndash Support hybrid multi-tenancy models for legacy software

13

pzfreo wso2

Multi-tenancy

bull Every service can support multiple tenants in the same container ndash Higher efficiency lower resources

ndash Can be split tenant per-VM using the MT-aware Load Balancer

bull Isolation includes classloaders code signing and Java security policies ndash Cross-tenant sharing is via the network (REST SOAP etc)

bull Every tenant has all services by default but they can be turned off

bull You can deploy webapps that are available to all tenants ndash Super Tenant mode

14

pzfreo wso2

Carbon Context

bull orgwso2carboncontextCarbonContext

bull Access to

ndash UserRealm (Identity)

ndash Registry

ndash Cache (JSR107)

ndash Endpoint Discovery

bull All within the correct environment for the tenant or within a super-tenant environment

15

pzfreo wso2

Stratos 152 Services

copy WSO2 2011

pzfreo wso2

What is a ldquoStratos Servicerdquo

bull A cluster of one or more network-available servers

ndash could be VMs or JVMs or Linux partitions

ndash Each cluster can logically handle all tenants bull Maybe that there is partitioning by tenant or group of tenants

ndash Should support SAML2 single-sign on bull Identity is used to identify which tenant

bull Can be elastically scaled

ndash Not a hard requirement

ndash Elasticity and Multi-tenancy are orthogonal

17

pzfreo wso2

List of Stratos Services

bull cloud-services-descxml ltcloudServices xmlns=httpwso2comcarboncloudmgtservicesgt

ltcloudService name=WSO2 Stratos Enterprise Service Bus default=truegt

ltlabelgtStratos Enterprise Service Busltlabelgt

ltlinkgthttpsesbcloud-testwso2com9452ltlinkgt

lticongt

httpscloud-testwso2com9443cloud-services-iconsesbgif

lticongt

ltproductPageURLgthttpwso2comproductsenterprise-service-busltproductPageURLgt

ltdescriptiongtEnterprise Service Bus in the cloudltdescriptiongt

ltcloudServicegt

hellip

bull The Registry is used to manage which tenants have access to which services ndash Eg _systemgovernancerepositorycomponentsorgwso2stratoscloud-

managercloud-services27WSO2 Stratos Enterprise Service Bus

18

pzfreo wso2

Elastic Auto-Scaling

bull The WSO2 Elastic Load Balancer is a key part of the Stratos infrastructure

ndash Tenant Self-registration self-deployment and multi-tenancy could lead to a lot of work on a single server

ndash The Stratos multi-tenancy approach is designed to support the ldquolong-tailrdquo

19

pzfreo wso2

Elastic Load Balancer

20

pzfreo wso2

Stratos Elastic Load Balancer

bull A custom deployment of Synapse tuned for passthru proxying and performance

bull Currently supports EC2 APIs

ndash Amazon Eucalyptus OpenStack with vmWare and Rackspace in plan

bull There is a base AMI ID and a per-service payload zip

ndash ELB starts the AMI on a new VM by passing a payloadzip

ndash - Payload contains S3 credentials information about Product to be

ndash deployed configuration files locations etc

ndash AMI downloads the payloadzip

ndash AMI connects to S3 using credentials downloads the service binary from S3 and config files using information from payloadzip

bull Autoscaling is currently based on concurrent message load

ndash Extensible model

ndash Looking at using wider metering results

21

pzfreo wso2

Example of a new Service

bull PHP Services (in progress) ndash Using chroot environments

bull Also looking at LXC (httplxcsourceforgenet)

bull A lightweight model for virtualizationtenant separation

bull Each tenant runs on a different ip+port on the server ndash httpphpstratosyourcomtfremantleorgapp

bull is URL rewritten to

ndash httpipportapp

bull The PHP environment uses the Identity Server and Registry

ndash Provide a store for code

ndash Tenant identity and authorization model

bull This will be extended to become a full SPI (Service Provider Interface) to plug in any new non-Java Service

22

pzfreo wso2

Adding multi-tenancy to existing apps

bull Start with the PHP Service model

bull Add in

ndash HDFS support (multi-tenant filesystem)

ndash RSS support (multi-tenant JDBCRDBMS)

ndash Multi-tenant Logging model

bull Can be syslog-based logging calls

ndash Elastic scaling

ndash Metering and Billing calls

bull Optional ndash but useful

bull Multi-language Thrift API

23

pzfreo wso2

Integrating Development Management into Stratos

bull The Stratos Service model is very extensible and flexible

ndash Eg Dev Staging Production can be different ldquoStratos Servicesrdquo

ndash Use Registry lifecycles or BPEL to manage the workflow lifecycle of code into those Services

24

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 8: Advanced use cases and approaches with stratos paa s

pzfreo wso2

StratosLive vs Stratos

bull StratosLive contains all the ldquoServicesrdquo in a default vanilla state

bull Stratos can contain

ndash More services

bull eg New services you create

ndash Fewer services

bull eg just ASDSS

ndash Customized deployments of services

bull eg ready configured with libraries APIs host objects

8

pzfreo wso2

Installation options

bull 1 Full installation (like StratosLive)

ndash Pre-reqs

bull IaaS ndash Eucalyptus vmWare Ubuntu or Amazon

bull MySQL amp Perl amp JVM

bull Ability to run a number of VMs (one per service)

bull 2 LaptopSimple install (on my laptop)

ndash Pre-reqs

bull A machine with lots of memory (4Gb min 8GB preferred)

bull JVM

bull MySQL amp Perl

9

pzfreo wso2

Examples and Case Studies

bull System Integrator

ndash Currently running Stratos for internal projects

ndash Examining the use of Stratos for customer projects and SaaS

bull Home Loan Bank

ndash WSO2 runs a private deployment of Stratos

ndash Developer sandbox and test environment

ndash Currently apps are then deployed internally in Carbon

bull Ecosystem PaaS ndash Combination of cross tenant services APIs

ndash Allow each tenant to deploy customise the logic

bull Mobile PaaS

ndash Building a PaaS environment for a mobile telco

bull SaaS-enablement of legacy applications

pzfreo wso2

ESB and PaaS example

Internet Gateway

(WSO2 ESB providing

Traffic shaping

QoS and LB)

Core ESB

Tenant App

Tenant App

Tenant App

TenantApp

Core Services

pzfreo wso2

Available Services in Stratos (a selection)

12

pzfreo wso2

Every Service has a network API

bull All admin functions and all the low level services are available as SOAP APIs

ndash Full SOAP support REST in some cases

ndash Always possible to bridge into REST using the ESB

bull Why

ndash Clear SOA design bull Allow mashups BPEL and ESB integration

ndash Automated provisioning

ndash Support hybrid multi-tenancy models for legacy software

13

pzfreo wso2

Multi-tenancy

bull Every service can support multiple tenants in the same container ndash Higher efficiency lower resources

ndash Can be split tenant per-VM using the MT-aware Load Balancer

bull Isolation includes classloaders code signing and Java security policies ndash Cross-tenant sharing is via the network (REST SOAP etc)

bull Every tenant has all services by default but they can be turned off

bull You can deploy webapps that are available to all tenants ndash Super Tenant mode

14

pzfreo wso2

Carbon Context

bull orgwso2carboncontextCarbonContext

bull Access to

ndash UserRealm (Identity)

ndash Registry

ndash Cache (JSR107)

ndash Endpoint Discovery

bull All within the correct environment for the tenant or within a super-tenant environment

15

pzfreo wso2

Stratos 152 Services

copy WSO2 2011

pzfreo wso2

What is a ldquoStratos Servicerdquo

bull A cluster of one or more network-available servers

ndash could be VMs or JVMs or Linux partitions

ndash Each cluster can logically handle all tenants bull Maybe that there is partitioning by tenant or group of tenants

ndash Should support SAML2 single-sign on bull Identity is used to identify which tenant

bull Can be elastically scaled

ndash Not a hard requirement

ndash Elasticity and Multi-tenancy are orthogonal

17

pzfreo wso2

List of Stratos Services

bull cloud-services-descxml ltcloudServices xmlns=httpwso2comcarboncloudmgtservicesgt

ltcloudService name=WSO2 Stratos Enterprise Service Bus default=truegt

ltlabelgtStratos Enterprise Service Busltlabelgt

ltlinkgthttpsesbcloud-testwso2com9452ltlinkgt

lticongt

httpscloud-testwso2com9443cloud-services-iconsesbgif

lticongt

ltproductPageURLgthttpwso2comproductsenterprise-service-busltproductPageURLgt

ltdescriptiongtEnterprise Service Bus in the cloudltdescriptiongt

ltcloudServicegt

hellip

bull The Registry is used to manage which tenants have access to which services ndash Eg _systemgovernancerepositorycomponentsorgwso2stratoscloud-

managercloud-services27WSO2 Stratos Enterprise Service Bus

18

pzfreo wso2

Elastic Auto-Scaling

bull The WSO2 Elastic Load Balancer is a key part of the Stratos infrastructure

ndash Tenant Self-registration self-deployment and multi-tenancy could lead to a lot of work on a single server

ndash The Stratos multi-tenancy approach is designed to support the ldquolong-tailrdquo

19

pzfreo wso2

Elastic Load Balancer

20

pzfreo wso2

Stratos Elastic Load Balancer

bull A custom deployment of Synapse tuned for passthru proxying and performance

bull Currently supports EC2 APIs

ndash Amazon Eucalyptus OpenStack with vmWare and Rackspace in plan

bull There is a base AMI ID and a per-service payload zip

ndash ELB starts the AMI on a new VM by passing a payloadzip

ndash - Payload contains S3 credentials information about Product to be

ndash deployed configuration files locations etc

ndash AMI downloads the payloadzip

ndash AMI connects to S3 using credentials downloads the service binary from S3 and config files using information from payloadzip

bull Autoscaling is currently based on concurrent message load

ndash Extensible model

ndash Looking at using wider metering results

21

pzfreo wso2

Example of a new Service

bull PHP Services (in progress) ndash Using chroot environments

bull Also looking at LXC (httplxcsourceforgenet)

bull A lightweight model for virtualizationtenant separation

bull Each tenant runs on a different ip+port on the server ndash httpphpstratosyourcomtfremantleorgapp

bull is URL rewritten to

ndash httpipportapp

bull The PHP environment uses the Identity Server and Registry

ndash Provide a store for code

ndash Tenant identity and authorization model

bull This will be extended to become a full SPI (Service Provider Interface) to plug in any new non-Java Service

22

pzfreo wso2

Adding multi-tenancy to existing apps

bull Start with the PHP Service model

bull Add in

ndash HDFS support (multi-tenant filesystem)

ndash RSS support (multi-tenant JDBCRDBMS)

ndash Multi-tenant Logging model

bull Can be syslog-based logging calls

ndash Elastic scaling

ndash Metering and Billing calls

bull Optional ndash but useful

bull Multi-language Thrift API

23

pzfreo wso2

Integrating Development Management into Stratos

bull The Stratos Service model is very extensible and flexible

ndash Eg Dev Staging Production can be different ldquoStratos Servicesrdquo

ndash Use Registry lifecycles or BPEL to manage the workflow lifecycle of code into those Services

24

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 9: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Installation options

bull 1 Full installation (like StratosLive)

ndash Pre-reqs

bull IaaS ndash Eucalyptus vmWare Ubuntu or Amazon

bull MySQL amp Perl amp JVM

bull Ability to run a number of VMs (one per service)

bull 2 LaptopSimple install (on my laptop)

ndash Pre-reqs

bull A machine with lots of memory (4Gb min 8GB preferred)

bull JVM

bull MySQL amp Perl

9

pzfreo wso2

Examples and Case Studies

bull System Integrator

ndash Currently running Stratos for internal projects

ndash Examining the use of Stratos for customer projects and SaaS

bull Home Loan Bank

ndash WSO2 runs a private deployment of Stratos

ndash Developer sandbox and test environment

ndash Currently apps are then deployed internally in Carbon

bull Ecosystem PaaS ndash Combination of cross tenant services APIs

ndash Allow each tenant to deploy customise the logic

bull Mobile PaaS

ndash Building a PaaS environment for a mobile telco

bull SaaS-enablement of legacy applications

pzfreo wso2

ESB and PaaS example

Internet Gateway

(WSO2 ESB providing

Traffic shaping

QoS and LB)

Core ESB

Tenant App

Tenant App

Tenant App

TenantApp

Core Services

pzfreo wso2

Available Services in Stratos (a selection)

12

pzfreo wso2

Every Service has a network API

bull All admin functions and all the low level services are available as SOAP APIs

ndash Full SOAP support REST in some cases

ndash Always possible to bridge into REST using the ESB

bull Why

ndash Clear SOA design bull Allow mashups BPEL and ESB integration

ndash Automated provisioning

ndash Support hybrid multi-tenancy models for legacy software

13

pzfreo wso2

Multi-tenancy

bull Every service can support multiple tenants in the same container ndash Higher efficiency lower resources

ndash Can be split tenant per-VM using the MT-aware Load Balancer

bull Isolation includes classloaders code signing and Java security policies ndash Cross-tenant sharing is via the network (REST SOAP etc)

bull Every tenant has all services by default but they can be turned off

bull You can deploy webapps that are available to all tenants ndash Super Tenant mode

14

pzfreo wso2

Carbon Context

bull orgwso2carboncontextCarbonContext

bull Access to

ndash UserRealm (Identity)

ndash Registry

ndash Cache (JSR107)

ndash Endpoint Discovery

bull All within the correct environment for the tenant or within a super-tenant environment

15

pzfreo wso2

Stratos 152 Services

copy WSO2 2011

pzfreo wso2

What is a ldquoStratos Servicerdquo

bull A cluster of one or more network-available servers

ndash could be VMs or JVMs or Linux partitions

ndash Each cluster can logically handle all tenants bull Maybe that there is partitioning by tenant or group of tenants

ndash Should support SAML2 single-sign on bull Identity is used to identify which tenant

bull Can be elastically scaled

ndash Not a hard requirement

ndash Elasticity and Multi-tenancy are orthogonal

17

pzfreo wso2

List of Stratos Services

bull cloud-services-descxml ltcloudServices xmlns=httpwso2comcarboncloudmgtservicesgt

ltcloudService name=WSO2 Stratos Enterprise Service Bus default=truegt

ltlabelgtStratos Enterprise Service Busltlabelgt

ltlinkgthttpsesbcloud-testwso2com9452ltlinkgt

lticongt

httpscloud-testwso2com9443cloud-services-iconsesbgif

lticongt

ltproductPageURLgthttpwso2comproductsenterprise-service-busltproductPageURLgt

ltdescriptiongtEnterprise Service Bus in the cloudltdescriptiongt

ltcloudServicegt

hellip

bull The Registry is used to manage which tenants have access to which services ndash Eg _systemgovernancerepositorycomponentsorgwso2stratoscloud-

managercloud-services27WSO2 Stratos Enterprise Service Bus

18

pzfreo wso2

Elastic Auto-Scaling

bull The WSO2 Elastic Load Balancer is a key part of the Stratos infrastructure

ndash Tenant Self-registration self-deployment and multi-tenancy could lead to a lot of work on a single server

ndash The Stratos multi-tenancy approach is designed to support the ldquolong-tailrdquo

19

pzfreo wso2

Elastic Load Balancer

20

pzfreo wso2

Stratos Elastic Load Balancer

bull A custom deployment of Synapse tuned for passthru proxying and performance

bull Currently supports EC2 APIs

ndash Amazon Eucalyptus OpenStack with vmWare and Rackspace in plan

bull There is a base AMI ID and a per-service payload zip

ndash ELB starts the AMI on a new VM by passing a payloadzip

ndash - Payload contains S3 credentials information about Product to be

ndash deployed configuration files locations etc

ndash AMI downloads the payloadzip

ndash AMI connects to S3 using credentials downloads the service binary from S3 and config files using information from payloadzip

bull Autoscaling is currently based on concurrent message load

ndash Extensible model

ndash Looking at using wider metering results

21

pzfreo wso2

Example of a new Service

bull PHP Services (in progress) ndash Using chroot environments

bull Also looking at LXC (httplxcsourceforgenet)

bull A lightweight model for virtualizationtenant separation

bull Each tenant runs on a different ip+port on the server ndash httpphpstratosyourcomtfremantleorgapp

bull is URL rewritten to

ndash httpipportapp

bull The PHP environment uses the Identity Server and Registry

ndash Provide a store for code

ndash Tenant identity and authorization model

bull This will be extended to become a full SPI (Service Provider Interface) to plug in any new non-Java Service

22

pzfreo wso2

Adding multi-tenancy to existing apps

bull Start with the PHP Service model

bull Add in

ndash HDFS support (multi-tenant filesystem)

ndash RSS support (multi-tenant JDBCRDBMS)

ndash Multi-tenant Logging model

bull Can be syslog-based logging calls

ndash Elastic scaling

ndash Metering and Billing calls

bull Optional ndash but useful

bull Multi-language Thrift API

23

pzfreo wso2

Integrating Development Management into Stratos

bull The Stratos Service model is very extensible and flexible

ndash Eg Dev Staging Production can be different ldquoStratos Servicesrdquo

ndash Use Registry lifecycles or BPEL to manage the workflow lifecycle of code into those Services

24

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 10: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Examples and Case Studies

bull System Integrator

ndash Currently running Stratos for internal projects

ndash Examining the use of Stratos for customer projects and SaaS

bull Home Loan Bank

ndash WSO2 runs a private deployment of Stratos

ndash Developer sandbox and test environment

ndash Currently apps are then deployed internally in Carbon

bull Ecosystem PaaS ndash Combination of cross tenant services APIs

ndash Allow each tenant to deploy customise the logic

bull Mobile PaaS

ndash Building a PaaS environment for a mobile telco

bull SaaS-enablement of legacy applications

pzfreo wso2

ESB and PaaS example

Internet Gateway

(WSO2 ESB providing

Traffic shaping

QoS and LB)

Core ESB

Tenant App

Tenant App

Tenant App

TenantApp

Core Services

pzfreo wso2

Available Services in Stratos (a selection)

12

pzfreo wso2

Every Service has a network API

bull All admin functions and all the low level services are available as SOAP APIs

ndash Full SOAP support REST in some cases

ndash Always possible to bridge into REST using the ESB

bull Why

ndash Clear SOA design bull Allow mashups BPEL and ESB integration

ndash Automated provisioning

ndash Support hybrid multi-tenancy models for legacy software

13

pzfreo wso2

Multi-tenancy

bull Every service can support multiple tenants in the same container ndash Higher efficiency lower resources

ndash Can be split tenant per-VM using the MT-aware Load Balancer

bull Isolation includes classloaders code signing and Java security policies ndash Cross-tenant sharing is via the network (REST SOAP etc)

bull Every tenant has all services by default but they can be turned off

bull You can deploy webapps that are available to all tenants ndash Super Tenant mode

14

pzfreo wso2

Carbon Context

bull orgwso2carboncontextCarbonContext

bull Access to

ndash UserRealm (Identity)

ndash Registry

ndash Cache (JSR107)

ndash Endpoint Discovery

bull All within the correct environment for the tenant or within a super-tenant environment

15

pzfreo wso2

Stratos 152 Services

copy WSO2 2011

pzfreo wso2

What is a ldquoStratos Servicerdquo

bull A cluster of one or more network-available servers

ndash could be VMs or JVMs or Linux partitions

ndash Each cluster can logically handle all tenants bull Maybe that there is partitioning by tenant or group of tenants

ndash Should support SAML2 single-sign on bull Identity is used to identify which tenant

bull Can be elastically scaled

ndash Not a hard requirement

ndash Elasticity and Multi-tenancy are orthogonal

17

pzfreo wso2

List of Stratos Services

bull cloud-services-descxml ltcloudServices xmlns=httpwso2comcarboncloudmgtservicesgt

ltcloudService name=WSO2 Stratos Enterprise Service Bus default=truegt

ltlabelgtStratos Enterprise Service Busltlabelgt

ltlinkgthttpsesbcloud-testwso2com9452ltlinkgt

lticongt

httpscloud-testwso2com9443cloud-services-iconsesbgif

lticongt

ltproductPageURLgthttpwso2comproductsenterprise-service-busltproductPageURLgt

ltdescriptiongtEnterprise Service Bus in the cloudltdescriptiongt

ltcloudServicegt

hellip

bull The Registry is used to manage which tenants have access to which services ndash Eg _systemgovernancerepositorycomponentsorgwso2stratoscloud-

managercloud-services27WSO2 Stratos Enterprise Service Bus

18

pzfreo wso2

Elastic Auto-Scaling

bull The WSO2 Elastic Load Balancer is a key part of the Stratos infrastructure

ndash Tenant Self-registration self-deployment and multi-tenancy could lead to a lot of work on a single server

ndash The Stratos multi-tenancy approach is designed to support the ldquolong-tailrdquo

19

pzfreo wso2

Elastic Load Balancer

20

pzfreo wso2

Stratos Elastic Load Balancer

bull A custom deployment of Synapse tuned for passthru proxying and performance

bull Currently supports EC2 APIs

ndash Amazon Eucalyptus OpenStack with vmWare and Rackspace in plan

bull There is a base AMI ID and a per-service payload zip

ndash ELB starts the AMI on a new VM by passing a payloadzip

ndash - Payload contains S3 credentials information about Product to be

ndash deployed configuration files locations etc

ndash AMI downloads the payloadzip

ndash AMI connects to S3 using credentials downloads the service binary from S3 and config files using information from payloadzip

bull Autoscaling is currently based on concurrent message load

ndash Extensible model

ndash Looking at using wider metering results

21

pzfreo wso2

Example of a new Service

bull PHP Services (in progress) ndash Using chroot environments

bull Also looking at LXC (httplxcsourceforgenet)

bull A lightweight model for virtualizationtenant separation

bull Each tenant runs on a different ip+port on the server ndash httpphpstratosyourcomtfremantleorgapp

bull is URL rewritten to

ndash httpipportapp

bull The PHP environment uses the Identity Server and Registry

ndash Provide a store for code

ndash Tenant identity and authorization model

bull This will be extended to become a full SPI (Service Provider Interface) to plug in any new non-Java Service

22

pzfreo wso2

Adding multi-tenancy to existing apps

bull Start with the PHP Service model

bull Add in

ndash HDFS support (multi-tenant filesystem)

ndash RSS support (multi-tenant JDBCRDBMS)

ndash Multi-tenant Logging model

bull Can be syslog-based logging calls

ndash Elastic scaling

ndash Metering and Billing calls

bull Optional ndash but useful

bull Multi-language Thrift API

23

pzfreo wso2

Integrating Development Management into Stratos

bull The Stratos Service model is very extensible and flexible

ndash Eg Dev Staging Production can be different ldquoStratos Servicesrdquo

ndash Use Registry lifecycles or BPEL to manage the workflow lifecycle of code into those Services

24

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 11: Advanced use cases and approaches with stratos paa s

pzfreo wso2

ESB and PaaS example

Internet Gateway

(WSO2 ESB providing

Traffic shaping

QoS and LB)

Core ESB

Tenant App

Tenant App

Tenant App

TenantApp

Core Services

pzfreo wso2

Available Services in Stratos (a selection)

12

pzfreo wso2

Every Service has a network API

bull All admin functions and all the low level services are available as SOAP APIs

ndash Full SOAP support REST in some cases

ndash Always possible to bridge into REST using the ESB

bull Why

ndash Clear SOA design bull Allow mashups BPEL and ESB integration

ndash Automated provisioning

ndash Support hybrid multi-tenancy models for legacy software

13

pzfreo wso2

Multi-tenancy

bull Every service can support multiple tenants in the same container ndash Higher efficiency lower resources

ndash Can be split tenant per-VM using the MT-aware Load Balancer

bull Isolation includes classloaders code signing and Java security policies ndash Cross-tenant sharing is via the network (REST SOAP etc)

bull Every tenant has all services by default but they can be turned off

bull You can deploy webapps that are available to all tenants ndash Super Tenant mode

14

pzfreo wso2

Carbon Context

bull orgwso2carboncontextCarbonContext

bull Access to

ndash UserRealm (Identity)

ndash Registry

ndash Cache (JSR107)

ndash Endpoint Discovery

bull All within the correct environment for the tenant or within a super-tenant environment

15

pzfreo wso2

Stratos 152 Services

copy WSO2 2011

pzfreo wso2

What is a ldquoStratos Servicerdquo

bull A cluster of one or more network-available servers

ndash could be VMs or JVMs or Linux partitions

ndash Each cluster can logically handle all tenants bull Maybe that there is partitioning by tenant or group of tenants

ndash Should support SAML2 single-sign on bull Identity is used to identify which tenant

bull Can be elastically scaled

ndash Not a hard requirement

ndash Elasticity and Multi-tenancy are orthogonal

17

pzfreo wso2

List of Stratos Services

bull cloud-services-descxml ltcloudServices xmlns=httpwso2comcarboncloudmgtservicesgt

ltcloudService name=WSO2 Stratos Enterprise Service Bus default=truegt

ltlabelgtStratos Enterprise Service Busltlabelgt

ltlinkgthttpsesbcloud-testwso2com9452ltlinkgt

lticongt

httpscloud-testwso2com9443cloud-services-iconsesbgif

lticongt

ltproductPageURLgthttpwso2comproductsenterprise-service-busltproductPageURLgt

ltdescriptiongtEnterprise Service Bus in the cloudltdescriptiongt

ltcloudServicegt

hellip

bull The Registry is used to manage which tenants have access to which services ndash Eg _systemgovernancerepositorycomponentsorgwso2stratoscloud-

managercloud-services27WSO2 Stratos Enterprise Service Bus

18

pzfreo wso2

Elastic Auto-Scaling

bull The WSO2 Elastic Load Balancer is a key part of the Stratos infrastructure

ndash Tenant Self-registration self-deployment and multi-tenancy could lead to a lot of work on a single server

ndash The Stratos multi-tenancy approach is designed to support the ldquolong-tailrdquo

19

pzfreo wso2

Elastic Load Balancer

20

pzfreo wso2

Stratos Elastic Load Balancer

bull A custom deployment of Synapse tuned for passthru proxying and performance

bull Currently supports EC2 APIs

ndash Amazon Eucalyptus OpenStack with vmWare and Rackspace in plan

bull There is a base AMI ID and a per-service payload zip

ndash ELB starts the AMI on a new VM by passing a payloadzip

ndash - Payload contains S3 credentials information about Product to be

ndash deployed configuration files locations etc

ndash AMI downloads the payloadzip

ndash AMI connects to S3 using credentials downloads the service binary from S3 and config files using information from payloadzip

bull Autoscaling is currently based on concurrent message load

ndash Extensible model

ndash Looking at using wider metering results

21

pzfreo wso2

Example of a new Service

bull PHP Services (in progress) ndash Using chroot environments

bull Also looking at LXC (httplxcsourceforgenet)

bull A lightweight model for virtualizationtenant separation

bull Each tenant runs on a different ip+port on the server ndash httpphpstratosyourcomtfremantleorgapp

bull is URL rewritten to

ndash httpipportapp

bull The PHP environment uses the Identity Server and Registry

ndash Provide a store for code

ndash Tenant identity and authorization model

bull This will be extended to become a full SPI (Service Provider Interface) to plug in any new non-Java Service

22

pzfreo wso2

Adding multi-tenancy to existing apps

bull Start with the PHP Service model

bull Add in

ndash HDFS support (multi-tenant filesystem)

ndash RSS support (multi-tenant JDBCRDBMS)

ndash Multi-tenant Logging model

bull Can be syslog-based logging calls

ndash Elastic scaling

ndash Metering and Billing calls

bull Optional ndash but useful

bull Multi-language Thrift API

23

pzfreo wso2

Integrating Development Management into Stratos

bull The Stratos Service model is very extensible and flexible

ndash Eg Dev Staging Production can be different ldquoStratos Servicesrdquo

ndash Use Registry lifecycles or BPEL to manage the workflow lifecycle of code into those Services

24

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 12: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Available Services in Stratos (a selection)

12

pzfreo wso2

Every Service has a network API

bull All admin functions and all the low level services are available as SOAP APIs

ndash Full SOAP support REST in some cases

ndash Always possible to bridge into REST using the ESB

bull Why

ndash Clear SOA design bull Allow mashups BPEL and ESB integration

ndash Automated provisioning

ndash Support hybrid multi-tenancy models for legacy software

13

pzfreo wso2

Multi-tenancy

bull Every service can support multiple tenants in the same container ndash Higher efficiency lower resources

ndash Can be split tenant per-VM using the MT-aware Load Balancer

bull Isolation includes classloaders code signing and Java security policies ndash Cross-tenant sharing is via the network (REST SOAP etc)

bull Every tenant has all services by default but they can be turned off

bull You can deploy webapps that are available to all tenants ndash Super Tenant mode

14

pzfreo wso2

Carbon Context

bull orgwso2carboncontextCarbonContext

bull Access to

ndash UserRealm (Identity)

ndash Registry

ndash Cache (JSR107)

ndash Endpoint Discovery

bull All within the correct environment for the tenant or within a super-tenant environment

15

pzfreo wso2

Stratos 152 Services

copy WSO2 2011

pzfreo wso2

What is a ldquoStratos Servicerdquo

bull A cluster of one or more network-available servers

ndash could be VMs or JVMs or Linux partitions

ndash Each cluster can logically handle all tenants bull Maybe that there is partitioning by tenant or group of tenants

ndash Should support SAML2 single-sign on bull Identity is used to identify which tenant

bull Can be elastically scaled

ndash Not a hard requirement

ndash Elasticity and Multi-tenancy are orthogonal

17

pzfreo wso2

List of Stratos Services

bull cloud-services-descxml ltcloudServices xmlns=httpwso2comcarboncloudmgtservicesgt

ltcloudService name=WSO2 Stratos Enterprise Service Bus default=truegt

ltlabelgtStratos Enterprise Service Busltlabelgt

ltlinkgthttpsesbcloud-testwso2com9452ltlinkgt

lticongt

httpscloud-testwso2com9443cloud-services-iconsesbgif

lticongt

ltproductPageURLgthttpwso2comproductsenterprise-service-busltproductPageURLgt

ltdescriptiongtEnterprise Service Bus in the cloudltdescriptiongt

ltcloudServicegt

hellip

bull The Registry is used to manage which tenants have access to which services ndash Eg _systemgovernancerepositorycomponentsorgwso2stratoscloud-

managercloud-services27WSO2 Stratos Enterprise Service Bus

18

pzfreo wso2

Elastic Auto-Scaling

bull The WSO2 Elastic Load Balancer is a key part of the Stratos infrastructure

ndash Tenant Self-registration self-deployment and multi-tenancy could lead to a lot of work on a single server

ndash The Stratos multi-tenancy approach is designed to support the ldquolong-tailrdquo

19

pzfreo wso2

Elastic Load Balancer

20

pzfreo wso2

Stratos Elastic Load Balancer

bull A custom deployment of Synapse tuned for passthru proxying and performance

bull Currently supports EC2 APIs

ndash Amazon Eucalyptus OpenStack with vmWare and Rackspace in plan

bull There is a base AMI ID and a per-service payload zip

ndash ELB starts the AMI on a new VM by passing a payloadzip

ndash - Payload contains S3 credentials information about Product to be

ndash deployed configuration files locations etc

ndash AMI downloads the payloadzip

ndash AMI connects to S3 using credentials downloads the service binary from S3 and config files using information from payloadzip

bull Autoscaling is currently based on concurrent message load

ndash Extensible model

ndash Looking at using wider metering results

21

pzfreo wso2

Example of a new Service

bull PHP Services (in progress) ndash Using chroot environments

bull Also looking at LXC (httplxcsourceforgenet)

bull A lightweight model for virtualizationtenant separation

bull Each tenant runs on a different ip+port on the server ndash httpphpstratosyourcomtfremantleorgapp

bull is URL rewritten to

ndash httpipportapp

bull The PHP environment uses the Identity Server and Registry

ndash Provide a store for code

ndash Tenant identity and authorization model

bull This will be extended to become a full SPI (Service Provider Interface) to plug in any new non-Java Service

22

pzfreo wso2

Adding multi-tenancy to existing apps

bull Start with the PHP Service model

bull Add in

ndash HDFS support (multi-tenant filesystem)

ndash RSS support (multi-tenant JDBCRDBMS)

ndash Multi-tenant Logging model

bull Can be syslog-based logging calls

ndash Elastic scaling

ndash Metering and Billing calls

bull Optional ndash but useful

bull Multi-language Thrift API

23

pzfreo wso2

Integrating Development Management into Stratos

bull The Stratos Service model is very extensible and flexible

ndash Eg Dev Staging Production can be different ldquoStratos Servicesrdquo

ndash Use Registry lifecycles or BPEL to manage the workflow lifecycle of code into those Services

24

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 13: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Every Service has a network API

bull All admin functions and all the low level services are available as SOAP APIs

ndash Full SOAP support REST in some cases

ndash Always possible to bridge into REST using the ESB

bull Why

ndash Clear SOA design bull Allow mashups BPEL and ESB integration

ndash Automated provisioning

ndash Support hybrid multi-tenancy models for legacy software

13

pzfreo wso2

Multi-tenancy

bull Every service can support multiple tenants in the same container ndash Higher efficiency lower resources

ndash Can be split tenant per-VM using the MT-aware Load Balancer

bull Isolation includes classloaders code signing and Java security policies ndash Cross-tenant sharing is via the network (REST SOAP etc)

bull Every tenant has all services by default but they can be turned off

bull You can deploy webapps that are available to all tenants ndash Super Tenant mode

14

pzfreo wso2

Carbon Context

bull orgwso2carboncontextCarbonContext

bull Access to

ndash UserRealm (Identity)

ndash Registry

ndash Cache (JSR107)

ndash Endpoint Discovery

bull All within the correct environment for the tenant or within a super-tenant environment

15

pzfreo wso2

Stratos 152 Services

copy WSO2 2011

pzfreo wso2

What is a ldquoStratos Servicerdquo

bull A cluster of one or more network-available servers

ndash could be VMs or JVMs or Linux partitions

ndash Each cluster can logically handle all tenants bull Maybe that there is partitioning by tenant or group of tenants

ndash Should support SAML2 single-sign on bull Identity is used to identify which tenant

bull Can be elastically scaled

ndash Not a hard requirement

ndash Elasticity and Multi-tenancy are orthogonal

17

pzfreo wso2

List of Stratos Services

bull cloud-services-descxml ltcloudServices xmlns=httpwso2comcarboncloudmgtservicesgt

ltcloudService name=WSO2 Stratos Enterprise Service Bus default=truegt

ltlabelgtStratos Enterprise Service Busltlabelgt

ltlinkgthttpsesbcloud-testwso2com9452ltlinkgt

lticongt

httpscloud-testwso2com9443cloud-services-iconsesbgif

lticongt

ltproductPageURLgthttpwso2comproductsenterprise-service-busltproductPageURLgt

ltdescriptiongtEnterprise Service Bus in the cloudltdescriptiongt

ltcloudServicegt

hellip

bull The Registry is used to manage which tenants have access to which services ndash Eg _systemgovernancerepositorycomponentsorgwso2stratoscloud-

managercloud-services27WSO2 Stratos Enterprise Service Bus

18

pzfreo wso2

Elastic Auto-Scaling

bull The WSO2 Elastic Load Balancer is a key part of the Stratos infrastructure

ndash Tenant Self-registration self-deployment and multi-tenancy could lead to a lot of work on a single server

ndash The Stratos multi-tenancy approach is designed to support the ldquolong-tailrdquo

19

pzfreo wso2

Elastic Load Balancer

20

pzfreo wso2

Stratos Elastic Load Balancer

bull A custom deployment of Synapse tuned for passthru proxying and performance

bull Currently supports EC2 APIs

ndash Amazon Eucalyptus OpenStack with vmWare and Rackspace in plan

bull There is a base AMI ID and a per-service payload zip

ndash ELB starts the AMI on a new VM by passing a payloadzip

ndash - Payload contains S3 credentials information about Product to be

ndash deployed configuration files locations etc

ndash AMI downloads the payloadzip

ndash AMI connects to S3 using credentials downloads the service binary from S3 and config files using information from payloadzip

bull Autoscaling is currently based on concurrent message load

ndash Extensible model

ndash Looking at using wider metering results

21

pzfreo wso2

Example of a new Service

bull PHP Services (in progress) ndash Using chroot environments

bull Also looking at LXC (httplxcsourceforgenet)

bull A lightweight model for virtualizationtenant separation

bull Each tenant runs on a different ip+port on the server ndash httpphpstratosyourcomtfremantleorgapp

bull is URL rewritten to

ndash httpipportapp

bull The PHP environment uses the Identity Server and Registry

ndash Provide a store for code

ndash Tenant identity and authorization model

bull This will be extended to become a full SPI (Service Provider Interface) to plug in any new non-Java Service

22

pzfreo wso2

Adding multi-tenancy to existing apps

bull Start with the PHP Service model

bull Add in

ndash HDFS support (multi-tenant filesystem)

ndash RSS support (multi-tenant JDBCRDBMS)

ndash Multi-tenant Logging model

bull Can be syslog-based logging calls

ndash Elastic scaling

ndash Metering and Billing calls

bull Optional ndash but useful

bull Multi-language Thrift API

23

pzfreo wso2

Integrating Development Management into Stratos

bull The Stratos Service model is very extensible and flexible

ndash Eg Dev Staging Production can be different ldquoStratos Servicesrdquo

ndash Use Registry lifecycles or BPEL to manage the workflow lifecycle of code into those Services

24

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 14: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Multi-tenancy

bull Every service can support multiple tenants in the same container ndash Higher efficiency lower resources

ndash Can be split tenant per-VM using the MT-aware Load Balancer

bull Isolation includes classloaders code signing and Java security policies ndash Cross-tenant sharing is via the network (REST SOAP etc)

bull Every tenant has all services by default but they can be turned off

bull You can deploy webapps that are available to all tenants ndash Super Tenant mode

14

pzfreo wso2

Carbon Context

bull orgwso2carboncontextCarbonContext

bull Access to

ndash UserRealm (Identity)

ndash Registry

ndash Cache (JSR107)

ndash Endpoint Discovery

bull All within the correct environment for the tenant or within a super-tenant environment

15

pzfreo wso2

Stratos 152 Services

copy WSO2 2011

pzfreo wso2

What is a ldquoStratos Servicerdquo

bull A cluster of one or more network-available servers

ndash could be VMs or JVMs or Linux partitions

ndash Each cluster can logically handle all tenants bull Maybe that there is partitioning by tenant or group of tenants

ndash Should support SAML2 single-sign on bull Identity is used to identify which tenant

bull Can be elastically scaled

ndash Not a hard requirement

ndash Elasticity and Multi-tenancy are orthogonal

17

pzfreo wso2

List of Stratos Services

bull cloud-services-descxml ltcloudServices xmlns=httpwso2comcarboncloudmgtservicesgt

ltcloudService name=WSO2 Stratos Enterprise Service Bus default=truegt

ltlabelgtStratos Enterprise Service Busltlabelgt

ltlinkgthttpsesbcloud-testwso2com9452ltlinkgt

lticongt

httpscloud-testwso2com9443cloud-services-iconsesbgif

lticongt

ltproductPageURLgthttpwso2comproductsenterprise-service-busltproductPageURLgt

ltdescriptiongtEnterprise Service Bus in the cloudltdescriptiongt

ltcloudServicegt

hellip

bull The Registry is used to manage which tenants have access to which services ndash Eg _systemgovernancerepositorycomponentsorgwso2stratoscloud-

managercloud-services27WSO2 Stratos Enterprise Service Bus

18

pzfreo wso2

Elastic Auto-Scaling

bull The WSO2 Elastic Load Balancer is a key part of the Stratos infrastructure

ndash Tenant Self-registration self-deployment and multi-tenancy could lead to a lot of work on a single server

ndash The Stratos multi-tenancy approach is designed to support the ldquolong-tailrdquo

19

pzfreo wso2

Elastic Load Balancer

20

pzfreo wso2

Stratos Elastic Load Balancer

bull A custom deployment of Synapse tuned for passthru proxying and performance

bull Currently supports EC2 APIs

ndash Amazon Eucalyptus OpenStack with vmWare and Rackspace in plan

bull There is a base AMI ID and a per-service payload zip

ndash ELB starts the AMI on a new VM by passing a payloadzip

ndash - Payload contains S3 credentials information about Product to be

ndash deployed configuration files locations etc

ndash AMI downloads the payloadzip

ndash AMI connects to S3 using credentials downloads the service binary from S3 and config files using information from payloadzip

bull Autoscaling is currently based on concurrent message load

ndash Extensible model

ndash Looking at using wider metering results

21

pzfreo wso2

Example of a new Service

bull PHP Services (in progress) ndash Using chroot environments

bull Also looking at LXC (httplxcsourceforgenet)

bull A lightweight model for virtualizationtenant separation

bull Each tenant runs on a different ip+port on the server ndash httpphpstratosyourcomtfremantleorgapp

bull is URL rewritten to

ndash httpipportapp

bull The PHP environment uses the Identity Server and Registry

ndash Provide a store for code

ndash Tenant identity and authorization model

bull This will be extended to become a full SPI (Service Provider Interface) to plug in any new non-Java Service

22

pzfreo wso2

Adding multi-tenancy to existing apps

bull Start with the PHP Service model

bull Add in

ndash HDFS support (multi-tenant filesystem)

ndash RSS support (multi-tenant JDBCRDBMS)

ndash Multi-tenant Logging model

bull Can be syslog-based logging calls

ndash Elastic scaling

ndash Metering and Billing calls

bull Optional ndash but useful

bull Multi-language Thrift API

23

pzfreo wso2

Integrating Development Management into Stratos

bull The Stratos Service model is very extensible and flexible

ndash Eg Dev Staging Production can be different ldquoStratos Servicesrdquo

ndash Use Registry lifecycles or BPEL to manage the workflow lifecycle of code into those Services

24

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 15: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Carbon Context

bull orgwso2carboncontextCarbonContext

bull Access to

ndash UserRealm (Identity)

ndash Registry

ndash Cache (JSR107)

ndash Endpoint Discovery

bull All within the correct environment for the tenant or within a super-tenant environment

15

pzfreo wso2

Stratos 152 Services

copy WSO2 2011

pzfreo wso2

What is a ldquoStratos Servicerdquo

bull A cluster of one or more network-available servers

ndash could be VMs or JVMs or Linux partitions

ndash Each cluster can logically handle all tenants bull Maybe that there is partitioning by tenant or group of tenants

ndash Should support SAML2 single-sign on bull Identity is used to identify which tenant

bull Can be elastically scaled

ndash Not a hard requirement

ndash Elasticity and Multi-tenancy are orthogonal

17

pzfreo wso2

List of Stratos Services

bull cloud-services-descxml ltcloudServices xmlns=httpwso2comcarboncloudmgtservicesgt

ltcloudService name=WSO2 Stratos Enterprise Service Bus default=truegt

ltlabelgtStratos Enterprise Service Busltlabelgt

ltlinkgthttpsesbcloud-testwso2com9452ltlinkgt

lticongt

httpscloud-testwso2com9443cloud-services-iconsesbgif

lticongt

ltproductPageURLgthttpwso2comproductsenterprise-service-busltproductPageURLgt

ltdescriptiongtEnterprise Service Bus in the cloudltdescriptiongt

ltcloudServicegt

hellip

bull The Registry is used to manage which tenants have access to which services ndash Eg _systemgovernancerepositorycomponentsorgwso2stratoscloud-

managercloud-services27WSO2 Stratos Enterprise Service Bus

18

pzfreo wso2

Elastic Auto-Scaling

bull The WSO2 Elastic Load Balancer is a key part of the Stratos infrastructure

ndash Tenant Self-registration self-deployment and multi-tenancy could lead to a lot of work on a single server

ndash The Stratos multi-tenancy approach is designed to support the ldquolong-tailrdquo

19

pzfreo wso2

Elastic Load Balancer

20

pzfreo wso2

Stratos Elastic Load Balancer

bull A custom deployment of Synapse tuned for passthru proxying and performance

bull Currently supports EC2 APIs

ndash Amazon Eucalyptus OpenStack with vmWare and Rackspace in plan

bull There is a base AMI ID and a per-service payload zip

ndash ELB starts the AMI on a new VM by passing a payloadzip

ndash - Payload contains S3 credentials information about Product to be

ndash deployed configuration files locations etc

ndash AMI downloads the payloadzip

ndash AMI connects to S3 using credentials downloads the service binary from S3 and config files using information from payloadzip

bull Autoscaling is currently based on concurrent message load

ndash Extensible model

ndash Looking at using wider metering results

21

pzfreo wso2

Example of a new Service

bull PHP Services (in progress) ndash Using chroot environments

bull Also looking at LXC (httplxcsourceforgenet)

bull A lightweight model for virtualizationtenant separation

bull Each tenant runs on a different ip+port on the server ndash httpphpstratosyourcomtfremantleorgapp

bull is URL rewritten to

ndash httpipportapp

bull The PHP environment uses the Identity Server and Registry

ndash Provide a store for code

ndash Tenant identity and authorization model

bull This will be extended to become a full SPI (Service Provider Interface) to plug in any new non-Java Service

22

pzfreo wso2

Adding multi-tenancy to existing apps

bull Start with the PHP Service model

bull Add in

ndash HDFS support (multi-tenant filesystem)

ndash RSS support (multi-tenant JDBCRDBMS)

ndash Multi-tenant Logging model

bull Can be syslog-based logging calls

ndash Elastic scaling

ndash Metering and Billing calls

bull Optional ndash but useful

bull Multi-language Thrift API

23

pzfreo wso2

Integrating Development Management into Stratos

bull The Stratos Service model is very extensible and flexible

ndash Eg Dev Staging Production can be different ldquoStratos Servicesrdquo

ndash Use Registry lifecycles or BPEL to manage the workflow lifecycle of code into those Services

24

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 16: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Stratos 152 Services

copy WSO2 2011

pzfreo wso2

What is a ldquoStratos Servicerdquo

bull A cluster of one or more network-available servers

ndash could be VMs or JVMs or Linux partitions

ndash Each cluster can logically handle all tenants bull Maybe that there is partitioning by tenant or group of tenants

ndash Should support SAML2 single-sign on bull Identity is used to identify which tenant

bull Can be elastically scaled

ndash Not a hard requirement

ndash Elasticity and Multi-tenancy are orthogonal

17

pzfreo wso2

List of Stratos Services

bull cloud-services-descxml ltcloudServices xmlns=httpwso2comcarboncloudmgtservicesgt

ltcloudService name=WSO2 Stratos Enterprise Service Bus default=truegt

ltlabelgtStratos Enterprise Service Busltlabelgt

ltlinkgthttpsesbcloud-testwso2com9452ltlinkgt

lticongt

httpscloud-testwso2com9443cloud-services-iconsesbgif

lticongt

ltproductPageURLgthttpwso2comproductsenterprise-service-busltproductPageURLgt

ltdescriptiongtEnterprise Service Bus in the cloudltdescriptiongt

ltcloudServicegt

hellip

bull The Registry is used to manage which tenants have access to which services ndash Eg _systemgovernancerepositorycomponentsorgwso2stratoscloud-

managercloud-services27WSO2 Stratos Enterprise Service Bus

18

pzfreo wso2

Elastic Auto-Scaling

bull The WSO2 Elastic Load Balancer is a key part of the Stratos infrastructure

ndash Tenant Self-registration self-deployment and multi-tenancy could lead to a lot of work on a single server

ndash The Stratos multi-tenancy approach is designed to support the ldquolong-tailrdquo

19

pzfreo wso2

Elastic Load Balancer

20

pzfreo wso2

Stratos Elastic Load Balancer

bull A custom deployment of Synapse tuned for passthru proxying and performance

bull Currently supports EC2 APIs

ndash Amazon Eucalyptus OpenStack with vmWare and Rackspace in plan

bull There is a base AMI ID and a per-service payload zip

ndash ELB starts the AMI on a new VM by passing a payloadzip

ndash - Payload contains S3 credentials information about Product to be

ndash deployed configuration files locations etc

ndash AMI downloads the payloadzip

ndash AMI connects to S3 using credentials downloads the service binary from S3 and config files using information from payloadzip

bull Autoscaling is currently based on concurrent message load

ndash Extensible model

ndash Looking at using wider metering results

21

pzfreo wso2

Example of a new Service

bull PHP Services (in progress) ndash Using chroot environments

bull Also looking at LXC (httplxcsourceforgenet)

bull A lightweight model for virtualizationtenant separation

bull Each tenant runs on a different ip+port on the server ndash httpphpstratosyourcomtfremantleorgapp

bull is URL rewritten to

ndash httpipportapp

bull The PHP environment uses the Identity Server and Registry

ndash Provide a store for code

ndash Tenant identity and authorization model

bull This will be extended to become a full SPI (Service Provider Interface) to plug in any new non-Java Service

22

pzfreo wso2

Adding multi-tenancy to existing apps

bull Start with the PHP Service model

bull Add in

ndash HDFS support (multi-tenant filesystem)

ndash RSS support (multi-tenant JDBCRDBMS)

ndash Multi-tenant Logging model

bull Can be syslog-based logging calls

ndash Elastic scaling

ndash Metering and Billing calls

bull Optional ndash but useful

bull Multi-language Thrift API

23

pzfreo wso2

Integrating Development Management into Stratos

bull The Stratos Service model is very extensible and flexible

ndash Eg Dev Staging Production can be different ldquoStratos Servicesrdquo

ndash Use Registry lifecycles or BPEL to manage the workflow lifecycle of code into those Services

24

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 17: Advanced use cases and approaches with stratos paa s

pzfreo wso2

What is a ldquoStratos Servicerdquo

bull A cluster of one or more network-available servers

ndash could be VMs or JVMs or Linux partitions

ndash Each cluster can logically handle all tenants bull Maybe that there is partitioning by tenant or group of tenants

ndash Should support SAML2 single-sign on bull Identity is used to identify which tenant

bull Can be elastically scaled

ndash Not a hard requirement

ndash Elasticity and Multi-tenancy are orthogonal

17

pzfreo wso2

List of Stratos Services

bull cloud-services-descxml ltcloudServices xmlns=httpwso2comcarboncloudmgtservicesgt

ltcloudService name=WSO2 Stratos Enterprise Service Bus default=truegt

ltlabelgtStratos Enterprise Service Busltlabelgt

ltlinkgthttpsesbcloud-testwso2com9452ltlinkgt

lticongt

httpscloud-testwso2com9443cloud-services-iconsesbgif

lticongt

ltproductPageURLgthttpwso2comproductsenterprise-service-busltproductPageURLgt

ltdescriptiongtEnterprise Service Bus in the cloudltdescriptiongt

ltcloudServicegt

hellip

bull The Registry is used to manage which tenants have access to which services ndash Eg _systemgovernancerepositorycomponentsorgwso2stratoscloud-

managercloud-services27WSO2 Stratos Enterprise Service Bus

18

pzfreo wso2

Elastic Auto-Scaling

bull The WSO2 Elastic Load Balancer is a key part of the Stratos infrastructure

ndash Tenant Self-registration self-deployment and multi-tenancy could lead to a lot of work on a single server

ndash The Stratos multi-tenancy approach is designed to support the ldquolong-tailrdquo

19

pzfreo wso2

Elastic Load Balancer

20

pzfreo wso2

Stratos Elastic Load Balancer

bull A custom deployment of Synapse tuned for passthru proxying and performance

bull Currently supports EC2 APIs

ndash Amazon Eucalyptus OpenStack with vmWare and Rackspace in plan

bull There is a base AMI ID and a per-service payload zip

ndash ELB starts the AMI on a new VM by passing a payloadzip

ndash - Payload contains S3 credentials information about Product to be

ndash deployed configuration files locations etc

ndash AMI downloads the payloadzip

ndash AMI connects to S3 using credentials downloads the service binary from S3 and config files using information from payloadzip

bull Autoscaling is currently based on concurrent message load

ndash Extensible model

ndash Looking at using wider metering results

21

pzfreo wso2

Example of a new Service

bull PHP Services (in progress) ndash Using chroot environments

bull Also looking at LXC (httplxcsourceforgenet)

bull A lightweight model for virtualizationtenant separation

bull Each tenant runs on a different ip+port on the server ndash httpphpstratosyourcomtfremantleorgapp

bull is URL rewritten to

ndash httpipportapp

bull The PHP environment uses the Identity Server and Registry

ndash Provide a store for code

ndash Tenant identity and authorization model

bull This will be extended to become a full SPI (Service Provider Interface) to plug in any new non-Java Service

22

pzfreo wso2

Adding multi-tenancy to existing apps

bull Start with the PHP Service model

bull Add in

ndash HDFS support (multi-tenant filesystem)

ndash RSS support (multi-tenant JDBCRDBMS)

ndash Multi-tenant Logging model

bull Can be syslog-based logging calls

ndash Elastic scaling

ndash Metering and Billing calls

bull Optional ndash but useful

bull Multi-language Thrift API

23

pzfreo wso2

Integrating Development Management into Stratos

bull The Stratos Service model is very extensible and flexible

ndash Eg Dev Staging Production can be different ldquoStratos Servicesrdquo

ndash Use Registry lifecycles or BPEL to manage the workflow lifecycle of code into those Services

24

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 18: Advanced use cases and approaches with stratos paa s

pzfreo wso2

List of Stratos Services

bull cloud-services-descxml ltcloudServices xmlns=httpwso2comcarboncloudmgtservicesgt

ltcloudService name=WSO2 Stratos Enterprise Service Bus default=truegt

ltlabelgtStratos Enterprise Service Busltlabelgt

ltlinkgthttpsesbcloud-testwso2com9452ltlinkgt

lticongt

httpscloud-testwso2com9443cloud-services-iconsesbgif

lticongt

ltproductPageURLgthttpwso2comproductsenterprise-service-busltproductPageURLgt

ltdescriptiongtEnterprise Service Bus in the cloudltdescriptiongt

ltcloudServicegt

hellip

bull The Registry is used to manage which tenants have access to which services ndash Eg _systemgovernancerepositorycomponentsorgwso2stratoscloud-

managercloud-services27WSO2 Stratos Enterprise Service Bus

18

pzfreo wso2

Elastic Auto-Scaling

bull The WSO2 Elastic Load Balancer is a key part of the Stratos infrastructure

ndash Tenant Self-registration self-deployment and multi-tenancy could lead to a lot of work on a single server

ndash The Stratos multi-tenancy approach is designed to support the ldquolong-tailrdquo

19

pzfreo wso2

Elastic Load Balancer

20

pzfreo wso2

Stratos Elastic Load Balancer

bull A custom deployment of Synapse tuned for passthru proxying and performance

bull Currently supports EC2 APIs

ndash Amazon Eucalyptus OpenStack with vmWare and Rackspace in plan

bull There is a base AMI ID and a per-service payload zip

ndash ELB starts the AMI on a new VM by passing a payloadzip

ndash - Payload contains S3 credentials information about Product to be

ndash deployed configuration files locations etc

ndash AMI downloads the payloadzip

ndash AMI connects to S3 using credentials downloads the service binary from S3 and config files using information from payloadzip

bull Autoscaling is currently based on concurrent message load

ndash Extensible model

ndash Looking at using wider metering results

21

pzfreo wso2

Example of a new Service

bull PHP Services (in progress) ndash Using chroot environments

bull Also looking at LXC (httplxcsourceforgenet)

bull A lightweight model for virtualizationtenant separation

bull Each tenant runs on a different ip+port on the server ndash httpphpstratosyourcomtfremantleorgapp

bull is URL rewritten to

ndash httpipportapp

bull The PHP environment uses the Identity Server and Registry

ndash Provide a store for code

ndash Tenant identity and authorization model

bull This will be extended to become a full SPI (Service Provider Interface) to plug in any new non-Java Service

22

pzfreo wso2

Adding multi-tenancy to existing apps

bull Start with the PHP Service model

bull Add in

ndash HDFS support (multi-tenant filesystem)

ndash RSS support (multi-tenant JDBCRDBMS)

ndash Multi-tenant Logging model

bull Can be syslog-based logging calls

ndash Elastic scaling

ndash Metering and Billing calls

bull Optional ndash but useful

bull Multi-language Thrift API

23

pzfreo wso2

Integrating Development Management into Stratos

bull The Stratos Service model is very extensible and flexible

ndash Eg Dev Staging Production can be different ldquoStratos Servicesrdquo

ndash Use Registry lifecycles or BPEL to manage the workflow lifecycle of code into those Services

24

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 19: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Elastic Auto-Scaling

bull The WSO2 Elastic Load Balancer is a key part of the Stratos infrastructure

ndash Tenant Self-registration self-deployment and multi-tenancy could lead to a lot of work on a single server

ndash The Stratos multi-tenancy approach is designed to support the ldquolong-tailrdquo

19

pzfreo wso2

Elastic Load Balancer

20

pzfreo wso2

Stratos Elastic Load Balancer

bull A custom deployment of Synapse tuned for passthru proxying and performance

bull Currently supports EC2 APIs

ndash Amazon Eucalyptus OpenStack with vmWare and Rackspace in plan

bull There is a base AMI ID and a per-service payload zip

ndash ELB starts the AMI on a new VM by passing a payloadzip

ndash - Payload contains S3 credentials information about Product to be

ndash deployed configuration files locations etc

ndash AMI downloads the payloadzip

ndash AMI connects to S3 using credentials downloads the service binary from S3 and config files using information from payloadzip

bull Autoscaling is currently based on concurrent message load

ndash Extensible model

ndash Looking at using wider metering results

21

pzfreo wso2

Example of a new Service

bull PHP Services (in progress) ndash Using chroot environments

bull Also looking at LXC (httplxcsourceforgenet)

bull A lightweight model for virtualizationtenant separation

bull Each tenant runs on a different ip+port on the server ndash httpphpstratosyourcomtfremantleorgapp

bull is URL rewritten to

ndash httpipportapp

bull The PHP environment uses the Identity Server and Registry

ndash Provide a store for code

ndash Tenant identity and authorization model

bull This will be extended to become a full SPI (Service Provider Interface) to plug in any new non-Java Service

22

pzfreo wso2

Adding multi-tenancy to existing apps

bull Start with the PHP Service model

bull Add in

ndash HDFS support (multi-tenant filesystem)

ndash RSS support (multi-tenant JDBCRDBMS)

ndash Multi-tenant Logging model

bull Can be syslog-based logging calls

ndash Elastic scaling

ndash Metering and Billing calls

bull Optional ndash but useful

bull Multi-language Thrift API

23

pzfreo wso2

Integrating Development Management into Stratos

bull The Stratos Service model is very extensible and flexible

ndash Eg Dev Staging Production can be different ldquoStratos Servicesrdquo

ndash Use Registry lifecycles or BPEL to manage the workflow lifecycle of code into those Services

24

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 20: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Elastic Load Balancer

20

pzfreo wso2

Stratos Elastic Load Balancer

bull A custom deployment of Synapse tuned for passthru proxying and performance

bull Currently supports EC2 APIs

ndash Amazon Eucalyptus OpenStack with vmWare and Rackspace in plan

bull There is a base AMI ID and a per-service payload zip

ndash ELB starts the AMI on a new VM by passing a payloadzip

ndash - Payload contains S3 credentials information about Product to be

ndash deployed configuration files locations etc

ndash AMI downloads the payloadzip

ndash AMI connects to S3 using credentials downloads the service binary from S3 and config files using information from payloadzip

bull Autoscaling is currently based on concurrent message load

ndash Extensible model

ndash Looking at using wider metering results

21

pzfreo wso2

Example of a new Service

bull PHP Services (in progress) ndash Using chroot environments

bull Also looking at LXC (httplxcsourceforgenet)

bull A lightweight model for virtualizationtenant separation

bull Each tenant runs on a different ip+port on the server ndash httpphpstratosyourcomtfremantleorgapp

bull is URL rewritten to

ndash httpipportapp

bull The PHP environment uses the Identity Server and Registry

ndash Provide a store for code

ndash Tenant identity and authorization model

bull This will be extended to become a full SPI (Service Provider Interface) to plug in any new non-Java Service

22

pzfreo wso2

Adding multi-tenancy to existing apps

bull Start with the PHP Service model

bull Add in

ndash HDFS support (multi-tenant filesystem)

ndash RSS support (multi-tenant JDBCRDBMS)

ndash Multi-tenant Logging model

bull Can be syslog-based logging calls

ndash Elastic scaling

ndash Metering and Billing calls

bull Optional ndash but useful

bull Multi-language Thrift API

23

pzfreo wso2

Integrating Development Management into Stratos

bull The Stratos Service model is very extensible and flexible

ndash Eg Dev Staging Production can be different ldquoStratos Servicesrdquo

ndash Use Registry lifecycles or BPEL to manage the workflow lifecycle of code into those Services

24

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 21: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Stratos Elastic Load Balancer

bull A custom deployment of Synapse tuned for passthru proxying and performance

bull Currently supports EC2 APIs

ndash Amazon Eucalyptus OpenStack with vmWare and Rackspace in plan

bull There is a base AMI ID and a per-service payload zip

ndash ELB starts the AMI on a new VM by passing a payloadzip

ndash - Payload contains S3 credentials information about Product to be

ndash deployed configuration files locations etc

ndash AMI downloads the payloadzip

ndash AMI connects to S3 using credentials downloads the service binary from S3 and config files using information from payloadzip

bull Autoscaling is currently based on concurrent message load

ndash Extensible model

ndash Looking at using wider metering results

21

pzfreo wso2

Example of a new Service

bull PHP Services (in progress) ndash Using chroot environments

bull Also looking at LXC (httplxcsourceforgenet)

bull A lightweight model for virtualizationtenant separation

bull Each tenant runs on a different ip+port on the server ndash httpphpstratosyourcomtfremantleorgapp

bull is URL rewritten to

ndash httpipportapp

bull The PHP environment uses the Identity Server and Registry

ndash Provide a store for code

ndash Tenant identity and authorization model

bull This will be extended to become a full SPI (Service Provider Interface) to plug in any new non-Java Service

22

pzfreo wso2

Adding multi-tenancy to existing apps

bull Start with the PHP Service model

bull Add in

ndash HDFS support (multi-tenant filesystem)

ndash RSS support (multi-tenant JDBCRDBMS)

ndash Multi-tenant Logging model

bull Can be syslog-based logging calls

ndash Elastic scaling

ndash Metering and Billing calls

bull Optional ndash but useful

bull Multi-language Thrift API

23

pzfreo wso2

Integrating Development Management into Stratos

bull The Stratos Service model is very extensible and flexible

ndash Eg Dev Staging Production can be different ldquoStratos Servicesrdquo

ndash Use Registry lifecycles or BPEL to manage the workflow lifecycle of code into those Services

24

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 22: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Example of a new Service

bull PHP Services (in progress) ndash Using chroot environments

bull Also looking at LXC (httplxcsourceforgenet)

bull A lightweight model for virtualizationtenant separation

bull Each tenant runs on a different ip+port on the server ndash httpphpstratosyourcomtfremantleorgapp

bull is URL rewritten to

ndash httpipportapp

bull The PHP environment uses the Identity Server and Registry

ndash Provide a store for code

ndash Tenant identity and authorization model

bull This will be extended to become a full SPI (Service Provider Interface) to plug in any new non-Java Service

22

pzfreo wso2

Adding multi-tenancy to existing apps

bull Start with the PHP Service model

bull Add in

ndash HDFS support (multi-tenant filesystem)

ndash RSS support (multi-tenant JDBCRDBMS)

ndash Multi-tenant Logging model

bull Can be syslog-based logging calls

ndash Elastic scaling

ndash Metering and Billing calls

bull Optional ndash but useful

bull Multi-language Thrift API

23

pzfreo wso2

Integrating Development Management into Stratos

bull The Stratos Service model is very extensible and flexible

ndash Eg Dev Staging Production can be different ldquoStratos Servicesrdquo

ndash Use Registry lifecycles or BPEL to manage the workflow lifecycle of code into those Services

24

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 23: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Adding multi-tenancy to existing apps

bull Start with the PHP Service model

bull Add in

ndash HDFS support (multi-tenant filesystem)

ndash RSS support (multi-tenant JDBCRDBMS)

ndash Multi-tenant Logging model

bull Can be syslog-based logging calls

ndash Elastic scaling

ndash Metering and Billing calls

bull Optional ndash but useful

bull Multi-language Thrift API

23

pzfreo wso2

Integrating Development Management into Stratos

bull The Stratos Service model is very extensible and flexible

ndash Eg Dev Staging Production can be different ldquoStratos Servicesrdquo

ndash Use Registry lifecycles or BPEL to manage the workflow lifecycle of code into those Services

24

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 24: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Integrating Development Management into Stratos

bull The Stratos Service model is very extensible and flexible

ndash Eg Dev Staging Production can be different ldquoStratos Servicesrdquo

ndash Use Registry lifecycles or BPEL to manage the workflow lifecycle of code into those Services

24

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 25: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Integrating Development Management into Stratos

25

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 26: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Workflows

Examples

bull Add project (aka tenant)

ndash Creates Project Management SVN and Stratos Tenant

bull Add user to project

ndash Configures permissions in SVN PM and Stratos

bull Deploy project into production

ndash Initiates approval governance process

ndash Maven build of the code

ndash Deploys into staging bull Notifies approval team of new project awaiting approval

ndash Once approved automatically deploys into Production

26

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 27: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Recap

bull Understanding Stratos

bull What are Stratos Services

ndash How do I extend re-use reconfigure add my own

bull What is the Stratos ELB

ndash How does it work

ndash Roadmap

bull How to add multi-tenancy to existing apps

bull Managing development and governance

27

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 28: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Enterprise Application Development API Store and API Management

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 29: Advanced use cases and approaches with stratos paa s

pzfreo wso2

ldquoYour Business As A Servicerdquo

PaaS Stratos

Existing business systems as APIs

Tenant

Apps

Tenant

Apps

Tenant

Apps

Tenant

Apps

Eco

syst

em O

wn

er

Part

ne

rs

Use

rs

API Management API Store

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 30: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Vertical PaaS ldquoYour Business as a Servicerdquo bull Based on real projects that WSO2 is running

bull Beyond APIs ndash because it creates a shared governance model and runtime

bull An opportunity to add significant value to partners

bull A complete environment that they can customize

bull Can include multi-tenanted legacy software

bull Not just the look and feel but also the behaviour

bull An ideal platform for shared revenue

bull A shift in business models enabled by cloud technology

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 31: Advanced use cases and approaches with stratos paa s

pzfreo wso2

ldquoYour Businessrdquo-as-a-Service summary

bull Inherent deep multi-tenancy enables ecosystem plays bull Not just shallow per-tenant customization

bull Eg eBay Stores Amazon Sellers

bull But significant per-tenant customization

bull Client success stories demonstrates key aspects bull Ecosystem creation bull Shared governance and revenue model bull Significant benefit beyond APIs bull Cloud Development bull Automated Governance

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi

Page 32: Advanced use cases and approaches with stratos paa s

pzfreo wso2

Questions

32

httpwwwflickrcomphotosoberazzi