Review: OpenShift 3 rocks Docker containers

Red Hat’s robust, easy-to-use, and highly scalable PaaS now builds on Docker, with some temporary limitations

Become An Insider

Sign up now and get FREE access to hundreds of Insider articles, guides, reviews, interviews, blogs, and other premium content. Learn more.
At a Glance
  • Red Hat OpenShift 3.0

Last year OpenShift 2 was my favorite open source PaaS. I said at the time, “OpenShift is outstandingly easy to use, manage, and install, and it presents little learning curve for developers familiar with Git and administrators familiar with Puppet. Enabling automatic horizontal scaling is as simple as checking a box in the application configuration. Automatic gear idling is enabled by default and allows for very high application density. And updating an application is as simple as doing a git push. For both developers and operators, OpenShift fulfills the promise of PaaS.”

Since then, OpenShift has undergone a complete rewrite to use Docker containers, instead of “cartridges” and “gears,” to deploy applications. In theory, that should make the OpenShift PaaS even simpler to use and give it an even larger pool of languages and applications, thanks to the containers already on Docker Hub. But how does it work in practice? Let’s find out.

OpenShift 3 architecture

As you can see in Figure 1, OpenShift 3 is still built on Red Hat Enterprise Linux. Beyond that, however, almost everything has changed. The running unit is no longer a “gear” -- it’s a “pod,” and the pod consists of one or more Docker containers that run together on a “node.” Language environments are no longer “cartridges”; they are Docker images, which are combined with code using a source-to-image tool. Nodes are instances of RHEL where apps will run.

openshift architecture fig1

Figure 1: Diagram of the OpenShift 3 system. 

Scheduling, management, and replication are now part of the master, which implements Kubernetes on top of RHEL. A service layer talks to underlying physical or virtual hardware or to public or private clouds. A routing layer connects the apps to the Internet so that they can be used by clients running on computers or mobile devices.

To continue reading this article register now