As it promised it would, commercial Linux distributor Red Hat has opened up the source code for its OpenShift platform-as-a-cloud service.
When Red Hat puffed up the OpenShift platform cloud last May, it was only available as a service and it only ran atop Amazon's EC2 compute cloud. But now, with the release of the source code behind OpenShift, which is now called OpenShift Origin, developers can grab the platform cloud and plunk it atop other cloud fabrics – including OpenStack, which Red Hat and IBM formally endorsed several weeks ago after the OpenStack community got its governance issues sorted to the liking of Shadowman and Big Blue.
From the look of the specs, Red Hat seems to have opened up all of the code for the OpenShift stack, not just the OpenShift Express variant, which was the entry edition of the product that ran on EC2 and that was made freely available by Red Hat so it could get developers to try out its alternative to VMware's Cloud Foundry.
Cloud Foundry is another open source application framework that is deployed as a platform cloud by the server virtualization juggernaut so it can prove it has open source credentials. It also knows there is no way it can create a closed-source platform cloud stack and get developers to adopt it in the numbers it needs to have an advantage over the Windows stack and to keep upstarts like Red Hat at bay.
VMware, like Red Hat, has aspirations moving up the software stack. VMware wants to go from the infrastructure plumbing layer to the platform layer, and Red Hat wants to expand from its hegemony in commercial Linux to server virtualization and infrastructure and platform clouds. Microsoft has similarly fluffed up its Azure platform cloud as a means of making Windows shops heavenly, and Google went straight to the platform layer with its Google App Engine.
When OpenShift debuted last May, Red Hat deployed the OpenShift Express edition on the EC2 cloud, managed it and picked up the tab. The Express version supports Ruby, PHP, and Python applications. You create your code and use a git push command to plop the code onto the OpenShift platform cloud running on EC2 and leave the setup, scalability, and management to the tools Red Hat cooked up to create OpenShift. There are two other editions of OpenShift.
The OpenShift Flex edition is designed for multi-tier Java or PHP applications, and it has options to use PostgreSQL, MySQL, and MongoDB as data stores, JBoss and Tomcat middleware, Memcached for Web caching, and other features. It also gives developers more control over the configuration of the various layers of software, but Red Hat still does the monitoring, patching, and maintenance on the stack.
OpenShift Power is the third edition, which runs on and is tuned for Red Hat's CloudForms infrastructure cloud software. Anything you can compile and run on Red Hat Enterprise Linux 4, 5, or 6 can run on OpenShift Power. The underlying CloudForms software supports Microsoft's Hyper-V, VMware's ESX, and Red Hat's KVM hypervisors as the underlying virtualization layer for the servers.
OpenShift organizes code and infrastructure in a number of hierarchies to make everything play nicely together and share resources, which you can read all about in the architecture review. With an automatic transmission being the logical metaphor that Red Hat was using with the OpenShift project, the basic resource container that is used in the platform cloud is called a gear, which limits the amount of memory and disk available to what Red Hat is calling a cartridge.
These cartridges are the means by which complied code links to databases on the platform cloud, and you aggregate multiple gears (either on a single virtual machine or a single physical machine if you are running bare metal) into node. A broker with REST APIs manages all interactions between the user (in this case an application developer) and these cartridges running inside the gear wheels within the node wheels. All of these server components are collectively called CrankCase, and the API stack is called StickShift.
OpenShift itself is written in Ruby and uses YAML as the cartridge descriptor language. Red Hat explained in its FAQ that YAML was the best tradeoff between XML, JSON, and YAML and it picked Ruby because this was the language the OpenShift team was most familiar with and the one that the targeted developer community seemed to like best.
The PaaS stack from Red Hat also includes support for Perl and Node.js and its own JBoss Tools for delivering Java EE6 runtimes. There are also plug-ins for the Jenkins and Maven automatic build tools.
OpenShift Origin is being licensed under the Apache V2 license and will have a community-based development philosophy akin to Fedora. This means Red Hat is the main contributor to start and the company is encouraging tech wizards to come in and contribute to the cause. OpenShift Origin has a github repository, and Red Hat will provide bug tracking and other project services, just as it does for Fedora.
In fact, there is even a Fedora Remix of OpenShift that you can deploy on to of VMware's ESXi or Oracle's VirtualBox hypervisors and run it on your own PC or server. ®