Chapter 9. Cartridges

9.1. Introduction to Cartridges

Cartridges are the components of an OpenShift Online application and contain the application code to provide the actual functionality required to run applications. Cartridges are available to support various programming languages, databases, monitoring services, and management.
Adding a cartridge to an application provides the desired capability without having to administer or update the included feature. When added to an application, a cartridge is deployed to one or more gears based on its requirements. Cartridges that listen to incoming traffic are placed on one or more gears, while other cartridges can be placed across multiple gears of an application.

9.1.1. Web Framework Cartridges

Web cartridges are available for a variety of programming languages and frameworks, and an application requires at least one web cartridge to listen to HTTP requests. The type of web framework cartridge must be specified when an application is created. Cartridges that listen to incoming traffic are placed on one or more gears, while other cartridges can be placed across multiple gears of an application.
The following web framework cartridges are currently available with OpenShift Online:

Table 9.1. Available Web Framework Cartridges

Scalable Non-Scalable
JBoss AS Zend Server
JBoss EAP Jenkins Server
Node.js Do-It-Yourself (DIY)
Perl
PHP
Python
Ruby
Tomcat (JBoss EWS)

9.1.2. Add-on Cartridges

After an application is created with the required web framework cartridge, a number of add-on cartridges can provide extra functionality and capabilities to applications, such as databases, scheduled jobs, or continuous integration. The following table describes the functionality of the different types of add-on cartridges available with OpenShift Online.

Table 9.2. Add-on Cartridge Functions

Function Description
Database Provide the application with one of several database back ends. Examples include MySQL and PostgreSQL.
Monitoring and Management Provide a range of options for managing and monitoring the application. Examples include the Cron task scheduler, and the Jenkins Client.

Note

Some monitoring and management cartridges require other cartridges as prerequisites. For example, you must have a MySQL database cartridge added to your application before you can add a phpMyAdmin cartridge.
The following add-on cartridges are currently available for OpenShift Online.
Database Cartridges
The following table describes all available database cartridges.

Table 9.3. Database Cartridges

Cartridge Scalable Version Description
MySQL No 5.1, 5.5 Multi-user, multi-threaded SQL database server.
MongoDB No 2.4 High-performance, open source NoSQL database.
PostgreSQL No 8.4, 9.2 Advanced object-relational database management system

Important

While at this time of writing database cartridges are not scalable, they can be added to scalable applications.
Monitoring and Management Cartridges
The following table describes all available management cartridges, and shows whether they are scalable or not.

Table 9.4. Monitoring and Management Cartridges

Cartridge Scalable Version Description
phpMyAdmin No 4 Web-based MySQL administration tool.
HAProxy Yes 1.4 High performance TCP/HTTP load balancer.
Cron Yes 1.4 A daemon that runs specified programs at scheduled times.
SwitchYard No 0.8 Lightweight service delivery framework providing full life cycle support for developing, deploying, and managing service-oriented applications.
RockMongo No 1 Web-based MongoDB administration tool.
Jenkins Client No 1.5 A client for managing Jenkins-enabled applications.

Note

The non-scalable monitoring and management cartridges listed above cannot be added to scalable applications. You will receive a notification if you attempt to add them to a scalable application.

9.1.3. Downloadable Cartridges

Downloadable cartridges are available for new and existing applications along with the supported standard OpenShift Online cartridges. These are custom cartridges created by users, or available from the OpenShift community. These cartridges are downloaded and installed using the URL to the manifest of the hosted downloadable cartridge.
Visit https://www.openshift.com/developers/download-cartridges for more community tips and information on downloadable cartridges.