Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Upgrading Rails at Scale by Edouard Chin Upgrading Rails at Shopify has always been a tedious and slow process. One full upgrade cycle was taking as much time as it takes to release a new Rails version. Having a full time dedicated team working solely on upgrading our platform wasn’t the solution but instead a proper process and toolkit. In this talk I’d like to share the different techniques and strategies that allowed to perform our smoothest and fastest Rails upgrade ever.
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
The video titled "Upgrading Rails at Scale" features Edouard Chin at RailsConf 2018, discussing the strategies implemented by Shopify to streamline the Rails upgrade process. Upgrading Rails had historically been a slow and tedious task for Shopify, sometimes taking as long as releasing a new version of Rails. Chin elaborates on how instead of having a dedicated team, they developed a robust process and tooling to enhance their upgrading efficiency. Key points discussed include: - **The Challenge of Upgrades**: Shopify has been running on Rails since its inception, which has led to a complex codebase with over 300,000 commits and 250 direct dependencies, making upgrades resource-intensive. - **Continuous Integration (CI) Enhancements**: Previously, the CI process could not be enabled until a large number of issues were resolved. The team learned to allow CI to fail only for newly introduced broken tests while maintaining existing issues, helping to manage the upgrade process more effectively. - **Dual Booting Strategy**: Shopify prepared for dual booting of their application by allowing it to run on both the current version and the next version of Rails, enabling rapid testing and identification of potential issues. - **Componentization**: A project that helped in organizing the codebase into manageable components allowed teams to focus on fixing failures in their specific areas, promoting engagement and accountability. - **Deprecation Tracking**: They introduced a deprecation toolkit to monitor and manage deprecation warnings, addressing issues proactively rather than reactively. - **Rollout Strategy**: A cautious deployment strategy incrementally transitioned to the new Rails version across a small percentage of data centers, allowing for monitoring of any issues while minimizing risk. - **Open Source Contribution**: By operating at the head of the Rails branch, Shopify aims to contribute to and benefit from upstream improvements, testing changes before they're widely adopted. Chin concludes that these processes not only sped up Rails upgrades but also fostered a culture of collaboration among developers, allowing for continuous improvement and adaptation to new Rails releases. The overall aim is to enable more frequent upgrades with reduced lead time, learning from each iteration to improve the next. The key takeaway from this talk emphasizes that the principles provided can be applied to any significant gem upgrade, promoting best practices in dependency management, testing, and community contribution.
Suggest modifications
Cancel