27
Introducing Apache Stratos (Incubating) & WSO2 PaaS Foundation Lakmal Warusawithana WSO2 Inc Software Architect Afkham Azeez WSO2 Inc Director, Architecture

Introducing apache stratos (incubating) & wso2 paa s foundation

Embed Size (px)

Citation preview

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!