Introducing apache stratos (incubating) & wso2 paa s foundation

Post on 10-May-2015

962 views 1 download

Tags:

Transcript of 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

What is a middleware Platform?

What is a middleware Platform?

What is a middleware Platform?

What is Platform as a Service?

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

Apache Stratos 3.0 Architecture

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.

Stratos Core Components - CC

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

Stratos Core Components - ELB

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

Stratos Cartridges

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

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)

Artifact Distribution Coordinator

Lets setup Apache Stratos on EC2

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

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/

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"

Now your Apache Stratos is ready use!!!

Demo – Usage if the Stratos● Tenant creation

● Wordpress deployment

– Subscribing to MySQL

– Subscribing PHP

● Artifact distribution

– Manual sync

– Automated sync

● Domain mapping

● Auto Scaling

Demo – Create WSO2 App Server Cartridge

Thank You!