This chapter covers
- What we mean by observability
- Why observability matters
- An end to end example of observability
- Challenges of cloud native systems and how observability can help
In cloud native environments, such as public cloud offerings like AWS or on-premises infrastructure, for example a Kubernetes cluster, you typically deal with many moving parts. This ranges from the infrastructure layer including compute (such as VMs or containers) and databases to the application code that you own.
Depending on your role and the environment you may be responsible for any number of the pieces in the puzzle. Let’s have a look at a concrete example: consider a serverless Kubernetes environment in a cloud provider. In this case both the Kubernetes control plane as well as the data plane (the worker nodes) are managed for you, which means you can focus on your application code, in terms of operations.
No matter what part you’re responsible for, you want to know what’s going on so that you can react to and ideally even proactively manage situations such as a sudden usage spike (because the marketing department launched a 25% off campaign without tell you) or due to a third party integration failing and impacting your application. The scope of components you own or can directly influence determine what you should be focusing on in terms of observability.