Let’s forget about that for a while. Ola Bini and the JRuby team is quickly moving forward with something I would consider a breakthrough in Rails deployment options. In fact, it could well mean a breakthrough in Rails adoption in many organizations.
Why (some) IT-managers like Rails but don’t like deploying it
When I was a consultant I talked to many IT-managers that had heard about Ruby on Rails. They were intrigued by the fact that Ruby and Rails were created for developers rather than machines. Most of them realized that developer time costs more than computer performance today (although some of them were still spending money at developers writing unnecessarily complicated code to run fast on hardware that costs less than 20 developer hours).
However, these IT-managers weren’t too keen on deploying Rails applications in their environment. You see, if you spent the last five years creating a homogenous server environment it is likely that you have invested a lot in it. The following typically applies in this type of environment:
- You have specialized server administrators that know how to deploy, run and monitor aplications in the environment.
- One or more large vendors have sold you expensive software in which you run your applications.
- The same vendors have sent you a lot of marketing material telling you how lucky you are to be running their software and that your competitors are running the same thing.
- Developing software for the environment requires expensive consultants. This, obviously, means that you get professionals.
- Software typically runs fine in the environment.
The environment may be Java or .NET. The investment is typically bigger if it is Java.
And then Rails developers come to you and say that your investment in this homogenous environment should be thrown away. You staff should be retrained and deployment no longer takes a week. Obviously these developers must be lying.
Why Ola Bini and the Jruby team may increase Rails adoption
Any day now it will be possible to wrap up your Rails app in a WAR-file and put it right into a Java server environment. It may already work for all I know. Server administrators may not even see the difference between a Rails app and a regular Java app.
When this is easy to do I believe that Rails will se a much larger adoption in larger organizations (with these types of environments). And from there it will only get better. Thoughtworks seem to be in on the same track.
I guess both Sun and Microsoft realized the importance of being able to run Rails applications in existing environments. Sun is supporting JRuby and Microsoft hired John Lam to make Ruby run on the CLR (they already had Jim Hugunin make it possible to run Python code fast on the CLR).
Interesting times are ahead!
I guess we will have to thank Ola and the JRuby team for that…
Update: I was just told that James DD snapped a picture of me sitting next to Ola at Railsconf London. It is a small world after all.
Update 2: And here are instructions on how to create a WAR file of a Rails app for deployment in Tomcat.