At the Fedora 20 release party another guy stepped up and presented+demonstrated OpenShift, which was the most interesting new feature from Red Hat for me. First of all I had to switch my mindset about cloud from IaaS (infrastructure as a service, where the granularity are virtual machines) to PaaS. I heard the PaaS buzzword before but never took the time to understand what it really means and its implications. Well, I had to do that at that meeting so I can follow the presentation, of course hammering the presenter with questions all the time.
Platform as a Service deployment units are application frameworks (against VMs as deployment units on IaaS). An application framework is a standard space on a computer where a developer can easily deploy its application. OpenShift has a rich set of application framework types for you to choose: J2EE with WildFly/JBoss, Drupal, Django, Ruby on Rails, MariaDB, Node.js, MongoDB, PHP frameworks etc. It presents the user with the “cartridge” concept which is an instantiated framework (any of J2EE, Django, WordPress, MongoDB etc) that receives automatic security updates and upgrades.
Just to give a more concrete example, if you create a WordPress application, you’ll get:
- Pre-selected and configured cartridges: PHP and MariaDB in this case.
- Enough (and configurable) compute power and RAM to run the required cartridges. This compute power container is called “gear” in OpenShift.
- SSH (command line and SFTP) access to a pre-configured disk space so you can put your extra files and make further configurations.
- A public URL to access the application.
OpenShift has a tight integration with Git (code versioning solution) in a way that when you instantiate your application you can provide a Git repository URL that contains your application/customization and the deployment process will automatically put your files in the right place. The result is your custom application working out of the box right after OpenShift does its deployment. Heaven for developers that use Open Source tools and languages (which are the most advanced nowadays BTW).
OpenShift comes in 3 flavours:
- OpenShift Origin, the Open Source project where the bleeding edge code gets developed. It encourages you to install the OpenShift VMs on your laptop so you can contribute and also develop cartridges for the community.
- OpenShift Online, where anyone can allocate compute power, select cartridges and deploy its app right now for free. Good for testing and evaluation. And, in case you want to put it in production, you can buy more compute power and dedicated URLs. OpenShift Online is a direct competitor to AWS and some of the “one-click-install” services of ISPs as DreamHost etc.
- OpenShift Enterprise, a stable, packaged, commercially supported version of OpenShift Origin (the actual software behind OpenShift) for you to run it on your own datacenter. This is designed for private enterprise clouds. OpenShift Enterprise is related to Origin the same way RHEL is related for Fedora.
I had the chance to see some internals of OpenShift software and it seems to be developed and organized in the right way, following the same development philosophy of Red Hat and Fedora, which always pursues very high quality products.