SlideShare a Scribd company logo
Advanced Use Cases and Approaches
       with WSO2 Stratos
             Paul Fremantle
           CTO and Co-Founder
             www.wso2.com

            paul@wso2.com




                                @pzfreo #wso2
Agenda
• This is a follow on to the presentation I gave at Qcon:
     – http://freo.me/xhHmkP


• Quick recap
• Understanding the system architecture of Stratos
     – Identity model
     – Multi-tenancy
     – Elastic Load Balancer
•   How do new Services fit in?
•   How can I multi-tenant existing code?
•   Integrating development management into Stratos
•   Advanced use cases
•   Summary


                                                            @pzfreo #wso2   2
What should you take away from this
presentation?
• What are Stratos and StratosLive?
• How can I try out Stratos?
  – On the Web?
  – On your machine?
• How can I extend Stratos?
• Where can an extensible open PaaS give me
  competitive advantage?
• Where can I get more information?

                                      @pzfreo #wso2   3
Moore’s Law for Data
• The amount of data online went from
   – 5 exabytes in 2002
   – 281 exabytes in 2009
• Doubling every 15 months

• You cannot deal with this data growth with
  the same applications
   – A reasonable conclusion is that the number of
     applications will double every 15 months too



                                                     @pzfreo #wso2
Stratos Overview
• Stratos – an Open Source project / product
   – A full middleware platform available as a service, with
     self service
      • Fast provisioning
   – Based on OSGi
      • Modular, componentized, standard
   – Multi-tenant, Elastic, Metered and Billed
      • Effective and powerful
   – Available under the Apache License
      • Open Source, Open License, Open Development
• StratosLive – a Platform-as-a-Service
   – Stratos running in the cloud with various plans
      • Including a free demo plan

                                                      @pzfreo #wso2
Stratos resources
• Running on the web
   – http://stratoslive.wso2.com
• Stratos SVN
   – http://svn.wso2.org/repos/wso2/trunk/stratos/
• Stratos-dev list
   – https://mail.wso2.org/cgi-bin/mailman/listinfo/stratos-
     dev
• Blog on how to build / install
   – http://yumani.blogspot.com/2011/06/setting-up-wso2-
     stratos-in-personal.html


                                                  @pzfreo #wso2   6
Private Cloud Middleware Platform




                                    @pzfreo #wso2
StratosLive vs Stratos
• StratosLive contains all the “Services” in a
  default / vanilla state
• Stratos can contain:
  – More services
     • e.g. New services you create
  – Fewer services
     • e.g. just AS/DSS
  – Customized deployments of services
     • e.g. ready configured with libraries / APIs / host
       objects

                                                    @pzfreo #wso2   8
Installation options
• 1. Full installation (like StratosLive)
   – Pre-reqs
      • IaaS – Eucalyptus, vmWare, Ubuntu or Amazon
      • MySQL & Perl & JVM
      • Ability to run a number of VMs (one per service)
• 2. Laptop/Simple install (on my laptop)
   – Pre-reqs
      • A machine with lots of memory (4Gb min, 8GB
        preferred)
      • JVM
      • MySQL & Perl
                                                  @pzfreo #wso2   9
Examples and Case Studies
• System Integrator
   – Currently running Stratos for internal projects
   – Examining the use of Stratos for customer projects and SaaS
• Home Loan Bank
   – WSO2 runs a private deployment of Stratos
   – Developer sandbox and test environment
   – Currently apps are then deployed internally in Carbon
• Ecosystem PaaS
   – Combination of cross tenant services / APIs
   – Allow each tenant to deploy / customise the logic
• Mobile PaaS
   – Building a PaaS environment for a mobile telco
• SaaS-enablement of legacy applications


                                                                   @pzfreo #wso2
ESB and PaaS example


                  Tenant    Tenant    Tenant   Tenant
                   App       App       App      App
    Internet
    Gateway

   (WSO2 ESB
    providing
     Traffic                    Core ESB
    shaping,
   QoS, and LB)


                           Core Services

                                                    @pzfreo #wso2
Available Services in Stratos
(a selection)




                                @pzfreo #wso2 12
