Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
In this talk we will dive into how Shopify automated Rails upgrades as well as leveraged Dependabot, Rubocop, and Bundler to easily upgrade and maintain 300+ Ruby Services at Shopify to be on the latest Ruby & Rails versions. You'll learn how you can do the same!
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In the talk titled "Ruby & Rails Versioning at Scale" presented at RailsConf 2024, George Ma, a backend developer on Shopify's Rails infrastructure team, discusses the strategies implemented at Shopify to automate and streamline the upgrade process for over 300 Ruby services. The video's main theme focuses on resolving the complexities associated with upgrading Ruby on Rails applications in a large-scale environment. Key points discussed include: - **Challenge of Rails Upgrades**: Upgrading Rails applications can be labor-intensive and error-prone, particularly at scale. Shopify recognized that past upgrades led to inconsistencies and mistakes among 500 Rails repositories, resulting in a lack of upgrade agility and security. - **Introduction of an Upgrade Calendar**: To alleviate psychological barriers, Shopify implemented an upgrade calendar that informs teams about scheduled upgrade deadlines. This allows teams to integrate upgrades into their planning, reduce unexpected disruptions, and promotes app evaluation for potential sunsetting. - **Tooling for Automation**: George highlights the development of two key tools: - **Rails Upgrade Gem**: A command-line tool designed to automate standard upgrade steps, ensuring no step is missed during the process. - **Solid Track Web App**: A centralized dashboard for tracking application upgrades, facilitating application onboarding, and maintaining statistics for Rails versions across services. - **Standardizing Ruby Versions**: To further simplify Ruby upgrades, the team standardized version definitions across applications to a single Ruby version file, addressing the common challenge of disparate Ruby version definitions. - **Improvements Yield Results**: The implementation of these strategies resulted in significant successes, with a reported 96% upgrade of applications to Rails 7.1 within a short timeframe. Surveys among developers indicated a marked improvement in the upgrade experience, with 94% reporting reduced difficulty in upgrading. In conclusion, the major takeaways from George's presentation stress the elimination of psychological barriers, the uniqueness of Rails upgrades requiring structured processes, and the benefits of maintaining up-to-date Ruby and Rails versions to enhance security, stability, and developer satisfaction.
Suggest modifications
Cancel