building your own paas using apache stratos

Post on 15-Jan-2015

580 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

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 !

top related