Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Building a feature is not good enough anymore: all your work won't be of use if it's not performant enough. So how to improve performance? After all, performance is not an easy discipline to master: all slow applications are slow in their own way, meaning that there is no silver bullet for these kinds of problems. In this presentation, we will guide you across patterns, strategies, and little tricks to improve performance. We will do that by sharing real stories of our daily experience facing and solving real performance issues in an application that daily serves billions of requests per day.
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 presentation titled "A Rails Performance Guidebook: from 0 to 1B requests/day" delivered by Cristian Planas at RailsConf 2022, the focus is on improving application performance, emphasizing the complexity of scaling software systems effectively. The speaker unfolds insights and practical guidance drawn from experiences managing a significant volume of data in a real-world application serving billions of requests daily. Key points discussed include: - **The Myth of Performance Issues:** Performance challenges are common across various programming languages and frameworks, not unique to Ruby on Rails. - **Scaling Challenges:** The journey of scaling applications can reveal the intricate difficulties of software engineering, particularly as systems grow large. Planas shares his experiences from working at Zendesk, where they currently handle 16.3 billion tickets and 400 terabytes of relational database data. - **Performance and Monitoring:** The importance of monitoring performance is highlighted. Effective monitoring can help identify issues in applications, as performance problems often manifest in different ways across different systems. - **Database Optimization:** Specific strategies for enhancing database query performance like avoiding "N+1" queries and ensuring appropriate indexing are discussed. Greedy selects (e.g., using SELECT *) can heavily impact performance negatively when fetching unnecessary data. - **Caching Strategies:** The presentation emphasizes efficient caching methods, such as write-through caching that helps reduce database load and improve response times. - **Archiving Data:** A method known as 'Cold Storage' is described, allowing aged data to be archived, thus preventing database bloating. This approach has drastically improved their data management and performance metrics. - **Trade-offs and User Experience:** Planas discusses the necessity of making trade-offs when scaling, such as finding a balance between system limitations and user needs. Users often prefer to access older data through separate calls rather than experience slow response times. - **Simplicity vs. Complexity:** An important lesson explored is the tendency of engineers to over-engineer solutions; simplicity and understanding the context of technology usage are crucial for stable performance. In conclusion, the core message of the talk revolves around the idea that performance optimization is a continuous process that requires a mindset focused on enjoyment in problem-solving, balancing trade-offs, and prioritizing user experience. Every application scales differently, and the right strategies must be devised considering the unique performance challenges faced. Overall, the presentation advocates for a pragmatic, thoughtful approach to performance engineering in Rails applications.
Suggest modifications
Cancel