Open Blue Dragon

This weekend I began a project to see if it was possible to migrate some of our legacy Coldfusion applications to an open source stack where they can live out their lives in GPL happiness. The verdict so far is an almost definite YES! It can be done quickly and easily too. Below I attempted to document as much of the process as possible.

We have several legacy Coldfusion applications that we maintain. They are currently being hosted on BlueDragon 7 purchased several years ago. Recently certain bits of functionality just stopped working. While I was in there fixing the problem I figured it would be a good time to assess the current CF server landscape and see if there was a better solution available.

I've always been real happy with BlueDragon. My main reason for liking it was it had a smaller footprint than Adobe CFMX and was easier to deploy on linux. I knew there was a few open source CF engines out there but my past experiments with them deemed them not quite ready for production (using our webapps anyways). BlueDragon recently released Open Bluedragon (http://openbluedragon.org) so I decided to take it for a rip.

Open Bluedragon is available as a bundled Tomcat image and also bundled with Jetty. Deploying java apps intimidates me. Being a php/ruby weenie it just seems overly complicated. Where this was an internal infrastructure consolidation mission the billable clock wasn't ticking either. Jetty seemed like the path of least resistance.

For those not familiar with Jetty: it is an open-source, standards-based, full-featured web server implemented entirely in Java. It also happens to be fast and EASY to setup. After downloading the Ready2Run OpenBD bundle you can be up and running in about 30 seconds.

Before running make sure you have a recent, REAL version of Java. I initially tried running it using the default version of Java that came with Centos 5 and it didn't work properly. Once that is running getting your BD App is as simple as:

java -jar /path/to/bd/start.jar

The preceding snippet should get a Bdragon instance running on localhost:8080. With default settings I ran apache benchmark on the server and it ran plenty fast for my needs. To get your app up and running and setup the data sources simply edit the etc/bdragon/bluedragon.xml file. I'll post further details on the final production deployment. Currently testing using Apache mod_proxy as the front end.