Top Banner
Introducing Apache Stratos (Incubating) & WSO2 PaaS Foundation Lakmal Warusawithana WSO2 Inc Software Architect Afkham Azeez WSO2 Inc Director, Architecture
27
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Introducing apache stratos (incubating) & wso2 paa s foundation

Introducing Apache Stratos (Incubating) & WSO2 PaaS

Foundation

Lakmal WarusawithanaWSO2 Inc

Software Architect

Afkham AzeezWSO2 Inc

Director, Architecture

Page 2: Introducing apache stratos (incubating) & wso2 paa s foundation

What is a middleware Platform?

Page 3: Introducing apache stratos (incubating) & wso2 paa s foundation

What is a middleware Platform?

Page 4: Introducing apache stratos (incubating) & wso2 paa s foundation

What is a middleware Platform?

Page 5: Introducing apache stratos (incubating) & wso2 paa s foundation

What is Platform as a Service?

Page 6: Introducing apache stratos (incubating) & wso2 paa s foundation

What is Apache Stratos?

● A Platform-as-a-Service (PaaS) Framework

● Initially it was WSO2 Stratos, developed and maintained by WSO2. Recently donated to Apache and now it is in incubation.

● Deploys onto an Infrastructure-as-a-Service (IaaS)

● Including Amazon EC2, VMWare vCloud, OpenStack...etc

● Creates a secure, multi-tenant, elastic, metered, billed PaaS

● Supports private, public or hybrid PaaS. Capable of cloud bursting

● Can enable multiple flavours of PaaS:

● Application PaaS (aPaaS), Integration PaaS (iPaaS), Data PaaS (dPaaS), etc

Page 7: Introducing apache stratos (incubating) & wso2 paa s foundation

Apache Stratos 3.0 Architecture

Page 8: Introducing apache stratos (incubating) & wso2 paa s foundation

Stratos Core Components - CC

● Communicate to IaaS level Jclouds API.

● Enables your system to scale across multiple IaaS providers

● Is the central location where the service topology resides

● Responsible for sharing the service topology among Stratos 3.0 core services

● Supports hot update and deployment of its configuration files

● Currently production support in AWS EC2, SUSECloud and Openstack, experimental support for vCloud

● Enables cloud burst your system across multiple IaaS providers.

Page 9: Introducing apache stratos (incubating) & wso2 paa s foundation

Stratos Core Components - CC

Page 10: Introducing apache stratos (incubating) & wso2 paa s foundation

Stratos Core Components - ELB

● Failover, auto-scaling and multi-tenancy

● Single load balancer route incoming requests to clusters of different services in a tenant-aware manner

● IaaS independent elasticity

● Simple textual configuration language

● Private Jet Mode for tenants

● Some tenants load to deploy in a single tenant mode

● Cloud Bursting to hybrid clouds

Page 11: Introducing apache stratos (incubating) & wso2 paa s foundation

Stratos Core Components - ELB

Page 12: Introducing apache stratos (incubating) & wso2 paa s foundation

Stratos Cartridges

● A component which can be plugged into Stratos, so that it can use Stratos core services of the Foundation Layer

● Cloud-aware platform environment extending legacy technologies into the cloud and delivering cloud benefits

● Stratos operations teams may create custom cartridges and host any application, container, or framework in a Stratos Cloud. (Eg: A custom cartridge to bring cloud characteristics to IBM Websphere Application Server, IBM WebSphere ESB, Oracle WebLogic, or JBoss SOA Platform)

● Single tenant or multi-tenanted

● Process level isolation and instance-level dedicated tenancy

Page 13: Introducing apache stratos (incubating) & wso2 paa s foundation

Stratos Cartridges

Page 14: Introducing apache stratos (incubating) & wso2 paa s foundation

Cartridge Tenancy

● A cartridge can operate in two modes:

● Single tenant

– Stratos will run and manage a separate instance for each tenant

– The PHP Cartridge runs this way

● Multi-tenant

– Stratos will run multiple instances partitioned so that sets of tenants run on sets of instances

– Each instance of a Cartridge may run more than one tenant

Page 15: Introducing apache stratos (incubating) & wso2 paa s foundation

User Roles involved in Cartridge Architecture

● Cartridge Creator

– Understands the cartridge domain (e.g. PHP) plus Cartridge SPI

– Creates image and configs (including for different IaaS)

● Cartridge Deployer (Stratos Admin/DevOps)

– Registers cartridge with Stratos

● Cartridge Subscriber(Tenant Admin)

– Subscribes to the cartridge with

– Scaling parameters

– Other resources such as persistent file system / DB

● Cartridge Users

– Per-tenant users or developers

– Access deployed applications

– Upload applications to the cartridge (optional)

Page 16: Introducing apache stratos (incubating) & wso2 paa s foundation

Artifact Distribution Coordinator

Page 17: Introducing apache stratos (incubating) & wso2 paa s foundation

Lets setup Apache Stratos on EC2

Page 18: Introducing apache stratos (incubating) & wso2 paa s foundation

Step 1 - setup prerequisites

● Create a Ubuntu Linux 12.04 m1-xlarge instance on EC2

● Install and setup git, unzip and MySQL Server

● Start a Message Broker (MB) to communicate with the Cloud Controller and other products

– Download WSO2 MB from http://wso2.com/products/message-broker/ and extract it into a preferred location

– If the extracted directory is WSO2MB_HOME, in the WSO2MB_HOME/repository/conf/carbon.xml file change the port offset value to 5.

– Config Java HOME

– Start the MB server with the wso2server.sh script at WSO2MB_HOME/bin

Page 19: Introducing apache stratos (incubating) & wso2 paa s foundation

Step 2 - Build Apache Stratos (incubating) from source code

● git clone --branch 3.0.0-incubating https://git-wip-us.apache.org/repos/asf/incubator-stratos.git

● cd incubator-stratos

● mvn clean install

● It will create 4 products (cloud-controller, stratos-controller, elb, stratos-agent) in following folders

– incubator-stratos/products/<product>/modules/distribution/target/

Page 20: Introducing apache stratos (incubating) & wso2 paa s foundation

Step 3 – install and config the PaaS

● cd tools/stratos-installer

● Create folder and copy all build products into the folder. Download the MySql Java connector and copy the JAR file to the above folder

● Create and download the key pair from IaaS.

● Open up the security rules on the IaaSs with the specified ports, which needs to be defined in the ./conf/setup.conf

● Update the ./conf/setup.conf file and configure the parameters.

● sudo ./setup.sh -p "all"

Page 21: Introducing apache stratos (incubating) & wso2 paa s foundation

Now your Apache Stratos is ready use!!!

Page 22: Introducing apache stratos (incubating) & wso2 paa s foundation
Page 23: Introducing apache stratos (incubating) & wso2 paa s foundation

Demo – Usage if the Stratos● Tenant creation

● Wordpress deployment

– Subscribing to MySQL

– Subscribing PHP

● Artifact distribution

– Manual sync

– Automated sync

● Domain mapping

● Auto Scaling

Page 24: Introducing apache stratos (incubating) & wso2 paa s foundation
Page 25: Introducing apache stratos (incubating) & wso2 paa s foundation

Demo – Create WSO2 App Server Cartridge

Page 26: Introducing apache stratos (incubating) & wso2 paa s foundation
Page 27: Introducing apache stratos (incubating) & wso2 paa s foundation

Thank You!