How to support and maintain an old legacy Ruby on Rails application

Learn from years of Ruby on Rails long-term support and maintenance

At devolute we have been developing and supporting Ruby on Rails application since Rails version 1.

One of the best features of Rails is, that it continuously improved. That advantage also leads to software becoming outdated from time to time.

Here we want to answer some questions and explain how you can avoid getting close to end of life of your product.

Rails 2.x, Rails 3.2, Rails 4, Rails 5 - Which versions are still acceptable?

The truth is: Even an old Ruby on Rails application can run stable. But you have to be careful with a couple of things:

Security updates and fixes

Every couple of weeks in Ruby, Rails or one of the many ruby libraries used is found a security issue.

While not all of them are critical for you, you have to be aware of them and update as fast as possible.

If your platform grows too old, and still runs on Ruby 1.8.7 or 1.9.3 you loose community updates and your application becomes a permanent risk

Community support of libraries

Ruby on Rails is an open source plattform. It is powerful, free and supported by many different developers and teams. Sometimes one of its building bricks stops being developed or supported or simply gets replaced by a new and better version.

If too much of your application 

Best practices

10 years ago, software has been written differently than nowadays. This is not only a question of style - time has changed. How the internet developed also changed the requirements for a modern application.

If you notice performance issues or it just becomes harder and harder to hire anyone who is still able to work with your platform: It is important to modernize step by step.

How outdated is your application? We can tell you within 24 hours

How to prolong the life of your legacy application?

No matter how old your project is, it is usally the same things that keep it health and alive.

You just have to reserve the time to take care of it. And of course you need an experienced team, willing to work on a legacy codebase.

Spend some time on documentation

Worst case: Nobody in your team knows anymore, how to set up the application - and then you need help.

The first thing we do, when we take over the support of an old application, is to ensure that setup and documentation allow fast intervention.

Set up error and performance monitoring

Your application will have bugs and bottlenecks. It is crucial, to know what parts throw errors and where your software runs slow.

If something happens, you need to know right away. The right mixture of monitoring tools makes everything much clearer.

Run minor upgrades gradually

The biggest blocker for updating is, when updates become too big. A good maintenance plan includes frequent updates.

Everytime we perform a small update of a library, there is also a chance to discover something that can be improved or - better - deleted.

Refactor: Clean up one thing per every 2 things you build

If you are still working on an application: You are not going to make it better with quick fixes and dirty hacks.

When we take care of a ruby on rails application, we make sure there is time to perform the necessary clean ups.

Rebuild only where it makes sense

Almost never you have to rebuild a whole application. Through monitoring we know now better, which parts are really used and how the database behaves under load. So we can extract problem zones into own, lean microservices and save you rebuilding an expensive new architecture.

We offer maintenance and support hotline

More about Ruby on Rails maintenance