Rails upgrades for applications in production
5.x/6.x to 7.x/8.x, including codebases nobody wants to touch.
Who this is for
Your product works. The Rails version underneath it has stopped being an asset:
- It is out of support, so security fixes no longer reach you.
- It blocks a gem you need.
- It blocks the Ruby upgrade you want.
- It costs you candidates, because good engineers do not want to work on it.
What an upgrade involves
The dependency graph
Every gem has to move with the framework, and some of them have no maintained version to move to. Working out which is which is most of the assessment.
Deprecations
Behaviour that changed quietly between versions. These are the failures that surface in production rather than in the test run.
The test suite
It is the safety net for the whole job. Where coverage is thin over the code the upgrade touches, that gets dealt with first.
The deploy pipeline
A new Ruby and a new Rails usually mean a new build. The upgrade is not finished until the app ships the way it shipped before.
The front end
Usually tangled into the framework more than anyone expects: the asset pipeline, the JavaScript bundling, and whatever the app does with them.
How it goes
- 1
Assessment
I read the codebase and the dependency graph, and write up what the upgrade involves and in what order, with an estimate. You decide with that in front of you.
- 2
Upgrade
The work happens in a branch, under your review process.
- 3
Deploy
Through your pipeline, rebuilt if the new version needs it.
- 4
A month of watching
After the deploy I stay on hand for the things that only appear under real traffic.
One of these, end to end
Minute7
A production app on Rails 6.0 with a React front end, an AWS deployment pipeline and two QuickBooks integrations (Online and Desktop) that all had to move together.
Rails 7.2 in production, 50K+ requests a day.
Read the Minute7 case study →Great working with Konstantin! While there were a few minor hiccups in the project, overall we were glad to complete everything we needed for our platform upgrade.
I have worked with Rails 2.x through 8.x.
Send me the version you are on
The Rails and Ruby versions, roughly how much test coverage there is, and where the app is hosted. I reply with what the assessment would cover.
Full overlap with European business hours, and 9am–6pm US Eastern.
43 clients, 21,500+ hours, 100% Job Success — the reviews are on Upwork.