Goals of maintainability
The maintainability of your product includes three main use cases, which we will discuss in this chapter:
- To quickly know if your system is suffering from degraded performance, for example:
- Checking on hardware health
- Checking on system resources
- Identifying patterns in software issues
- To easily maintain and improve your system, for example:
- Seeing the current running state
- Performing upgrades and improvements
- Enabling new features and capabilities
- To debug specific failures, for example:
- Why didn’t a user receive their password reset email?
- Why did a web page fail to load?
- Why did the application fail to update to the latest version?
Maintainability is closely tied to observability because you can only make improvements if you thoroughly understand your product’s current running state. This section considers these three use cases in more detail.
Tools for observability
Complex products with multiple interacting systems will...