Introducing apache stratos (incubating) & wso2 paa s foundation
-
Upload
lakmal-warusawithana -
Category
Technology
-
view
960 -
download
1
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!