RailsConf 2023 - Zero downtime Rails upgrades by Ali Ibrahim

Upgrade your Rails app with zero downtime by breaking tasks into manageable chunks, deploying incrementally, and adapting to new patterns and APIs.

Key takeaways
  • When upgrading Rails, it’s essential to break the work down into smaller, manageable chunks.
  • Focus on one tiny change at a time, making it easier to review and fix issues.
  • Use deprecation warnings to catch issues early and address them incrementally.
  • Deploy to production in smaller increments, monitoring and iterating based on feedback.
  • Consider using a strategy called “backporting” to adapt to new patterns and APIs.
  • Shipping code bit by bit reduces the risk of new errors and makes it easier to test and debug.
  • Dual booting allows teams to work on both old and new versions of Rails, making it easier to upgrade.
  • Use tools like BootBoot to simplify the process of switching between different versions of Rails.
  • It’s essential to have a shared understanding of the technical landscape and the challenges involved in upgrading Rails.
  • By shipping code incrementally, teams can build confidence and make the upgrade process more predictable and repeatable.
  • Addressing test failures incrementally can help reduce the risk of introducing new errors.
  • Teams that invest time and money in upgrading Rails are more likely to experience benefits such as improved maintainability, better security, and increased efficiency.
  • By making small, incremental changes, teams can adapt to new patterns and APIs without feeling overwhelmed.
  • Rails upgrades can be challenging, but by breaking the work down into smaller pieces and shipping code incrementally, teams can make the process more manageable.