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: Distributed Tracing: From Theory to Practice by Stella Cotton Application performance monitoring is great for debugging inside a single app. However, as a system expands into multiple services, how can you understand the health of the system as a whole? Distributed tracing can help! You’ll learn the theory behind how distributed tracing works. But we’ll also dive into other practical considerations you won’t get from a README, like choosing libraries for Ruby apps and polyglot systems, infrastructure considerations, and security.
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 RailsConf 2017 talk titled "Distributed Tracing: From Theory to Practice," Stella Cotton, an engineer at Heroku, explores the concept of distributed tracing, which involves tracking requests across multiple services in an application architecture. The session begins with an introduction to the basic concepts of distributed systems, illustrating the importance of understanding performance in complex applications that rely on multiple microservices. Key points discussed include: - **Introduction to Distributed Tracing**: Cotton explains that distributed tracing helps in identifying bottlenecks across services rather than relying solely on performance monitoring tools that analyze individual components. - **Black Box vs. White Box Tracing**: The talk distinguishes between black box tracing, which logs traffic without system insight, and white box tracing, which requires changes to the application to track metadata propagation and relationship mapping between various service calls. - **Key Components of Distributed Tracing**: Cotton outlines the essential components involved in distributed tracing systems, notably the tracer, transport component, collector, and user interface. She explains how metadata propagation can be employed to create a detailed request lifecycle trace. - **Implementing Distributed Tracing in Ruby**: Specific methodologies are shared for implementing distributed tracing in Ruby applications, focusing on using middleware for rack applications and external API calls. Cotton emphasizes the need to sample requests and the importance of creating specific annotations to track performance effectively. - **Choosing a Distributed Tracing System**: The selection process for a tracing system can be daunting due to the varying options available. Cotton provides criteria for evaluating tracing solutions, including the need for compatibility with the existing framework, operational requirements, and security considerations. She encourages adopting either open-source solutions like Zipkin or paid options depending on team capacity and system complexity. - **Security and Compliance**: Attention to security is critical, especially regarding sensitive data. Cotton shares best practices for ensuring secured tracing, including implementing authentication and authorization measures. - **Phased Implementation and Team Buy-in**: Her advice includes taking incremental steps in implementing a tracing solution, fostering team understanding through hands-on experimentation, and integrating tracing into development workflows. In conclusion, Cotton's presentation provides a comprehensive overview of distributed tracing, emphasizing its necessity for modern application monitoring in a microservices architecture. The takeaway is that although implementing distributed tracing can be complex, it greatly enhances the ability to troubleshoot and optimize performance in increasingly sophisticated application ecosystems.
Suggest modifications
Cancel