Tuesday, January 13, 2015

Apache Stratos Cartridges

Apache Stratos

Apache Stratos is a highly-extensible Platform-as-a-Service (PaaS) framework from the Apache Community that anyone can use to build a foundation for multiple flavors of Platform as a Services such as Application PaaS (aPaaS), Integration PaaS (iPaaS), or Data PaaS (dPaaS). You should be clear that Stratos is not a PaaS, but can be used to build a PaaS. You can deploy Stratos on top of an IaaS and deploy any application such as Application Servers, Enterprise Service Buses, API Managers etc, on top of Stratos. Stratos takes care of your applications and provides features such as load balancing, auto-scaling, cloud bursting, multi tenancy, billing, monitoring, fault handling and much more.

Please visit Apache Stratos website for more information.

Cartridges

Stratos manages applications using cartridges. A cartridge is a virtual machine (VM) or a Container on an IaaS that has software components to interact with Apache Stratos. For example, a Tomcat cartridge is a Ubuntu virtual machine on Amazon EC2 IaaS with Tomcat server environment (Java + Tomcat) installed.  
 
All cartridges in Apache Stratos provide a very secure, OS level isolated environment for cloud applications. If you subscribe to a cartridge you will get a cartridge instance.

Cartridge Instances

If you subscribe to a cartridge, Stratos will spawn a new VM or Container on an IaaS, and that new VM or Container will be referred to as Cartridge Instance in Stratos terminology.

Cartridge Types

According to the mode of operation, cartridges can be divided into single tenant or multi tenant cartridges. According to the creation methods, cartridges can be divided into generic or fully configured cartridges. According to the virtualization technology, cartridges can be divided into VM or Docker cartridges.

Single Tenant Cartridges

In Apache Stratos, if a tenant user subscribes to a single tenant cartridge, a separate cartridge instance will be spawned for each tenant user. Thereby, single tenant cartridges provide tenant users process level isolation and instance level dedicated tenancy. Single tenant cartridge users can be mapped to one or more cartridge instances.

Multi Tenant Cartridges

Multi-tenant cartridges in Apache Stratos are cartridges that allow multiple tenants to share a single cartridge instance. Although tenant users share a single cartridge instance, the tenant user traffic will be securely directed to isolated application code within the cartridge instance.

Generic Cartridges

A generic cartridge is a cartridge where all the software needed for the cartridge instance are installed only at run-time when a cartridge instance is spawned. It only have the base image operating system (OS) and Puppet Agent (PA) pre-installed with some setup scripts. For example, a generic VM cartridge looks like below;

Fully Configured Cartridges

A fully configured cartridge also known as a pre-configured cartridge is a cartridge where all the software and configurations are pre-configured. Fully configured cartridges include the base image operating system (OS), setup scripts, required software, Puppet Agent (PA) and Cartridge Agent (CA). For example, a fully configured VM cartridge looks like below;
Fully Configured Cartridge.png 
Generic cartridges are slower than fully configured cartridges since all the software will be installed and configured at runtime.

VM Cartridges
A VM cartridge is a virtual machine (VM) on an IaaS that has software components, such as puppet agent, cartridge agent, server apps and any dependent apps, to interact with Stratos.

Please refer Apache Stratos VM Cartridges for more information.

Docker Cartridges

As per now, a Docker cartridge is a container on a coreos cluster configured on an IaaS that has software components, such as cartridge agent, server apps and any dependent apps, to interact with Stratos.

Please refer Apache Stratos Docker Cartridges for more information.

Next thing to do
Now you learned something about Apache Stratos Cartridges. If you are willing to learn more about VM Cartridges, please refer Apache Stratos VM Cartridges. If you are willing to learn more about Docker Cartridges, please refer Apache Stratos Docker Cartridges.

No comments:

Post a Comment