Mastering Distributed Tracing: Analyzing performance in microservices and complex systems
Understand how to apply distributed tracing to microservices-based architectures
- A thorough conceptual introduction to distributed tracing
- An exploration of the most important open standards in the space
- A how-to guide for code instrumentation and operating a tracing infrastructure
Mastering Distributed Tracing is a practical guide to distributed tracing. Yuri Shkuro, the creator of Jaeger, a popular open-source distributed tracing system, offers end-to-end coverage of the field. Review the history and theoretical foundations of tracing; solve the data gathering problem through code instrumentation, with open standards like OpenTracing, W3C Trace Context, and OpenCensus; and discuss the benefits and applications of a distributed tracing infrastructure for understanding, and profiling, complex systems.
The rise of Internet-scale companies, like Google and Amazon, ushered in a new era of distributed systems operating on thousands of nodes across multiple data centers. Microservices increased that complexity, often exponentially. It is harder to debug these systems, track down failures, detect bottlenecks, or even simply understand what is going on. Distributed tracing focuses on solving these problems for complex distributed systems. Today, tracing standards have developed and we have much faster systems, making instrumentation less intrusive and data more valuable.
Practical exercises and code examples will equip you to use end-to-end tracing as a powerful application performance management and comprehension tool, while imparting the skills to operate and enhance your own tracing infrastructure.
What You Will Learn
- How to get started with using a distributed tracing system
- How to get the most value out of end-to-end tracing
- Learn about open standards in the space
- Learn about code instrumentation and operating a tracing infrastructure
Who This Book Is For
Any developer interested in testing large systems will find this book very revealing and in places, surprising. Every microservice architect and developer should have an insight into distributed tracing, and the book will help them on their way. System administrators with some development skills will also benefit. No particular programming language skills are required, although an ability to read Java, while non-essential, will help with the core chapters.