Apache Stratos - Building a PaaS using OSGi and Equinox

Uploaded on

Apache Stratos is a PaaS built on top of Equinox and OSGi. Stratos runs all kinds of workloads including Java, OSGi, Tomcat apps, PHP, Node.js, MySQL, Mongo, Cassandra and others. …

Apache Stratos is a PaaS built on top of Equinox and OSGi. Stratos runs all kinds of workloads including Java, OSGi, Tomcat apps, PHP, Node.js, MySQL, Mongo, Cassandra and others.
This session is an introduction to Stratos which will cover:
- How to get started
- Deploying on Amazon AWS and OpenStack Clouds
- Workloads Stratos supports
- Why and how Equinox is used
- Multi-tenancy and security
- Elastic scaling
- How Stratos compares to other PaaS systems

The session will include live demontrations of Stratos.
The session is aimed at those interested in PaaS models, as well as those with a strong interest in OSGi runtimes and Equinox.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. 1 Apache Stratos Building a PaaS using OSGi and Equinox Paul Fremantle CTO and Co-Founder, WSO2 Committer, Apache Stratos @pzfreo #wso2 #apache paul@wso2.com pzf@apache.org
  • 2. About me o CTO and Co-Founder WSO2 o Working in Apache for 14 years o Working with Cloud, SOA, APIs, MQTT, IoT o Also presenting tomorrow about IoT security (M2M day 2
  • 3. The Small Print 3 Disclaimer Apache Stratos is an effort undergoing incubation at The Apache Software Foundation (ASF). Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
  • 4. 4
  • 5. Today’s Buzzword Bingo! PaaS Cloud Elastic Policy Auto-Scale DevOps jClouds Puppet Platform IaaS Chef Cassandra Multi-tenant Load Balancer Governance Monitoring 5
  • 6. What is a PaaS anyway? 6
  • 7. Gartner Reference Model for Platform as a Service Hardware Integrated PaaS Platform Management, Monitoring, Gov ernance, Provisioning System Infrastructure or System Infrastructure Services (IaaS) PaaS Service Offerings PaaS Technology Core Cloud Performance Foundation Cloud Value Foundation (Shared Resources, Multitenancy, Self-Service, Elasticity, Real-Time Versioning, Metadata Management, Subscription/Use Billing) (In-Memory Computing, Grid/Massive Scale, Auto-Scaling, SLA Enforcement, Use Tracking, High Availability, Security, Data Integrity, Parallel Processing) Integrated PaaS Application Modeling, Design, Development, Maintenance, Life Cycle Management Applications PaaS IaaS SaaS Application Platform Integration Platform Business Process Management Platform Cloud Database Platform Other User Experience Platform
  • 8. What is Cloud? o Depends who you are o My daughter: iCloud (her music in the cloud) o My mum: gmail (her email in the cloud) o My VP sales: Salesforce (his prospects in the cloud) o Sysadmin: Amazon/Rackspace/etc (his infrastructure in the cloud) o *: what you care about, self- provisioned, managed, metered and paid per use, in the cloud 8
  • 9. PaaS is a cloud for developers o Provisioning stuff developers care about: o Not VMs, networks and disk (though that might still be useful) o Application environments, databases, queues o Dev / Staging / Production o Different runtimes: o Java Servlet/Tomcat, Node.js, PHP, Python o MySQL, MongoDB, Cassandra o Etc o Working with Git, SVN, Jenkins, etc 9
  • 10. Who needs a PaaS anyway? o Anyone who wants to provision application environments on-the-fly o A basis for multi-tenant SaaS applications o Elastic scaling and management of the infrastructure o Application based monitoring of the environment o More intelligent use of resources 10
  • 11. What is Apache Stratos? ● A Platform-as-a-Service (PaaS) Framework ● Built on OSGi and Equinox ● Donated to Apache Software Foundation ● Committers from Cisco, Citrix, SunGard, Indiana U, NASA JPL, etc ● Deploys onto an Infrastructure-as-a-Service (IaaS) Including Amazon EC2, VMWare vCloud, OpenStack…etc ● Creates a secure, multi-tenant, elastic, metered, billed PaaS Supports private, public or hybrid PaaS
  • 12. Quick Demo o Warning: this is alpha software o Running on Amazon o Accessed via Conference wifi o Hmmm? Ok who’s idea was that 12
  • 13. 13
  • 14. 14
  • 15. Why OSGi? o A set of servers that need to be deployed in different architectures: o Single JVM for developer testing / small footprint o Scale-out for large scale deployment o Re-usable components from a wider set of middleware o Message Broker o HTTP Load Balancer o Identity Services o Logging and Metering o etc 15
  • 16. © WSO2 2011 Carbon Framework
  • 17. © WSO2 2011 Carbon Component Manager
  • 18. More on Carbon o Based on Equinox o Using p2 feature model o Allows components to be managed and deployed from either local or remote repo o Handles versions and dependencies o Supports rollback o Command line p2 management and OSGi Console o Consistent model for scaling o Master/Slave + Deployment Synchronizer o Consistent Registry/Repository o Security model 18
  • 19. Lessons learnt from Carbon o OSGi is a bit of a pain sometimes o We hide as much as possible from end-users o Used properly it enables massive productivity gains o Small company with > 15 products and world class deployments o Small teams can be productive o End users can enhance the products with their own components o Minification o Scaling out 19
  • 20. What does a PaaS look like > stratos subscribe-cartridge php myphp --repo-url https://github.com/pzfreo/php-s4 --deployment-policy economy Subscribes to a runtime (e.g. php) > git push php-s4 Auto deploys the code into the cartridge 20
  • 21. Stratos Layered Architecture
  • 22. Stratos Cartridges ● A component which can be plugged into Stratos, so that it can use Stratos core services of the framework layer ● Cloud-aware platform environment extending legacy technologies into the cloud and delivering cloud benefits ● Users/DevOps may create custom cartridges and host any application, container, or framework in a Stratos Cloud. (Eg: node.js, Ruby, MongoDB, Wordpress, .net, Oracle WebLogic or JBoss SOA Platform..etc ● Single tenant or multi-tenanted
  • 23. Stratos Cartridges
  • 24. Puppet o Puppet o Powerful devops and provisioning tool o Used by the cartridges to auto-provision o Today to create a cartridge you basically build a puppet script o Next step is that will be a generic Puppet cartridge 24
  • 25. Multi-factored Auto Scaling ● Integrate both real-time and rule-based decision making ● Scaling algorithm can use multiple-factors ● Capable of predicting future load
  • 26. Scalable and Dynamic Load Balancing ● Comes with an HTTP Load Balancer as a cartridge ● Service level load balancing ● Auto Scaling load balancers ● External load balancer integration support ● Supports HAProxy for non-HTTP loads
  • 27. Cloud Bursting
  • 28. Controlling IaaS Resources Partitions ● Logically group IaaS resource locations ● Partitions are important to make application high availability ● Cartridge instances are spawned inside these partitions ● Partitions are defined by DevOps Network Partitions ● Logical groups of multiple partitions, that are in the same network. ● Stratos will spawn Load Balancers per network partition. ● Since LB instances and cartridge instances reside in same network, they can communicate using private IP addresses. ● Used in deployment policies.
  • 29. Smart Policies Auto Scaling Policy ● Defines threshold values pertaining to scale up/down decision ● Auto scaler will refer this policies ● Defined by DevOps ● During cartridge subscription user specifies the auto scaling policy to be used Deployment Policy ● Defines how and where to spawn cartridge instances ● Defines minimum and maximum instances in a selected service cluster ● Defined by DevOps based on deployment patterns ● Guarantee SLA of cloud applications
  • 30. More highlights… ● Unified communication ● Centralized monitoring and metering ● Web UI and CLI ● REST API for integration with external PaaS management interface for both DevOps and user interaction ● Artifact distribution coordinator ● Persistence volume support for cartridges ● Gracefully shutdown instance when scale down
  • 31. App Factory Apache License Open Source 31
  • 32. Why Stratos? o Inherently Multi-tenant o Highly Extensible o OSGi components, AMQP-based architecture, Policies, IaaS, etc o Built in Single Sign On/Identity management model o Policy based o Supports a simple model of partitions o Smart Load Balancing o Non-HTTP Load balancing o LXC support o Apache Foundation o App Factory takes it to the next level 32
  • 33. Want to help? o Feedback and testing o Creating Cartridges o Virgo? Birt? Mosquitto? Etc o Existing apps too (e.g. Drupal, Wordpress, etc) o Porting to Google Compute o Autoscaling policies and rules o Ease of use – creating a Vagrant/LXC distro o Help with App Factory 33
  • 34. Stratos @ Google Summer of Code 6 proposals o Python Agent o AWS LB support o GCE LB support o New scaling algorithms o New LB algorithms o GCE support 34
  • 35. Resources o http://stratos.incubator.apache.org/ o Hangout archives (and future hangouts) o http://stratos.incubator.apache.org/events/hangouts.html o Carbon: o http://www.slideshare.net/wso2.org/introduction-to-the- wso2-carbon-platform-webinar o Stratos o http://www.slideshare.net/lakwarus/overview-of-apache- stratos-incubation-40-architecture 35
  • 36. Questions?