To troubleshoot modern applications, you need to understand both the code and the infrastructure