Get Your Ass to 1.9
summary
A concrete migration story: a large Rails app moves from Ruby 1.8 to 1.9 by making Ruby selectable in production, using arbenv and bundler platforms, grinding down test failures, and replacing incompatible gems (mongrel→unicorn, ruport→csv, mysql→mysql2). The codebase is about 70,000 LOC and 59,000 tests, work spans months with CI running parallel one‑8 and one‑9 jobs, rolling servers one by one, and rehearsed rollbacks. Result: 75% less GC and ~50% lower CPU, roughly one free app server of capacity.
AI-written summary · about
chapters (22)
- 0:00Ruby 1.9 upgrade journey
- 1:03Teams behind New Relic's upgrade
- 3:50Why upgrade from Ruby 1.8
- 5:16Upgrade excuses and fears
- 7:20Failed strategies before success
- 8:22Continuous deployment foundation
- 10:05Ruby 1.9 compatibility prep
- 12:35Test suite under Ruby 1.9
- 13:17Replacing incompatible gems
- 14:41Burning down test failures
- 15:44Ruby 1.9 behavioral changes
- 17:55Numeric bit slicing pitfalls
- 19:02Standardizing data types
- 21:09Fixing load path issues
- 22:13Subtle Ruby 1.9 changes
- 23:16Environmental rollout strategy
- 25:20Production rollout lessons
- 27:52Performance improvements
- 29:16Lessons learned
- 31:40Upgrade pattern for future
- 32:21Future upgrades and hiring
- 33:45Q&A
related talks
48mWhere is Ruby Really Heading?
47mThe Next Ruby
30mScaling Rails with JRuby in 2022
01h 03mRailsConf Europe 08: David A. Black (Ruby Central, Inc.), Ru
32mImplementing Rails 3.1...
36mQuestions and Answers with "Matz"
47mJRuby: What, Why, How... Try It Now
29mHacking Development Culture: Treating Developers As People
