As developers rely more on containers running on Kubernetes clusters, many DevOps teams are coming to terms with the inherent challenges associated with debugging those applications. Kubernetes and containers are especially challenging because of the ephemeral, shifting, distributed concurrent instances of code, which means there is no natural breakpoint to begin debugging an application—each application running on a Kubernetes cluster can be made up of pods running thousands of containers, controlled by multiple Kubernetes nodes that interact with any number of local and remote resources and end users.
To address that issue, Rookout is bringing its debugging tools to Kubernetes to enable organizations to establish breakpoints where they see fit.
Now, a breakpoint that can collect everything from single variable state to the whole Kubernetes stack can be set up via a single click for a single region or the entire Kubernetes cluster, says Rookout CEO Or Weis. Achieving that goal today requires developers to guess what’s happening within an application using logging and distributed tracing tools, which Weis notes can be challenging to set up and maintain. Also, those tools don’t provide information about what is happening inside the code itself or inside the containers.
Weis says Rookout provides a dedicated tool that reduces debugging time in Kubernetes environments by as much as 80 percent. Rookout is also designed to collect full-stack data without requiring code to stop running or have an impact on code execution. Because the amount of time and effort required to debug an application has been sharply reduced, he says, the number of developers debugging their applications earlier in the process will rise. At the very least, developers will have a much better handle on what bugs need to be fixed earlier versus those that might be addressed later, he says. In a perfect world, all bugs would be addressed when they are first discovered. But when application development deadlines loom, sometimes difficult choices are made.
Of course, the only thing worse is trying to fix bugs after an application has already been deployed in a production environment. Debugging tools make it simple to do that when necessary. But the fact remains that given all the interdependencies associated with containerized applications, fixing one microservice may have a significant impact throughout the entire application. Plus, many bug issues are directly related to cybersecurity issues, so the more bugs that are addressed during application development, the fewer headaches there will be. Weis says Rookout is designed to not introduce any additional overhead or harm to applications running in production environments.
Naturally, there are a lot of reasons some organizations may not be modernizing their applications. The debugging processes associated with building containerized applications should not be one of them. But as is often the case, the simplest of issues wind up being the biggest hurdle to overcome.