Speaker
Abstract
We want our systems to be reliable, but testing alone isn't enough. In a complex, multi-service system, it's impossible to test your way to correctness. That's why we need observability. Observability is the ability to see what our code is doing, in production and in development. It allows us to build systems that are easier to write, debug, and maintain.
In this talk, I'll draw on my 40 years of software development experience to show you how to apply observability techniques to your own systems. We'll talk about:
- Why observability should be built in as part of the high-level architecture
- How to instrument your code for observability
- How to use observability tools to debug and optimize your systems
Attendees will leave with an overview of observability tools and techniques, and specific recommendations for how to fit observability into their system designs and day-to-day development process.
Interview
I'm a staff engineer at Honeycomb.io, and the lead engineer working on Refinery, which is Honeycomb's tail-sampling proxy. Honeycomb makes observability tools used in monitoring for some of the largest cloud-based systems in the world, and Refinery helps those customers manage the volume of their observability data.
Too many people think of observability as something you do once you're deployed at scale. I want to show how, if you start early, you can benefit from observability long before a customer ever touches your product.
Engineering leaders who are actively making decisions about what to build and how to build it. You don't have to be writing code to benefit from this talk, but if you do, you should learn a few things you can act on.
The knowledge that whatever the state of their project, from first prototype to longtime legacy, they can can find a way to leverage observability today and see some benefits immediately.
Topics
QCon New York 2023 is a three day conference for senior software engineers, architects and team leads. An international program committee of working engineers selects every session. Patterns and practices, not products and pitches.
Part of the track
Designing Modern Reliable Architectures Hosted by Silvia Esparrachiari Software Engineer @GoogleFrom the same track
Wednesday 14 June
10:35 Salon A-C Session Kafka How to Build a Reliable Kafka Data Processing Pipeline, Focusing on Contention, Uptime and Latency Lily Mara Engineering Manager @OneSignal Shifting workloads from synchronous to asynchronous can simplify the operational cost of high-throughput HTTP services. But understanding the evolution of performance metrics in the world of complex, high-concurrency, asynchronous distributed systems can be quite challenging. 11:50 Carroll Gardens Unconference Unconference: Designing Modern Reliable Architectures What is an unconference? An unconference is a participant-driven meeting. Attendees come together, bringing their challenges and relying on the experience and know-how of their peers for solutions. 13:40 Salon A-C Session Architecture Building an Architecture to Predict Customer Behavior in a Revenue-Critical System Yves Junqueira Distinguished Software Engineer @Neon At Neon digital bank in Brazil, we strive to make revenue-impacting predictions based on customer behavior. Building a low latency and high availability distributed system that meets this requirement becomes especially challenging. 14:55 Salon A-C Session Architecture Reliable Architectures Through Observability Kent Quirk Staff Engineer @Honeycomb.io We want our systems to be reliable, but testing alone isn't enough. In a complex, multi-service system, it's impossible to test your way to correctness. That's why we need observability. Observability is the ability to see what our code is doing, in production and in development. 16:10 Salon A-C Session Developer Environment Architecting a Production Development Environment for Reliability Henrique Andrade Production Engineer @Meta At Meta, developers use a combination of development servers, including virtual machines and physical hosts, as well as on-demand containers to perform their daily software engineering work. 17:25 Salon A-C Session Cloud Architecture Survival Strategies for the Noisy Neighbor Apocalypse Meenakshi Jindal Staff Software Engineer @Netflix Noisy neighbor issues are a common challenge for multi-tenant platforms, leading to resource contention, performance degradation, and costly downtime for other tenants sharing the same resources.