OpenShift Platform as a Service
OpenShift is Red Hat’s Platform-as-a-Service (PaaS) that allows developers to quickly develop, host, and scale applications in a cloud environment. With OpenShift you have choice of offerings, including online, on premise, and open source project options.
OpenShift is a next-generation cloud application platform that makes it easy to develop, deploy, and scale applications in the cloud – public or private.
Develop your application with the language and tools you want. As you go, push your changes to your app’s built-in Git source code repository.
Any steps you need to turn code into a running application can run in OpenShift. Whether it’s a simple script, a personal Jenkins continuous integration server, or even an external build system, you can prepare your code for execution in the cloud.
Every app is composed of cartridges – self-contained bits of the application stack like web servers and databases that simplify server maintenance and configuration. You choose the technologies by adding cartridges, and OpenShift will provision those services for you automatically.
With your app running in the cloud you can monitor, debug, and tune on the fly. Experience a surge in web traffic? Scale your application automatically or allocate capacity ahead of time. Need business intelligence? Engage an OpenShift partner for a wide range of tools to help you succeed.
Inside your Application
An OpenShift application is code, plus an environment and shared config, with one or more cartridges providing the languages and services your app needs..
Cartridges are deployed to one or more secure containers for your code known as gears. Web and database cartridges get their own gears, while cartridges for logging and monitoring will have access to all gears.
A single server may have multiple gears running at the same time, each isolated from each other through Linux namespacing and SELinux protection. Each gear is given a fair allocation of CPU, memory, disk, and network bandwidth using Linux control groups.
When you add a cartridge to your app, OpenShift chooses where to deploy the cartridge based on the type and needs of the cartridge. Your app is wired together across multiple gears – you reference the services those cartridges expose via environment variables.
Application Traffic (HTTP, SSH, Git)
- Node 1
- Node 2
- Node 3
- Node N
- Broker 1
- Broker N
Management HTTP Traffic
which hold the gears that run applications, and
which manages the nodes and coordinates provisioning and app management, and
a message bus
to link the two together
Client applications like RHC and the web console interact with the broker via our REST API to manage applications, while developers directly push code to their gears in the nodes.
Administrators can flexibly add and remove capacity for apps at the node level – bringing on new hardware (physical or virtual) to deal with increased demand. Multiple applications coexist on each node to maximize utilization and efficiency. In addition, inactive or rarely visited applications can be idled to preserve capacity and brought back in seconds to allow you to overcommit resources as needed.
Open and Extensible
Developers and solution architects can easily introduce new technologies, frameworks, services, and integrations to OpenShift via our public Cartridge API and the open source OpenShift Origin project.
Resilient to Failure
OpenShift is designed to keep applications available to visitors despite outages in the physical infrastructure or management layers. All persistent state is kept in a fast and reliable MongoDB cluster. For more information about running a highly available OpenShift deployment, get in touch with our reference architecture team.