Transcript
Page 1: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

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)

Page 2: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

*

About the Presenter

M. Isuru Tharanga Chrishantha Perera

๏ Committer and PPMC member of Apache Stratos (incubating)

๏ Senior Software Engineer, WSO2๏ http://about.me/chrishantha

Page 3: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

**

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

Page 4: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

**

What WSO2 delivers

Page 5: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

**

Business Model

Page 6: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

*

Outline

๏ Brief introduction to Stratos

๏ Installing Stratos on Amazon EC2

๏ Stratos Configurations: Partitions & Smart Policies

๏ Demo

๏ Configuring Stratos and Subscribing to Cartridges

Page 7: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

*

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!

Page 8: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

*

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

Page 9: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

*

Stratos Architecture

Page 10: Building your own PaaS using Apache Stratos - Webinar 2014-04-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

Page 11: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

*

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

Page 12: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

*

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

Page 13: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

*

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

Page 14: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

*

Stratos Manager Console

Page 15: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

*

Stratos CLI

Page 16: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

*

Configuring Stratos

Page 17: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

*

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

Page 18: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

*

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" } }}

Page 19: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

*

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" } ] }}

Page 20: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

*

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" } ] }

Page 21: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

*

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" } }}

Page 22: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

*

Demo

๏ Configuring Stratos using the Console

๏ Subscribing to Cartridges

Page 23: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

*

Subscribing to Cartridges

Page 24: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

*

My Cartridges

https://github.com/chrishantha/stratos-drupal.git

Page 25: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

*

Drupal on PHP Cartridge

Page 26: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

**

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

Page 27: Building your own PaaS using Apache Stratos - Webinar 2014-04-10

Contact us !


Recommended