Chapter 1. The Three Phases of Observability: An Outcomes-Focused Approach
The cloud native ecosystem has changed how people around the world work. It allows us to build scalable, resilient, and novel software architectures with idiomatic backend systems by using the power of the open source ecosystem and open governance.
How does it do that? Distributed architectures. The introduction of containers made the cloud flexible, and empowered distributed systems. However, the ever-changing nature of these systems can cause them to fail in a multitude of ways. Distributed systems are inherently complex, and, as systems theorist Richard Cook notes, “Complex systems are intrinsically hazardous systems.”1
Think about how many different hazards a container faces: it can be terminated, it can run out of memory, it can fail the readiness probes, or its pods can be evicted from a restarting node, to name a few. These additional complexities are a trade-off for highly flexible, scalable, and resilient distributed architectures.
Distributed systems have many more moving parts. The constant struggle for high availability means that, more than ever, we need observability: the ability to understand changes within a system.
Thanks in large part to Cindy Sridharan’s concept of “three pillars of observability,” introduced in her groundbreaking work Distributed Systems Observability,2 many people think that if you have logs, traces, and metrics (Figure 1-1), you have observability. Let’s look quickly ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access