We envision a world where the connection is the network: cloud services, connected devices and endpoints, easily and securely connect to each other, any time, anywhere.
Debugging in production is surely a mission-critical process. It can always happen even with preparation, best deployment practices, 100% code coverage, or manual testing.
Most of the time, when a bug occurs in production, the first idea is to reproduce the bug locally and then fix it by making another deployment. But what if the issue is not about the code source? It can be a service used on the machine, for example.
Debugging in production is hard because when developing, the developers have control over the environment, the scenarios are well known and it’s easier to debug by putting breakpoints anywhere in the code to stop and examine the state of your application.
You can even dump your development database to get rid of certain bugs.
Thus, having a safe and simple process to debug in production can be significant when some scenarios of issues appear.
But with all of that, why debug in production? Well, it comes with some advantages.
If you need to debug in production, here are some tips you can follow:
This will reduce the risk of interrupting other critical services.
Sentry or Bugsnag for example will give you a traceback you can analyze to quickly identify the issues. You’ll have more information such as the state, the requests, and much more.
These pieces of information can be valuable to have a better understanding of how your machines are actually working. And for example, by identifying a machine that may have problems, you are limiting the scope of debugging, thus making it faster and easier.
Having to jump between many systems or machines to find the bugs only adds more stress to deal with the issue.
If you are looking to debug in production, it’s probably certain you’ll have to access the machine. remote.it helps you simplify the way you connect to your machines via one and expiring links but also without managing SSH keys.
This can be useful to quickly access your machine and even grant permissions to the other members of your team to these resources just by using their email addresses.
And the big advantage is the security: No port forwarding is needed to allow this access. This means no attack surface for hackers.
With remote.it, you can have access to information such as your device’s status.
This is really useful because you’ll get notified when one of your devices goes down. You can even configure webhooks to receive events with more details you can use depending on your needs.
Delivering a bug-free application to consumers is never a perfect process. Unprecedented scenarios can still arise, either because nuances were missed in the development or testing phase.
At the end of the day, debugging in production depends on one thing: data. The more valuable data you have, the quicker it is to solve the issue.
Having a production debugging strategy in your team is a must. And having remote.it as part of your debugging tools will definitely accelerate things.