Cartridges
Cartridge modes
A Cartridge can operate in two modes that are namely:
Single tenant cartridges
Stratos Cartridges provide process-level isolation and instance-level dedicated tenancy with single-tenant containers and frameworks. In single-tenant Cartridges a tenant maps to one or more cartridge instance as multiple tenants are not hosted on a single Cartridge instance. Stratos load-balancing and security mechanisms partition tenants based on network Uniform Resource Locator (URL) and host name identifiers. Teams configure elastic scalability limits by specifying a pre-defined maximum process instance limit per tenant and the cartridge environment operates in a manner similar to application server clustering, when single-tenant containers and frameworks are hosted within a Stratos Cartridge. When a cartridge instance reservation is activated the activation decreases the available resource pool for other tenants.
Multi-tenant cartridges
Stratos Cartridges, hosting WSO2 multi-tenant middleware services delivers multi-tenancy within each Cartridge instance where teams may define multiple tenants per Cartridge . Tenant traffic is securely directed to isolated application code within the Cartridge instance. Cartridge instance activations increase the available resource pool for all tenants associated with the service partition. For more information on multi-tenant, shared container technology, architecture and benefits go to http://wso2.com/whitepapers/cloud-native-advantage-multi-tenant-shared-container-paas/ .
WSO2 Stratos ships with pre-defined Stratos Cartridges for all multi-tenant WSO2 middleware products and thereby, rapidly reduces the time required to create a Cloud environment. Stratos Cartridges host multi-tenant WSO2 middleware platform servers and deliver integration services, service-oriented architecture (SOA) services, application development services, governance services, identity services, presentation services and business process execution services.
Puppet based WSO2 Carbon Cartridges
The Cartridges for WSO2 Carbon based products are configured using Puppet. For example, when the Cloud Controller requests an instance with the Application Server (AS) domain, a “Carbon base cartridge” will be spawned and the Puppet will configure it for the AS specific configuration. If an instance of Business Process Server (BPS) domain was requested, the same “Carbon base cartridge” will be spawned with BPS configurations from Puppet.
User roles
- Cartridge Developer
The Cartridge Developer creates images for different IaaS.
For example, in StratosLive WSO2 PHP cartridge developers.
- Cartridge Deployer
The Cartridge Deployer registers Cartridge with Stratos to create Stratos Cartridges .
For example, in StratosLive WSO2 DevOps team.
- Cartridge Subscriber
The Cartridge Subscriber handles the subscriptions to the cartridge and it is also used to upload application to the Cartridge. Resources such as the persistent file system and a Database (DB) with scaling parameters are used for the subscription process and the subscription details are kept in the Stratos DB .
The uploading subscription process is optional when subscribing with the create Cartridge instance now option. A Cartridge instance is created (only if it has not already been created) when the first Cartridge is uploaded.
Cartridge Users
Cartridge users are tenants (for example abc.com). Cartridge users will be able to carryout the following actions:Use deployed Cartridge Instances
Upload applications to Cartridge instance.
The diagrambelow explains the flow involved in uploading an artifact to a Cartridge instance. When a tenant needs to upload an artifact, they will push the artifact into their remote Git repository by issuing agit push
. The Git repository in-turn will notify the Stratos Controller (SC) with regard to the new artifact. The Artifact Distribution Coordinator (ADC) that resides in the SC will carryout a topology lookup, in order to identify the instance relevant to this artifact. The SC will thereafter issue a DepSync clustering message to the respective tenant's Cartridge instance indicating the presence of the new artifact. The tenant Cartridge instance will thereafter get updated by issuing agit pull
to the tenant's remote Git Repository.
Non-Carbon Cartridge logging
The diagram below explains the Cartridge logging process for non-carbon Cartridges. The log publishing agent will read the log files and publish the relevant log data to the BAM. The tenant in-turn can view the published logs in the log viewer via the Stratos Controller (SC).