When it comes to debugging performance related issues, the range of these issues together with their root cause can be overwhelming to developers.
I’ve been a firmware engineer at two wearable companies in the past, Pebble and Fitbit, and there was always one class of customer support tickets and user complaints that never went away: issues around battery life. It was a constant game of whack-a-mole with every new firmware version introducing a battery regression.
What do you do when things break in production? Debugging microservices isn’t a walk in the park. Microservices are designed to be loosely coupled, which makes them more scalable and resilient, but also more difficult to debug. When a problem occurs in a microservices app, it can be difficult to track down the source of the problem. When the problem is in production, the clock is ticking and you have to resolve the issues fast.
Debugging in production is always a necessary evil. No matter how well your code is written and reviewed, bugs are bound to appear, and their consequences are there for your users to see. While debugging any app has challenges, debugging legacy systems is a different ballgame. From unfamiliarity with the codebase to a lack of knowledge about the tech, your developers can find themselves aimlessly searching for solutions where solutions don’t exist.