What is OpenShift

One of the most common questions that I get asked when I tell people about my new job, is “What is OpenShift?”

OpenShift is a platform that allows people, groups, or companies, to easily create and maintain their own custom website and web applications.  Setup is quite easy, and there is no system administration needed.

What makes OpenShift any different than a normal web hosting service, such as FatCow, where my blog is hosted?

A web hosting service is great for static web pages.  They are also ok, for some sites and applications.  After all, this site is using wordpress, and I could have drupel installed here as well.  But I have to use the version of wordpress or drupel that FatCow provides.

But what if I wanted my own version of drupel, or even better, what if I were creating my own custom site, or my own web application.  That is where OpenShift comes in.

OpenShift is divided into three parts:  Express, Flex and Power.

I would start out in Express.  There I get my own openshift domain, and up to five free apps (or websites).  You can destroy and make new apps,  you just can’t go over five.  When you create an app, OpenShift will create a dns entry for your app, create a git repository for your app, and populate that repository with a default app based on the open source programming language that you chose.  You can choose from php, python, perl, ruby, and java.

As you write your code, and then check it back into the git repository, the code is compiled, any modules that you said you need are added to your app, and everything is pushed up to your website.

So if I want to use an older, or newer version of Drupal, I can.  If I want to have the rdfbean-tapestry java module in my site, I can.  I don’t have to worry about compiling my code beforehand, because the code is compiled as I push it into the repository.

Now, let’s say you are working for a company.  Let’s say you need better response time, need graphs for your manager, or need to scale how many machines your app is running on.  Flex allows you to take your app, and migrate it to a cluster of machines.  A cluster can be a cluster of one if you want.  Flex give you the tools to manage and monitor your app, and the cluster it is on, without having to be a system administrator.

As for Power, I currently don’t know what it does.  It’s still in development, and I am not part of the team that is developing it.

So, that is what OpenShift is.  It is adding features at a very rapid pace.  I think this is a great team to be working for.