Every Service has a network API
• All admin functions and all the low level services
  are available as SOAP APIs
   – Full SOAP support, REST in some cases
   – Always possible to bridge into REST using the ESB
• Why?
   – Clear SOA design
      • Allow mashups, BPEL and ESB integration
   – Automated provisioning
   – Support hybrid multi-tenancy models for legacy
     software


                                                   @pzfreo #wso2 13
Multi-tenancy
• Every service can support multiple tenants in the same
  container
   – Higher efficiency, lower resources
   – Can be split tenant per-VM using the MT-aware Load Balancer
• Isolation includes classloaders, code signing and Java
  security policies
   – Cross-tenant sharing is via the network (REST, SOAP, etc)
• Every tenant has all services by default but they can be
  turned off
• You can deploy webapps that are available to all tenants
   – Super Tenant mode



                                                            @pzfreo #wso2 14
Carbon Context
• org.wso2.carbon.context.CarbonContext
• Access to:
  –   UserRealm (Identity)
  –   Registry
  –   Cache (JSR107)
  –   Endpoint Discovery
• All within the correct environment for the
  tenant or within a super-tenant environment


                                     @pzfreo #wso2 15
Stratos 1.5.2 Services




                 © WSO2 2011   @pzfreo #wso2
What is a “Stratos Service”
• A cluster of one or more network-available servers
   – could be VMs or JVMs or Linux partitions
   – Each cluster can logically handle all tenants
      • Maybe that there is partitioning by tenant or group of tenants
   – Should support SAML2 single-sign on
      • Identity is used to identify which tenant
• Can be elastically scaled
   – Not a hard requirement
   – Elasticity and Multi-tenancy are orthogonal




                                                           @pzfreo #wso2 17
List of Stratos Services
• cloud-services-desc.xml
<cloudServices xmlns="http://wso2.com/carbon/cloud/mgt/services">
 <cloudService name="WSO2 Stratos Enterprise Service Bus" default="true">
   <label>Stratos Enterprise Service Bus</label>
   <link>https://esb.cloud-test.wso2.com:9452</link>
   <icon>
    https://cloud-test.wso2.com:9443/cloud-services-icons/esb.gif
   </icon>
   <productPageURL>http://wso2.com/products/enterprise-service-bus/</productPageURL>
   <description>Enterprise Service Bus in the cloud.</description>
</cloudService>
…

• The Registry is used to manage which tenants have access
  to which services:
    – E.g. /_system/governance/repository/components/org.wso2.stratos/cloud-
      manager/cloud-services/27/WSO2 Stratos Enterprise Service Bus
                                                                      @pzfreo #wso2 18
Elastic Auto-Scaling
• The WSO2 Elastic Load Balancer is a key part
  of the Stratos infrastructure
  – Tenant Self-registration, self-deployment and
    multi-tenancy could lead to a lot of work on a
    single server
  – The Stratos multi-tenancy approach is designed
    to support the “long-tail”




                                          @pzfreo #wso2 19
Elastic Load Balancer




                        @pzfreo #wso2 20
Stratos Elastic Load Balancer
• A custom deployment of Synapse tuned for passthru proxying and
  performance
• Currently supports EC2 APIs
    – Amazon, Eucalyptus, OpenStack with vmWare and Rackspace in plan
• There is a base AMI ID and a per-service payload zip
    –   ELB starts the AMI on a new VM by passing a payload.zip
    –   - Payload contains S3 credentials, information about Product to be
    –   deployed, configuration files locations, etc.
    –   AMI downloads the payload.zip
    –   AMI connects to S3 using credentials, downloads the service binary from S3
        and config files using information from payload.zip
• Autoscaling is currently based on concurrent message load
    – Extensible model
    – Looking at using wider metering results


                                                                    @pzfreo #wso2 21
