Hype or hubris
Before we begin diving deeply into troubleshooting, we ought to provide a basic contextual overview of modern applications and both the N-tier and microservices architectural styles. Knowing both the advantages and limitations of these architectural styles will help us plan for potential troubleshooting areas, and how we can avoid them. Containers are ideally suited for both of these architectural approaches, and we will discuss each one separately to give their proper due.
Within all the noise, we sometimes forget that to deploy systems across these domains, one still has to create services and compose multiple services in working distributed applications. Here, it is important to understand the modern meaning of the term application. Applications are now primarily constructed as asynchronous message flows or synchronous request calls (if not both) that serve in forming collections of components or services allied by these connections. Participating services are highly distributive...