27
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)

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

Embed Size (px)

DESCRIPTION

These are the slides used for Webinar on 2014-04-10. Webinar title was "Building your own PaaS using Apache Stratos"

Citation preview

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 !