Example of a new Service
• PHP Services (in progress)
   – Using chroot environments
       • Also looking at LXC (http://lxc.sourceforge.net/)
       • A lightweight model for virtualization/tenant separation
• Each tenant runs on a different ip+port on the server
   – http://php.stratos.your.com/t/fremantle.org/app
       • is URL rewritten to
   – http://ip:port/app
• The PHP environment uses the Identity Server and Registry
   – Provide a store for code
   – Tenant identity and authorization model
• This will be extended to become a full SPI (Service Provider
  Interface) to plug in any new non-Java Service
                                                                    @pzfreo #wso2 22
Adding multi-tenancy to existing apps
• Start with the PHP Service model
• Add in:
  – HDFS support (multi-tenant filesystem)
  – RSS support (multi-tenant JDBC/RDBMS)
  – Multi-tenant Logging model
     • Can be syslog-based logging calls
  – Elastic scaling
  – Metering and Billing calls
     • Optional – but useful
     • Multi-language Thrift API
                                           @pzfreo #wso2 23
Integrating Development Management
into Stratos
• The Stratos Service model is very extensible
  and flexible
  – E.g. Dev / Staging / Production can be different
    “Stratos Services”
  – Use Registry lifecycles or BPEL to manage the
    workflow / lifecycle of code into those Services




                                            @pzfreo #wso2 24
Integrating Development Management
into Stratos




                             @pzfreo #wso2 25
Workflows
Examples
• Add project (aka tenant)
   – Creates Project Management, SVN, and Stratos Tenant
• Add user to project
   – Configures permissions in SVN, PM and Stratos
• Deploy project into production
   – Initiates approval governance process
   – Maven build of the code
   – Deploys into staging
      • Notifies approval team of new project awaiting approval
   – Once approved, automatically deploys into Production
                                                          @pzfreo #wso2 26
Recap
• Understanding Stratos
• What are Stratos Services
   – How do I extend, re-use, reconfigure, add my own
• What is the Stratos ELB?
   – How does it work
   – Roadmap
• How to add multi-tenancy to existing apps
• Managing development and governance



                                                 @pzfreo #wso2 27
Enterprise Application Development
API Store and API Management




                                     @pzfreo #wso2
Users
Partners
                  “Your Business As A Service”



                    Tenant          Tenant             Tenant    Tenant
                     Apps            Apps               Apps      Apps
Ecosystem Owner




                                       PaaS / Stratos

                                    API Management / API Store


                             Existing business systems as APIs


                                                                    @pzfreo #wso2
Vertical PaaS
“Your Business as a Service”
• Based on real projects that WSO2 is running
• Beyond APIs – because it creates a shared
  governance model and runtime
• An opportunity to add significant value to
  partners:
  • A complete environment that they can customize
  • Can include multi-tenanted legacy software
  • Not just the look and feel but also the behaviour
  • An ideal platform for shared revenue
• A shift in business models enabled by cloud
  technology
                                                  @pzfreo #wso2
“Your Business”-as-a-Service summary
• Inherent deep multi-tenancy enables
  ecosystem plays
  • Not just shallow per-tenant customization
      •   E.g. eBay Stores, Amazon Sellers
  • But significant per-tenant customization
• Client success stories demonstrates key
  aspects:
  •   Ecosystem creation
  •   Shared governance and revenue model
  •   Significant benefit beyond APIs
  •   Cloud Development
  •   Automated Governance

                                                @pzfreo #wso2
Questions?




             http://www.flickr.com/photos/oberazzi/

                                           @pzfreo #wso2 32

More Related Content

PPTX
A multi-tenant architecture for Apache Axis2
PDF
Kafka as Message Broker
PDF
Real time web apps
PDF
October 2016 HUG: Pulsar,  a highly scalable, low latency pub-sub messaging s...
PPTX
Modern Distributed Messaging and RPC
PDF
What's New in WildFly 9?
PPTX
Introduction to Kafka and Zookeeper
PPTX
Blue host openstacksummit_2013
A multi-tenant architecture for Apache Axis2
Kafka as Message Broker
Real time web apps
October 2016 HUG: Pulsar,  a highly scalable, low latency pub-sub messaging s...
Modern Distributed Messaging and RPC
What's New in WildFly 9?
Introduction to Kafka and Zookeeper
Blue host openstacksummit_2013

What's hot (20)

PDF
Pulsar Storage on BookKeeper _Seamless Evolution
PPTX
Going event drive + Kafka a RabbitMQ
PDF
Apache ActiveMQ and Apache ServiceMix
ODP
Red Hat Open Day JBoss Fuse
PDF
Messaging With ActiveMQ
PDF
Messaging With Apache ActiveMQ
PPTX
Kafka Tutorial: Kafka Security
PPTX
Understanding kafka
PDF
CloudStack Networking Deepdive CCCEU13
PPTX
Kafka tutorial
PDF
Private cloud networking_cloudstack_days_austin
PPTX
Apache kafka
PDF
Reliable Messaging /Guaranteed delivery
PDF
Effectively-once semantics in Apache Pulsar
PPTX
Kafka Tutorial: Streaming Data Architecture
PDF
Kafka Security 101 and Real-World Tips
PPTX
Kafka: Internals
PDF
Apache BookKeeper: A High Performance and Low Latency Storage Service
PDF
Spicing up JMX with Jolokia (Devoxx 2014)
Pulsar Storage on BookKeeper _Seamless Evolution
Going event drive + Kafka a RabbitMQ
Apache ActiveMQ and Apache ServiceMix
Red Hat Open Day JBoss Fuse
Messaging With ActiveMQ
Messaging With Apache ActiveMQ
Kafka Tutorial: Kafka Security
Understanding kafka
CloudStack Networking Deepdive CCCEU13
Kafka tutorial
Private cloud networking_cloudstack_days_austin
Apache kafka
Reliable Messaging /Guaranteed delivery
Effectively-once semantics in Apache Pulsar
Kafka Tutorial: Streaming Data Architecture
Kafka Security 101 and Real-World Tips
Kafka: Internals
Apache BookKeeper: A High Performance and Low Latency Storage Service
Spicing up JMX with Jolokia (Devoxx 2014)
Ad

Viewers also liked (14)

ODP
Open shift 2.x and MongoDB
PDF
Introduction to PaaS for application developers
PDF
Ose mod march11
PDF
OpenShift PaaS Overviewi by Marek Jelen 03-2013 CodeMotion Roma
PPT
Openshift GeoSpatial Capabilities
PDF
Using OpenShift PaaS
PDF
WSO2Con ASIA 2016: Case Study: Identity in the WSO2 Ecosystem
ODP
OpenShift PaaS Anywhere (Infrastructure.Next Ghent 2014-02-24) Diane Mueller
ODP
Deploying & Scaling OpenShift on OpenStack using Heat - OpenStack Seattle Mee...
PPTX
Private PaaS & Container-as-a-Service for ISVs and Enterprise - Use Cases and...
PDF
What Every MSP Needs to Know for Cloud Success
PPTX
PDF
TechTalkThursday 02.03.2017: Container-Orchestrierung mit OpenShift - Unser W...
PPTX
OpenShift Enterprise 3.1 vs kubernetes
Open shift 2.x and MongoDB
Introduction to PaaS for application developers
Ose mod march11
OpenShift PaaS Overviewi by Marek Jelen 03-2013 CodeMotion Roma
Openshift GeoSpatial Capabilities
Using OpenShift PaaS
WSO2Con ASIA 2016: Case Study: Identity in the WSO2 Ecosystem
OpenShift PaaS Anywhere (Infrastructure.Next Ghent 2014-02-24) Diane Mueller
Deploying & Scaling OpenShift on OpenStack using Heat - OpenStack Seattle Mee...
Private PaaS & Container-as-a-Service for ISVs and Enterprise - Use Cases and...
What Every MSP Needs to Know for Cloud Success
TechTalkThursday 02.03.2017: Container-Orchestrierung mit OpenShift - Unser W...
OpenShift Enterprise 3.1 vs kubernetes
Ad

Similar to Advanced use cases and approaches with stratos paa s (20)

PDF
Stratos Open PaaS OSCON 2011
PPT
Stratos and PaaS for London Java Community
PDF
Evolution of PaaS
PPTX
WSO2Con 2011: Introduction to Stratos
PPTX
WSO2con 2011: Introduction to Stratos
ODP
All stuff cloudyy
PPTX
Open Source Middleware for the Cloud: WSO2 Stratos
PPT
Understanding Platform as a Service
PDF
Beyond Economics - Cloud as a Business Enabler
PPTX
2014 q3-platform-update-v1.06.johnmathon
PDF
Building Multi-tenant SaaS Applications using WSO2 Private PaaS
PDF
WSO2 Quarterly Technical Update
PDF
Buiding and Deploying SaaS with WSO2 as as-a-Service
PDF
Understanding the WSO2 Platform and Technology
PPTX
Stratos AppFactory in the Cloud tampa meetup-2013-09
PDF
Introduction to stratos live
PDF
Roadmap to the Clouds - How to Easily Migrate to the Cloud Platform Using WSO...
PPTX
WSO2 Roadmap and Vision
PDF
The Evolution of Integration
PPTX
The New IT - Your Milestone Plan
Stratos Open PaaS OSCON 2011
Stratos and PaaS for London Java Community
Evolution of PaaS
WSO2Con 2011: Introduction to Stratos
WSO2con 2011: Introduction to Stratos
All stuff cloudyy
Open Source Middleware for the Cloud: WSO2 Stratos
Understanding Platform as a Service
Beyond Economics - Cloud as a Business Enabler
2014 q3-platform-update-v1.06.johnmathon
Building Multi-tenant SaaS Applications using WSO2 Private PaaS
WSO2 Quarterly Technical Update
Buiding and Deploying SaaS with WSO2 as as-a-Service
Understanding the WSO2 Platform and Technology
Stratos AppFactory in the Cloud tampa meetup-2013-09
Introduction to stratos live
Roadmap to the Clouds - How to Easily Migrate to the Cloud Platform Using WSO...
WSO2 Roadmap and Vision
The Evolution of Integration
The New IT - Your Milestone Plan

More from WSO2 (20)

PDF
Demystifying CMS-0057-F - Compliance Made Seamless with WSO2
PDF
Quantum Threats Are Closer Than You Think – Act Now to Stay Secure
PDF
Modern Platform Engineering with Choreo - The AI-Native Internal Developer Pl...
PDF
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
PDF
Build Smarter, Deliver Faster with Choreo - An AI Native Internal Developer P...
PDF
Platformless Modernization with Choreo.pdf
PDF
Application Modernization with Choreo for the BFSI Sector
PDF
Choreo - The AI-Native Internal Developer Platform as a Service: Overview
PDF
[Roundtable] Choreo - The AI-Native Internal Developer Platform as a Service
PPTX
WSO2Con 2025 - Building AI Applications in the Enterprise (Part 1)
PPTX
WSO2Con 2025 - Building Secure Business Customer and Partner Experience (B2B)...
PPTX
WSO2Con 2025 - Building Secure Customer Experience Apps
PPTX
WSO2Con 2025 - AI-Driven API Design, Development, and Consumption with Enhanc...
PPTX
WSO2Con 2025 - AI-Driven API Design, Development, and Consumption with Enhanc...
PPTX
WSO2Con 2025 - Unified Management of Ingress and Egress Across Multiple API G...
PPTX
WSO2Con 2025 - How an Internal Developer Platform Lets Developers Focus on Code
PPTX
WSO2Con 2025 - Architecting Cloud-Native Applications
PDF
Mastering Intelligent Digital Experiences with Platformless Modernization
PDF
Accelerate Enterprise Software Engineering with Platformless
PDF
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
Demystifying CMS-0057-F - Compliance Made Seamless with WSO2
Quantum Threats Are Closer Than You Think – Act Now to Stay Secure
Modern Platform Engineering with Choreo - The AI-Native Internal Developer Pl...
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
Build Smarter, Deliver Faster with Choreo - An AI Native Internal Developer P...
Platformless Modernization with Choreo.pdf
Application Modernization with Choreo for the BFSI Sector
Choreo - The AI-Native Internal Developer Platform as a Service: Overview
[Roundtable] Choreo - The AI-Native Internal Developer Platform as a Service
WSO2Con 2025 - Building AI Applications in the Enterprise (Part 1)
WSO2Con 2025 - Building Secure Business Customer and Partner Experience (B2B)...
WSO2Con 2025 - Building Secure Customer Experience Apps
WSO2Con 2025 - AI-Driven API Design, Development, and Consumption with Enhanc...
WSO2Con 2025 - AI-Driven API Design, Development, and Consumption with Enhanc...
WSO2Con 2025 - Unified Management of Ingress and Egress Across Multiple API G...
WSO2Con 2025 - How an Internal Developer Platform Lets Developers Focus on Code
WSO2Con 2025 - Architecting Cloud-Native Applications
Mastering Intelligent Digital Experiences with Platformless Modernization
Accelerate Enterprise Software Engineering with Platformless
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation

Recently uploaded (20)

PDF
Empathic Computing: Creating Shared Understanding
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Cloud computing and distributed systems.
PDF
Modernizing your data center with Dell and AMD
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
cuic standard and advanced reporting.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
Advanced Soft Computing BINUS July 2025.pdf
PDF
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
PDF
KodekX | Application Modernization Development
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Electronic commerce courselecture one. Pdf
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Big Data Technologies - Introduction.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Approach and Philosophy of On baking technology
Empathic Computing: Creating Shared Understanding
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Per capita expenditure prediction using model stacking based on satellite ima...
20250228 LYD VKU AI Blended-Learning.pptx
Cloud computing and distributed systems.
Modernizing your data center with Dell and AMD
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
cuic standard and advanced reporting.pdf
Machine learning based COVID-19 study performance prediction
Advanced Soft Computing BINUS July 2025.pdf
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
KodekX | Application Modernization Development
“AI and Expert System Decision Support & Business Intelligence Systems”
Electronic commerce courselecture one. Pdf
MYSQL Presentation for SQL database connectivity
Big Data Technologies - Introduction.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Approach and Philosophy of On baking technology

Advanced use cases and approaches with stratos paa s

  • 1. Advanced Use Cases and Approaches with WSO2 Stratos Paul Fremantle CTO and Co-Founder www.wso2.com paul@wso2.com @pzfreo #wso2
  • 2. Agenda • This is a follow on to the presentation I gave at Qcon: – http://freo.me/xhHmkP • Quick recap • Understanding the system architecture of Stratos – Identity model – Multi-tenancy – Elastic Load Balancer • How do new Services fit in? • How can I multi-tenant existing code? • Integrating development management into Stratos • Advanced use cases • Summary @pzfreo #wso2 2
  • 3. What should you take away from this presentation? • What are Stratos and StratosLive? • How can I try out Stratos? – On the Web? – On your machine? • How can I extend Stratos? • Where can an extensible open PaaS give me competitive advantage? • Where can I get more information? @pzfreo #wso2 3
  • 4. Moore’s Law for Data • The amount of data online went from – 5 exabytes in 2002 – 281 exabytes in 2009 • Doubling every 15 months • You cannot deal with this data growth with the same applications – A reasonable conclusion is that the number of applications will double every 15 months too @pzfreo #wso2
  • 5. Stratos Overview • Stratos – an Open Source project / product – A full middleware platform available as a service, with self service • Fast provisioning – Based on OSGi • Modular, componentized, standard – Multi-tenant, Elastic, Metered and Billed • Effective and powerful – Available under the Apache License • Open Source, Open License, Open Development • StratosLive – a Platform-as-a-Service – Stratos running in the cloud with various plans • Including a free demo plan @pzfreo #wso2
  • 6. Stratos resources • Running on the web – http://stratoslive.wso2.com • Stratos SVN – http://svn.wso2.org/repos/wso2/trunk/stratos/ • Stratos-dev list – https://mail.wso2.org/cgi-bin/mailman/listinfo/stratos- dev • Blog on how to build / install – http://yumani.blogspot.com/2011/06/setting-up-wso2- stratos-in-personal.html @pzfreo #wso2 6
  • 7. Private Cloud Middleware Platform @pzfreo #wso2
  • 8. StratosLive vs Stratos • StratosLive contains all the “Services” in a default / vanilla state • Stratos can contain: – More services • e.g. New services you create – Fewer services • e.g. just AS/DSS – Customized deployments of services • e.g. ready configured with libraries / APIs / host objects @pzfreo #wso2 8
  • 9. Installation options • 1. Full installation (like StratosLive) – Pre-reqs • IaaS – Eucalyptus, vmWare, Ubuntu or Amazon • MySQL & Perl & JVM • Ability to run a number of VMs (one per service) • 2. Laptop/Simple install (on my laptop) – Pre-reqs • A machine with lots of memory (4Gb min, 8GB preferred) • JVM • MySQL & Perl @pzfreo #wso2 9
  • 10. Examples and Case Studies • System Integrator – Currently running Stratos for internal projects – Examining the use of Stratos for customer projects and SaaS • Home Loan Bank – WSO2 runs a private deployment of Stratos – Developer sandbox and test environment – Currently apps are then deployed internally in Carbon • Ecosystem PaaS – Combination of cross tenant services / APIs – Allow each tenant to deploy / customise the logic • Mobile PaaS – Building a PaaS environment for a mobile telco • SaaS-enablement of legacy applications @pzfreo #wso2
  • 11. ESB and PaaS example Tenant Tenant Tenant Tenant App App App App Internet Gateway (WSO2 ESB providing Traffic Core ESB shaping, QoS, and LB) Core Services @pzfreo #wso2
  • 12. Available Services in Stratos (a selection) @pzfreo #wso2 12
  • 13. Every Service has a network API • All admin functions and all the low level services are available as SOAP APIs – Full SOAP support, REST in some cases – Always possible to bridge into REST using the ESB • Why? – Clear SOA design • Allow mashups, BPEL and ESB integration – Automated provisioning – Support hybrid multi-tenancy models for legacy software @pzfreo #wso2 13
  • 14. Multi-tenancy • Every service can support multiple tenants in the same container – Higher efficiency, lower resources – Can be split tenant per-VM using the MT-aware Load Balancer • Isolation includes classloaders, code signing and Java security policies – Cross-tenant sharing is via the network (REST, SOAP, etc) • Every tenant has all services by default but they can be turned off • You can deploy webapps that are available to all tenants – Super Tenant mode @pzfreo #wso2 14
  • 15. Carbon Context • org.wso2.carbon.context.CarbonContext • Access to: – UserRealm (Identity) – Registry – Cache (JSR107) – Endpoint Discovery • All within the correct environment for the tenant or within a super-tenant environment @pzfreo #wso2 15
  • 16. Stratos 1.5.2 Services © WSO2 2011 @pzfreo #wso2
  • 17. What is a “Stratos Service” • A cluster of one or more network-available servers – could be VMs or JVMs or Linux partitions – Each cluster can logically handle all tenants • Maybe that there is partitioning by tenant or group of tenants – Should support SAML2 single-sign on • Identity is used to identify which tenant • Can be elastically scaled – Not a hard requirement – Elasticity and Multi-tenancy are orthogonal @pzfreo #wso2 17
  • 18. List of Stratos Services • cloud-services-desc.xml <cloudServices xmlns="http://wso2.com/carbon/cloud/mgt/services"> <cloudService name="WSO2 Stratos Enterprise Service Bus" default="true"> <label>Stratos Enterprise Service Bus</label> <link>https://esb.cloud-test.wso2.com:9452</link> <icon> https://cloud-test.wso2.com:9443/cloud-services-icons/esb.gif </icon> <productPageURL>http://wso2.com/products/enterprise-service-bus/</productPageURL> <description>Enterprise Service Bus in the cloud.</description> </cloudService> … • The Registry is used to manage which tenants have access to which services: – E.g. /_system/governance/repository/components/org.wso2.stratos/cloud- manager/cloud-services/27/WSO2 Stratos Enterprise Service Bus @pzfreo #wso2 18
  • 19. Elastic Auto-Scaling • The WSO2 Elastic Load Balancer is a key part of the Stratos infrastructure – Tenant Self-registration, self-deployment and multi-tenancy could lead to a lot of work on a single server – The Stratos multi-tenancy approach is designed to support the “long-tail” @pzfreo #wso2 19
  • 20. Elastic Load Balancer @pzfreo #wso2 20
  • 21. Stratos Elastic Load Balancer • A custom deployment of Synapse tuned for passthru proxying and performance • Currently supports EC2 APIs – Amazon, Eucalyptus, OpenStack with vmWare and Rackspace in plan • There is a base AMI ID and a per-service payload zip – ELB starts the AMI on a new VM by passing a payload.zip – - Payload contains S3 credentials, information about Product to be – deployed, configuration files locations, etc. – AMI downloads the payload.zip – AMI connects to S3 using credentials, downloads the service binary from S3 and config files using information from payload.zip • Autoscaling is currently based on concurrent message load – Extensible model – Looking at using wider metering results @pzfreo #wso2 21
  • 22. Example of a new Service • PHP Services (in progress) – Using chroot environments • Also looking at LXC (http://lxc.sourceforge.net/) • A lightweight model for virtualization/tenant separation • Each tenant runs on a different ip+port on the server – http://php.stratos.your.com/t/fremantle.org/app • is URL rewritten to – http://ip:port/app • The PHP environment uses the Identity Server and Registry – Provide a store for code – Tenant identity and authorization model • This will be extended to become a full SPI (Service Provider Interface) to plug in any new non-Java Service @pzfreo #wso2 22
  • 23. Adding multi-tenancy to existing apps • Start with the PHP Service model • Add in: – HDFS support (multi-tenant filesystem) – RSS support (multi-tenant JDBC/RDBMS) – Multi-tenant Logging model • Can be syslog-based logging calls – Elastic scaling – Metering and Billing calls • Optional – but useful • Multi-language Thrift API @pzfreo #wso2 23
  • 24. Integrating Development Management into Stratos • The Stratos Service model is very extensible and flexible – E.g. Dev / Staging / Production can be different “Stratos Services” – Use Registry lifecycles or BPEL to manage the workflow / lifecycle of code into those Services @pzfreo #wso2 24
  • 25. Integrating Development Management into Stratos @pzfreo #wso2 25
  • 26. Workflows Examples • Add project (aka tenant) – Creates Project Management, SVN, and Stratos Tenant • Add user to project – Configures permissions in SVN, PM and Stratos • Deploy project into production – Initiates approval governance process – Maven build of the code – Deploys into staging • Notifies approval team of new project awaiting approval – Once approved, automatically deploys into Production @pzfreo #wso2 26
  • 27. Recap • Understanding Stratos • What are Stratos Services – How do I extend, re-use, reconfigure, add my own • What is the Stratos ELB? – How does it work – Roadmap • How to add multi-tenancy to existing apps • Managing development and governance @pzfreo #wso2 27
  • 28. Enterprise Application Development API Store and API Management @pzfreo #wso2
  • 29. Users Partners “Your Business As A Service” Tenant Tenant Tenant Tenant Apps Apps Apps Apps Ecosystem Owner PaaS / Stratos API Management / API Store Existing business systems as APIs @pzfreo #wso2
  • 30. Vertical PaaS “Your Business as a Service” • Based on real projects that WSO2 is running • Beyond APIs – because it creates a shared governance model and runtime • An opportunity to add significant value to partners: • A complete environment that they can customize • Can include multi-tenanted legacy software • Not just the look and feel but also the behaviour • An ideal platform for shared revenue • A shift in business models enabled by cloud technology @pzfreo #wso2
  • 31. “Your Business”-as-a-Service summary • Inherent deep multi-tenancy enables ecosystem plays • Not just shallow per-tenant customization • E.g. eBay Stores, Amazon Sellers • But significant per-tenant customization • Client success stories demonstrates key aspects: • Ecosystem creation • Shared governance and revenue model • Significant benefit beyond APIs • Cloud Development • Automated Governance @pzfreo #wso2
  • 32. Questions? http://www.flickr.com/photos/oberazzi/ @pzfreo #wso2 32