Tutorial - Debugging Applications on DC/OS

Debugging application deployment issues in distributed systems

Important: Mesosphere does not support this tutorial, associated scripts, or commands, which are provided without warranty of any kind. The purpose of this tutorial is to demonstrate capabilities, and therefore may not be suited for use in a production environment. Before using a similar solution in your environment, you must adapt, validate, and test.

This tutorial only aims to provide a top-down introduction to debugging applications during and after their deployment on DC/OS. It should not be considered an exhaustive resource for debugging DC/OS, but rather a starting point.

Debugging application deployment issues in distributed systems is often a challenging task. While DC/OS provides a number of tools for debugging, it might be difficult to choose which tool to apply in your particular situation. You should have a working knowledge of DC/OS in order to complete this tutorial. However, if needed there are plenty of other tutorials to get you up and running.

It can be encouraging to keep in mind that failures are highly likely when working with distributed systems. Many components must be configured to precise specifications to function together as intended. This takes detailed preparation and awareness during installation and initial configuration. Fortunately, this also means that by putting extra care in the general design of the application architecture can potentially prevent many bugs from even arising:

We will first look at some potential problems you might face when deploying an application on DC/OS. Next, we will look at the standard set of tools for debugging. Then, after introducing a general strategy for using those tools, we have two concrete examples to illustrate how the strategy works in practice. We encourage you to first try debugging these challenges yourself, but we also provide detailed guidance for debugging them as well. There are even more scenarios like these in the dcos-debugging github repository. Also please feel free to contribute your own debugging scenarios to this repository.