Sep 17, 2008

Introducing Ruby in the enterprise

We introduced Ruby/LAMP in 2008 to develop applications. In our experience, Ruby provides significant developer productivity gains. However, several questions have been raised in IT as we've been a Java/J2EE shop for several years.
  1. Ruby/LAMP isn't production ready in the enterprise: - Enterprises are used to vendor software that provide facilities like GUI-driven application setup/deployment, a single vendor to call to yell at for production issues etc. This offers them great comfort that they don't want to loose for open source software. It will take time to take Ruby/LAMP to the same place (engineering, development, support) as Java/J2EE in IT.
    - Managing/supporting Mongrel is painful: Passenger mod_rails is an attractive solution as it simplifies deployment of Ruby applications. We're moving ahead with it

  2. Why use MySQL if you have Oracle? Most enterprises run and support Oracle, so incremental Oracle database cost is zero. Why should one use MySQL then? Does it matter? If so, where/what and how much?
    - MySQL is primary database for most open source software (including Ruby) and hence some software components (plugins etc.) only work on MySQL (at least in early phases)
    - MySQL enables agile development practices
    - Enterprise/core/reused datasets vs. "Application" datasets

  3. How will we choose between Java and Ruby?
    - We plan to continue maintaining our Java apps using existing technology (Java/J2EE)
    - For new apps, I suggest Ruby as the starting point considering our internal needs...Here's why:
    Java offers high efficiency of execution with byte code compilation (JVM), whereas Ruby offers simplicity, maintainability and productivity gains. Most internal apps can be developed using Ruby unless complex integration with Java systems is needed.
    (a) Most internal enterprise apps are simple and don’t require high efficiency of execution (e.g. many thousands of users and high-volume, real-time data processing)
    (b) Performance gains from Ruby to Java aren’t significant from end-user perspective (server-side performance is negligible from end-user perspective)

This discussion in IT raises some important questions?
  • Should we leverage existing infrastructure (Oracle, Java/J2EE (JRuby)) for deploying Ruby applications?
  • Is/should MySQL be at par with Oracle in the enterprise?
  • Is/should LAMP be at par with J2EE in the enterprise?
  • ?

How are you dealing with this in your IT department?

No comments:

Post a Comment