Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
RailsConf 2017: Upgrading a big application to Rails 5 by Rafael Mendonça França In this talk we would take a look in different strategies to upgrade Rails application to the newest version taking as example a huge monolithic Rails application. We will learn what were the biggest challenges and how they could be avoided. We will also learn why the changes were made in Rails and how they work.
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 this presentation from RailsConf 2017, Rafael França discusses the journey and strategies involved in upgrading a large monolithic Rails application—specifically Shopify—from its previous versions to Rails 5. Francia outlines the challenges faced along the way, as well as the solutions implemented, emphasizing lessons learned for both the company and the Ruby on Rails community. Key Points Discussed: - **Timeline of Rails and Shopify Development**: Shopify's codebase, having started around the same time as Rails itself in 2004, has undergone several upgrades in close agreement with Rails releases. For instance, the upgrade to Rails 5 took about a year from its initial start until deployment, highlighting the scale and coordination necessary in such a large application. - **Complexity of Upgrading**: The transition involved creating new branch strategies and maintaining code functionality across two versions of Rails simultaneously. A significant point made was the complexity of needing to handle code that operate under both Rails 4 and Rails 5, which was managed through conditional configurations in shared machine files. - **Key Challenges Encountered**: The upgrade process was not without complications. Major issues included managing deprecations such as protected attributes transitioning to strong parameters, which required code adjustments to ensure secure and smooth data handling. - **Testing and Continuous Integration**: France emphasized the importance of establishing a parallel Continuous Integration system that would validate the application behavior under both Rails versions. This practice allowed the identification and fixing of bugs collaboratively with other developers while ensuring stability. - **Community Contributions**: França highlighted the role of contributing back to the community, particularly when some dependencies required updates to work with Rails 5, demonstrating a cycle of giving back to the framework that underpins the Shopify application. - **Future Plans and Considerations**: Moving forward, Francia noted the desire for Shopify to maintain a consistent upgrade path, ensuring it remains on the latest versions of Rails to avoid the technical debt that stems from outdated code. This proactive approach seeks to foster a culture within the company where everyone contributes to keeping the application state-of-the-art. In conclusion, the upgrade of Shopify to Rails 5 serves as a valuable case study for large Rails applications, demonstrating that while the upgrade process can be complex and challenging, strategic planning, community engagement, and an emphasis on testing can lead to a successful transition.
Suggest modifications
Cancel