Architecture
The architecture of Stratos 2.0 is well designed to face the current challenges faced by the Cloud PaaS space. The cartridge concept is what makes Stratos 2.0 architecture unique from it's predecessors. A Cartridge is the core functional component of Stratos 2.0 which is pluggable. A Cartridge component can take use of the core services provided by WSO2 Stratos 2.0 (for example auto-scaling, load-balancing, health monitoring, metering, billing, tenant provisioning, code deployment, identity management and entitlement), to build a platform in which tenants can deploy their own applications. In summary Stratos 2.0 Cartridge is a Cloud-aware platform environment, which extends legacy technologies into the Cloud and delivers Cloud benefits.
Cartridges may wrap traditional, non-cloud-aware application platform containers extending the traditional technology to the Cloud and provide elastic scalability, resource pooling, on-demand self-service and consumption pricing (for example, WSO2 Stratos 2.0 ships with Cartridges for PHP and MYSQL).
Stratos Operations teams may create custom cartridge types and host any application, container, or framework in a Stratos 2.0 Cloud (for example, a team may create a custom cartridge type to bring cloud characteristics to the IBM Websphere Application Server, IBM WebSphere ESB, Oracle WebLogic or JBoss SOA Platform).
Stratos 2.0 foundation
Stratos 2.0 foundation layer, as the name suggests, builds a strong foundation layer for a Cloud PaaS. It consists of some core components mandatory for any Stratos 2.0 cloud deployment.
Elastic Load Balancer (ELB)
- Load monitoring
- Makes auto-scaling decisions.
- Accepts dynamic cluster domain registrations.
- Accepts static cluster domain registrations at start-up by reading the
loadbalancer.conf
For more information see Elastic Load Balancer
Stratos Controller (SC)
The Stratos Controller mainly consists of the graphical user interface (GUI). The Artifact Distribution Coordinator that is responsible for the distribution of artifacts has been embedded into the Stratos Controller. The Stratos Controller also defines the autoscaling policies that are defined for the Cartridges. For more information see Stratos Controller and the GUI User Guide.
Cloud Controller (CC)
Cloud Controller plays a vital role in Stratos 2.0. The following are the capabilities and duties of the Cloud Controller.
It acts as a bridge between application level and Infrastructure as a Service (IaaS) level via jclouds API.
It enables your system to scale across multiple IaaS providers.
It is the central location where the service topology resides.
It is responsible for periodically sharing up-to-date service topology among other Stratos 2.0 core services.
It supports hot updates and deployment of its configuration files.
It has inbuilt support for ,
AWS EC2 IaaS provider
Openstack Nova IaaS provider
VMWare vCloud provider.
It enables you to cloud burst your system across multiple IaaS providers.
It allows you to easily plug an implementation of any IaaS provider support by jclouds.
It enables you to spawn new service instances, while associating a public IP automatically, to reduce the instance boot-up time.
It enables you to terminate an already started instance of a particular service cluster.
- It can be configured to cover many scenarios, using it's well-thought-out configuration files.
For more information see Cloud Controller
Cartridges
A Cartridge is a package of code or configuration that plugs into Stratos to offer a new PaaS Service (for example Carbon ESB cartridge plugs into provide a Stratos ESB-as-a-Service or the PHP Cartridge plugs into provide PHP-as-a-Service). A Cartridge is also a Virtual Machine (VM) image plus configuration (for example in Stratos 2.0 you need a VM per IaaS) and it can operate in two modes that are namely single tenant and multi-tenant.
For more information see Cartridges.
CLI
The command line interface (CLI) is a powerful tool that clients can use to communicate with Stratos 2.0 services. The tenant can use the CLI tool on two separate modes if needed, which are namely single command line mode and interactive mode. If the user executes with a command as an argument, the CLI tool will execute that command and exit with a status code. However, if there is no command as an argument, the CLI tool will enter into an interactive mode. However, in both modes the tenant has to login to be able to execute the command successfully. The user can export the Stratos Controller URL, username and password too as environment variables that will help to type the password every time.
A user will be able to carryout all the following functions via the CLI, with the exception of registering tenants and viewing logs.
- View list of available Cartridges.
- View list of subscribed Cartridges.
- Subscribing to a Cartridge.
- Unsubscribing from a Cartridge.
- Connecting to a data Cartridge while subscribing to a Cartridge.
- View subscribed Cartridge detailed information.
- View list of auto-scaling policies available.
- Add domain mapping.
- Remove domain mapping.
- Synchronize repository.
The CLI tool also supports command history and auto-completing features in the interactive mode.
For more information see Configuring the CLI Tool and the CLI Tool User Guide.