Rails Upgrade Mastery: Best Practices for Large-Scale Enterprise Applications

By Sumit Dey

Elevator Pitch

Upgrading Rails in an enterprise software? Learn from Coupa’s journey! This talk will share our challenges, strategies, and best practices based on our experience of upgrading from Rails 6 to 7. Take away valuable insights and practical tips for a seamless Rails upgrade at scale.

Description

This talk will provide insights on the following points

  • Overview of the Rails upgrade process
  • Planning and preparing for the upgrade
  • Managing dependencies and third-party libraries
  • Implementing the upgrade at scale
  • Testing and validation
  • Post-upgrade considerations

Notes

Overview of the Rails upgrade process:

  • Importance of staying up-to-date with Rails versions
  • Common reasons for upgrading Rails
  • Key considerations before starting the upgrade process

Planning and preparing for the upgrade:

  • Assessing the current codebase and identifying key changes in rails 7
  • Creating a comprehensive upgrade plan
  • Establishing a testing strategy to ensure compatibility and minimize risks

Managing dependencies and third-party libraries:

  • Identifying and resolving compatibility issues with gems and libraries
  • Strategies for dealing with deprecated gems and outdated code
  • Techniques for minimizing disruption and maintaining system stability during the upgrade process

Implementing the upgrade at scale:

  • Strategies for tackling large codebases and distributed teams
  • Techniques for managing parallel development and minimizing conflicts
  • Tools and automation to streamline the upgrade process

Testing and validation:

  • Building a robust testing framework for the upgraded Rails version
  • Techniques for ensuring code coverage and maintaining quality standards
  • Strategies for handling regression issues and minimizing downtime during the upgrade process

Post-upgrade considerations:

  • Monitoring and performance optimization after the upgrade
  • Strategies for capturing and resolving post-upgrade issues
  • Establishing a maintenance plan to keep Rails up-to-date in the future