Getting Started with OpenShift Origin - the Open Source Platform as a Service (PaaS)

I've been looking forward to writing this article ever since I was first hired into the OpenShift team at Red Hat.

Introducing OpenShift Origin!

OpenShift Origin is the open source project of all the components of the OpenShift PaaS. We plan on this project developing into a truly open and collaborative community of peers. This is not to be a "throw it over the wall" fauxpen source project, nor is it to be a controlled admission or pay-to-play style project where only Red Hat employees and maybe approved business partners get to participate.

We welcome to you to grab the code from GitHub, and hack on it to see what you can make it do. We hope that you will also join the mailing lists, IRC channels, bug tracker, and wiki, so we all can work together.

How does OpenShift Origin relate to OpenShift the hosted service?

OpenShift is Red Hat's hosted cloud platform as a service. With it, you can write your application in one of many different web development languages and frameworks it supports, while it automates away all the boring parts of running an application on the web. The useful part is you don't have to worry about how it works. The difficult part is you didn't get to see or improve how it works, or control where it runs.

With OpenShift Origin, now you can. You get to see how it works, and if you want, you can run your own. And potentially any useful improvements you suggest and make will get rolled into Red Hat OpenShift and into any other OpenShift Origin based PaaS systems.

What is being open sourced?

A PaaS like OpenShift is comprised of several components. The server components that make up OpenShift Origin are collectively known as CrankCase. The source is divided into the following areas:

Broker

Central service exposing a REST API for consumers and coordinating with the application containers (known as nodes).

Messaging System

Communication pipeline between StickShift and each node.

User Authentication

A pluggable user authentication component with a default MongoDB implementation.

Domain Name Management

A BIND implementation of DNS registration and management.

Command Line Client

The command line program rhc connects to OpenShift via our REST API and can be downloaded as a RubyGem.

For more info on these components check out the source code overview.

Under what open source license is OpenShift Origin being released under?

We are using the OSI approved Apache V2 license. This license is well understood, and is friendly to both corporate and to individual participants.

One community and developer friendly aspect of the Apache V2 license is that formal contribution agreements are not necessary.

Why should developers be excited about OpenShift Origin?

For developers who just want to use a PaaS, this means you can now run OpenShift on your laptop, or on a server inside your intranet, or in your own datacenter.

For developers who want to learn how a real PaaS works, here it is. The code is not a toy, or an example, or limited to just a few use cases. It's real, tested code that has run under real workloads for real applications for over a year.

For developers who want to push and improve PaaS technology, a real, truly open and participatory open source project that you can pull, read, play with, and push back. There is a community that you can engage with. Your participation will be welcomed, your bug reports will be acknowledged, your bug fixes will be accepted, and your new code and pull requests will be honored. If you really want to be part of this, you will be a real member of the development process, not just if you work for Red Hat.

Where can I go to learn how to participate?

Start with our wiki.

We are in the process of migrating our internal developer documentation and architecture design documents to the public wiki, as well as writing new and better documentation there.

The GitHub project is at https://github.com/openshift

The IRC channel is on the irc.freenode.net on the #openshift-dev channel

How can I start using OpenShift Origin right now?

You can run your own OpenShift Origin PaaS on your Mac, Linux, or Windows machine right now.

Start with having VMware or VirtualBox installed on your machine.

Download a LiveCD image from /open-source

Then follow the Virtual Guest instructions on our wiki at https://www.openshift.com/wiki/getting-started-with-openshift-origin-livecd

What's next?

Next is your feedback, and hopefully your participation. Where do you want OpenShift Origin to go?