6. 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
8. 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.
10. 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
12. 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
14. 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
15. 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)
–
–
Scaling parameters
–
●
Subscribes to the cartridge with
Other resources such as persistent file system / DB
Cartridge Users
–
Per-tenant users or developers
–
Access deployed applications
–
Upload applications to the cartridge (optional)
18. 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
19. 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-strato
s.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/distributi
on/target/
20. 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"