Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
I saw a green build on a Friday afternoon. I knew I need to push it to production before the weekend. My gut told me it was a trap. I had already stayed late to revert a broken deploy. I knew the risk. In the middle of a service extraction project, we decided to migrate from REST to GraphQL and optimize API usage. My deploy was a part of this radical change. Why was I deploying so late? How did we measure the migration effects? And why was I testing on production? I'll tell you a tale of small steps, monitoring, and old tricks in a new setting. Hope, despair, and broken production included.
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 his talk at RailsConf 2021, speaker Maciek Rzasa discusses the complexities of API optimization within the context of migrating from REST to GraphQL while extracting a billing service from a monolithic Rails application. The presentation unfolds with Maciek reflecting on a near mishap during a Friday afternoon deployment. He highlights the importance of deploying safely, especially when many engineers are actively working on the same project. The platform in question is a large Rails application with over a million lines of code, requiring careful handling to ensure stability while implementing changes. Key points discussed include: - **Deployment Timing and Risks**: Maciek explains his initial hesitation to deploy on a Friday due to his previous experience of breaking production. Despite this, he recognized the necessity of the deployment before the weekend. - **Incremental Service Extraction**: The process of extracting billing logic was detailed. The approach began with a rails engine and evolved to include networking capabilities with safe deployment practices, such as feature flags and fallbacks to maintain user experience during errors. - **Monitoring Enhancements**: To effectively measure impacts post-migration, they enhanced monitoring setups, identifying slow calls and performance bottlenecks, which informed the prioritization of their migration efforts. - **Optimization Efforts**: Several optimization techniques were employed, such as preloading, caching, and improving API queries through intelligent data handling to reduce unnecessary load on services. - **Learning from Mistakes**: Maciek shares anecdotes about production errors caused by over-sanitizing parameters during deployment and the importance of testing changes thoroughly before relying solely on CI/CD pipelines. Through these points, Maciek illustrates not only the technical challenges faced during the project's transition but also emphasizes organizational learnings and the significance of cultivating a safe environment for deployment. He concludes with the take-home message that successful deployment strategies rely on robust monitoring, safe rollback procedures, and incremental improvements, encouraging engineers to share their journeys to foster community learning.
Suggest modifications
Cancel