Building your own PaaS using Apache Stratos

1,834 views

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,834
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
70
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Building your own PaaS using Apache Stratos

  1. 1. Committer and PPMC member of Apache Stratos (incubating) Senior Software Engineer, WSO2 April 2014 M. Isuru Tharanga Chrishantha Perera Building your own PaaS using Apache Stratos (incubating)
  2. 2. * About the Presenter M. Isuru Tharanga Chrishantha Perera ๏ Committer and PPMC member of Apache Stratos (incubating) ๏ Senior Software Engineer, WSO2 ๏ http://about.me/chrishantha
  3. 3. ** About WSO2 ๏ Global enterprise, founded in 2005 by acknowledged leaders in XML, web services technologies, standards and open source ๏ Provides only open source platform-as-a-service for private, public and hybrid cloud deployments ๏ All WSO2 products are 100% open source and released under the Apache License Version 2.0. ๏ Is an Active Member of OASIS, Cloud Security Alliance, OSGi Alliance, AMQP Working Group, OpenID Foundation and W3C. ๏ Driven by Innovation ๏ Launched first open source API Management solution in 2012 ๏ Launched App Factory in 2Q 2013 ๏ Launched Enterprise Store and first open source Mobile solution in 4Q 2013
  4. 4. ** What WSO2 delivers
  5. 5. ** Business Model
  6. 6. * Outline ๏ Brief introduction to Stratos ๏ Installing Stratos on Amazon EC2 ๏ Stratos Configurations: Partitions & Smart Policies ๏ Demo ๏ Configuring Stratos and Subscribing to Cartridges
  7. 7. * What is Apache Stratos? ๏ It is a Platform-as-a-Service (PaaS) Framework ๏ Currently incubating at Apache Software Foundation ๏ A Single Product with Multiple Profiles ๏ Developer Friendly!
  8. 8. * Why is this a Framework? ๏ Stratos can be extended to build you own flavours of PaaS. ๏ Application PaaS (aPaaS), Integration PaaS (iPaaS) etc. ๏ WSO2 App Cloud (WSO2 App Factory) runs on Stratos. ๏ Provides APIs & extensions ๏ Easy to bring your applications to cloud
  9. 9. * Stratos Architecture
  10. 10. * Stratos Product ๏ Stratos is now a single product with multiple profiles ๏ Leveraging WSO2 Carbon multiple profile support ๏ There are 3 profiles: ๏ Cloud Controller (cc) ๏ Stratos Manager (sm) ๏ Auto Scaler (as) ๏ Default profile additionally includes WSO2 CEP
  11. 11. * Installation Prerequisites ๏ An Infrastructure-as-a-Service (IaaS) provider ๏ Java 1.6 ๏ Message Broker with AMQP support. ๏ Apache ActiveMQ/WSO2 MB ๏ MySQL ๏ Puppet https://cwiki.apache.org/confluence/display/STRATOS/4.0.0+Prerequisites
  12. 12. * Why do we need Puppet? ๏ Puppet is a server automation tool ๏ Automated Cartridge Configuration ๏ Easy to manage different cartridges ๏ All configurations are in the Puppet Master https://cwiki.apache.org/confluence/display/STRATOS/4.0.0+Configuring+Puppet+Master
  13. 13. * Let’s Install Stratos ๏ We provide a setup script. ๏ Follow instructions in our wiki. ๏ Edit conf/setup.conf ๏ Run Setup https://cwiki.apache.org/confluence/display/STRATOS/4.0.0+Single+JVM+Product+Configuration
  14. 14. * Stratos Manager Console
  15. 15. * Stratos CLI
  16. 16. * Configuring Stratos
  17. 17. * Partitions ๏ Defining the cloud partition boundaries: { "id":"AWSEC2USWestOregonPartition1", "provider":"ec2", "property":[ { "name":"region", "value":"us-west-2" }, { "name":"zone", "value":"us-west-2a" } ] } https://cwiki.apache.org/confluence/display/STRATOS/4.0.0+Partitions
  18. 18. * Autoscale Policy ๏ When to take autoscaling decisions: { "id":"simpleAutoscalePolicy", "loadThresholds":{ "requestsInFlight":{ "average":"20", "gradient":"0", "secondDerivative":"0", "scaleDownMarginOfGradient":"1.0", "scaleDownMarginOfSecondDerivative":"0.2" }, "memoryConsumption":{ "average":"80", "gradient":"0", "secondDerivative":"0", "scaleDownMarginOfGradient":"1.0", "scaleDownMarginOfSecondDerivative":"0.2" }, "loadAverage":{ "average":"80", "gradient":"0", "secondDerivative":"0", "scaleDownMarginOfGradient":"1.0", "scaleDownMarginOfSecondDerivative":"0.2" } } }
  19. 19. * Deployment Policy ๏ Defining the autoscaling partition algorithm and upper & lower limits of number of instances required in each partition { "id":"simpleDeploymentPolicy", "partitionGroup":{ "id":"ec2", "partitionAlgo":"one-after-another", "partition":[ { "id":"AWSEC2USWestOregonPartition1", "partitionMax":"3", "partitionMin":"1" } ] } }
  20. 20. * LB Cartridge ๏ Defining load balancer cartridge configuration{ "type":"lb", "provider":"lb", "host":"apachestratos.org", "displayName":"Stratos Load Balancer", "description":"LB Cartridge", "version":"4.0", "defaultAutoscalingPolicy":"simpleAutoscalePolicy", "portMapping":[ { "protocol":"http", "port":"80" }, { "protocol":"https", "port":"443" } ], "iaasProvider":[ { "type":"ec2", "imageId":"us-west-2/ami-2c412a1c", "maxInstanceLimit":"5", "property":[ { "name":"instanceType", "value":"m1.small" } ] } ], "loadBalancer":{}, "property":[ { "name":"load.balancer", "value":"true" } ] }
  21. 21. * PHP & Other Cartridges ๏ Defining PHP cartridge configuration: { "type":"php", "provider":"apache", "host":"apachestratos.org", "displayName":"PHP", "description":"PHP Cartridge", "version":"5.0", "portMapping":[ { "protocol":"http", "port":"80", "proxyPort":"80" }], "iaasProvider":[ { "type":"ec2", "imageId":"us-west-2/ami-a0bfd490", "property":[ { "name":"instanceType", "value":"t1.micro" } ] } ], "loadBalancer":{ "type":"lb", "property":{ "name":"default.load.balancer", "value":"true" } } }
  22. 22. * Demo ๏ Configuring Stratos using the Console ๏ Subscribing to Cartridges
  23. 23. * Subscribing to Cartridges
  24. 24. * My Cartridges https://github.com/chrishantha/stratos-drupal.git
  25. 25. * Drupal on PHP Cartridge
  26. 26. ** Join the community ๏ Visit Apache Stratos (incubating) web site: http://stratos.incubator.apache.org/index.html ๏ Join our mailing list: http://stratos.incubator.apache.org/community/mailing-lists.html ๏ Google+: https://plus.google.com/+ApacheStratos ๏ Twitter: https://twitter.com/ApacheStratos ๏ Facebook: https://www.facebook.com/apache.stratos ๏ LinkedIn: http://www.linkedin.com/groups/Apache-Stratos-5131436
  27. 27. Contact us !

×