Red Hat using Containers?


I like to do some walking on Sundays. Walking is what us older people do for exercise. When I walk, I like to listen to audiocasts. One of the programs I've been listening to with some regularity is FLOSS Weekly and the program this week was about OpenShift.

OpenShift is a Platform as a Service (Paas) product that is, as you would expect, built on top of Linux. What is PaaS? System Admins / DevOps are constantly deploying web-based applications. They all use a web server, a database, a scripting language / runtime environment, etc. PaaS automates most of the common tasks needed so you don't have to do the same thing over and over... and can concentrate more on your application.

OpenShift has been available for awhile now as a developer preview service run by Red Hat on top of Amazon Web Services (AWS). Supposedly the current level of service will always be free but they plan to charge for higher levels.

A few weeks ago they released OpenShift as open source project (OpenShift Origin) with an Apache license and no code contributer agreement needed.

Turns out that they have various combinations of things available such as several databases to pick from, several scripting languages, etc. Those things are called "cartridges". Some of the cartridges they have are:

Databases: MySQL, PostgreSQL, and mogoDB
Language runtimes: Node.js, Perl, PHP, Python, Ruby, and Java / JBoss
Frameworks: CodeIgniter, CakePHP, Ruby on Rails, Django, Perl Dancer, Flask, Sinatra, Tornado

Need a libary of web-applications to pick from? OpenSift has "quick-starts" which are pre-packaged web-applications. Included are such things as WordPress, phpMyAdmin and Jenkins.

Another concept they have is a "gear". A gear is really an LXC container. Why they needed to create a new term (gear) rather than just calling it a container, I don't know. So it appears that Red Hat is using Linux native containers (LXC) in a product now... so I hope they'll get more into containers... since I'm a big container (mostly OpenVZ) fan. Dependong on how heavy a particular cartridge is, it may or may not be deployed inside its own gear. They easily fit serveral dozens to a hundred or more gears on each cloud-based virtual machine. While Red Hat runs their service on top of AWS, users are free to create their own setups on top of whatever virtualization platform they want.

OpenShift is written in Ruby but also uses some shell scripts for cartridge and gear operations. What OpenShift does could probably be mimiced with containers that use a large set of OS / Application Templates but the unique feature that makes OpenSift stand out is that it uses git for deployment.

If any of this interests you, check out either the FLOSS Weekly audio version or the video. Unfortunately, they only seem to support patent encumbered codecs.