O C T A S C A L E

Rails 5 → Rails 7.2 Upgrade

Categories: Legacy Upgrade
Share on:

Enterprise-Scale Live Event Ticketing Platform (NDA)

A high-traffic live event ticketing platform serving rightsholders, resellers, and affiliate partners needed to modernize its
technology stack. The application powered critical revenue streams and required a zero-downtime migration to the latest
Rails and Ruby versions — all while active development continued.

Requirements

  • Upgrade from Rails 5.2.8.1 & Ruby 2.7.7 to Rails 7.2.1 & Ruby 3.3.6 in a multi-phase process.
  • Ensure uninterrupted operations for millions of transactions during the migration.
  • Maintain high code quality, test coverage, and style compliance throughout.
  • Address asset pipeline modernization, autoloading changes, and large-scale file storage migration.
  • Follow a canary deployment strategy in Kubernetes/AWS to validate stability before full rollout.

Timeline & Team

  • Duration: 4 months from project start to full production rollout.
  • Team Size: 3 senior engineers dedicated to the upgrade effort.
  • Parallel Development: 3–4 client engineers continued feature delivery during the migration.

What We Delivered

Phased Upgrade Path

  • Phase 1 – Ruby Upgrade: Migrated from Ruby 2.7.7 to 3.3.6 first, ensuring gem compatibility and CI stability before changing Rails versions.
  • Phase 2 – Rails 6.x Transition: Upgraded to Rails 6.x to address intermediate deprecations, API changes, and prepare the codebase for 7.x.
  • Phase 3 – Rails 7.2 Migration: Completed the transition to Rails 7.2.1, leveraging new framework features and ensuring security compliance.

Technical Achievements

  • Deprecation Resolution: Cleared all deprecation warnings at each phase to maintain forward compatibility.
  • Asset Pipeline Modernization: Migrated from Sprockets to jsbundling + Propshaft for a faster, more maintainable asset workflow.
  • Autoloading & Namespacing: Moved from Classic loader to Zeitwerk, refactoring code to resolve naming and namespace conflicts.
  • Massive File Storage Migration: Paperclip → Active Storage for millions of assets using a dual-write strategy, validated in staging and prod-mirror before final cutover.
  • Code Quality & Testing: Upgraded and added tests where needed, fixed RuboCop style warnings, and preserved strong test coverage (74.4% Ruby, 100% JS).
  • CI/CD & Deployment: Leveraged Semaphore CI pipelines and Kubernetes-based canary releases (1% → 3% → 5% → 100%) to ensure safe production rollout.

Outcome

  • Modern, secure, and future-ready Rails & Ruby stack.
  • Improved developer productivity with updated tooling, CI/CD pipelines, and consistent environments.
  • Reduced long-term maintenance risk by removing deprecated dependencies and APIs.
  • Delivered a zero-downtime upgrade despite active feature development and heavy production traffic.

Client name withheld under NDA. Detailed references and deeper technical breakdown available upon request.