advanced use cases and approaches with stratos paa s
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
pzfreo wso2
Questions
32
httpwwwflickrcomphotosoberazzi