Rookout integrates with Kubernetes to enable debugging at scale

October 23, 2018

Rookout, the rapid debugging company, today announced that it’s bringing breakpoints to Kubernetes. The launch of Rookout’s live Kubernetes debugger means that developers can finally debug their containerized apps using non-breaking breakpoints at all stages of the software development lifecycle, from development through minikube, staging, and even production.

Kubernetes, the open-source container orchestration system, has quickly become the standard way to run containerized applications. A Kubernetes cluster can consist of pods of thousands of containers, controlled by multiple Kubernetes nodes, interacting with local and remote resources and end-users.

Traditional debuggers leave developers helpless on Kubernetes, because they can’t debug multiple ephemeral, shifting, distributed concurrent instances of code. The powerful and familiar features that debuggers provide, like breakpoints, are missing.

Instead, developers are forced to rely on cumbersome indirect methods to debug Kubernetes, including logging and distributed tracing. But these are complicated to set up, can have high-performance overhead, and are low-fidelity. They can’t provide information about what is happening inside the code itself, deep inside the containers. This ultimately turns Kubernetes debugging into complicated guesswork.

Rookout brings back the breakpoints that were lost in moving to Kubernetes, allowing developers to directly debug their containerized apps. Rookout’s “breakpoints” collect full stack data but they don’t actually stop or affect the code execution, meaning that they can be used in production as well as in development. Rookout’s breakpoints can target a single region, Kubernetes deployment or cluster, enabling debugging efforts to focus on a particular problem. They can collect a single variable state, the whole stack, or anything in-between, and they can be created with a single click.

“Developers love breakpoints, but they lost them on Kubernetes,” said Rookout co-founder and CEO Or Weis. “Devs still use debuggers in local development, but then they have to switch to a different set of suboptimal tools once the code is deployed. Because Rookout isn’t tied to a single container instance, it can work in scale, addressing issues that only show up intermittently.”

“People want to debug with a debugger. That’s why it’s called a debugger,” said Rookout CTO and co-founder Liran Haimovitch. “Nobody wants to install and run complicated, high-overhead monitoring solutions just to be able to indirectly debug Kubernetes. Rookout goes beyond the trace level, giving developers and DevOps back the breakpoints they need to understand their applications, without having to stop the app to write new code.”