Date post: | 15-Jan-2015 |
Category: |
Technology |
Upload: | wso2 |
View: | 576 times |
Download: | 0 times |
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)
*
About the Presenter
M. Isuru Tharanga Chrishantha Perera
๏ Committer and PPMC member of Apache Stratos (incubating)
๏ Senior Software Engineer, WSO2๏ http://about.me/chrishantha
**
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
**
What WSO2 delivers
**
Business Model
*
Outline
๏ Brief introduction to Stratos
๏ Installing Stratos on Amazon EC2
๏ Stratos Configurations: Partitions & Smart Policies
๏ Demo
๏ Configuring Stratos and Subscribing to Cartridges
*
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!
*
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
*
Stratos Architecture
*
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
*
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
*
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
*
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
*
Stratos Manager Console
*
Stratos CLI
*
Configuring Stratos
*
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
*
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" } }}
*
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" } ] }}
*
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" } ] }
*
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" } }}
*
Demo
๏ Configuring Stratos using the Console
๏ Subscribing to Cartridges
*
Subscribing to Cartridges
*
My Cartridges
https://github.com/chrishantha/stratos-drupal.git
*
Drupal on PHP Cartridge
**
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
Contact us !