Thundra Sidekick Expands Microservices Debugging to Python, Kotlin, Scala
As a way to extend the reach of observability and monitoring platforms in order to help developers debug their code, cloud monitoring provider Thundra has expanded Sidekick, its IntelliJ IDEA debugging Plugin, so it can now also scrutinize Kotlin and Scala applications in addition to its mainstay of supporting Java applications. Thundra Sidekick will also soon be available to debug Python language programs, “in a few weeks,” company representatives say.
The widening of Thundra Sidekick’s reach is important for DevOps teams struggling to debug their applications across highly distributed microservices environments, Emrah Samdan, vice president of product, told The New Stack.
“Java still has the biggest share of the applications written for cloud environments and Python is close behind,” Samdan told The New Stack. “Thundra Sidekick brings support to Python to reach out to wider audiences.”
The key capability Thundra Sidekick offers is code-level observability that is easy to set up — the company claims, for example, users can be up and running in five minutes for multicloud environments.
The Thundra monitoring and debugging platform allows developers, through an IDE, to pause and relay code in separate test environments during the debugging process. This is done with its tracing capabilities through the use of traces, metrics and logs.
Debugging alternatives may offer observability for debugging typically “don’t actually integrate it with distributed traces,” Samdan told The New Stack. “Providing code-level observability for simple debugging in highly complex environments is what makes us unique.”
This capability should further help DevOps teams that are often barely able to manage highly complex microservices environments typically deployed across multiclouds, Torsten Volk, an analyst for Enterprise Management Associates (EMA), told The New Stack. “Debugging without the ability to set breakpoints and analyze function parameters and variables could be compared to looking for a needle in a haystack with one hand tied behind your back.
The haystack becomes much larger when developers need to weed through logs of microservices created by other teams, instead of simply grabbing a stacktrace at a breakpoint,” Volk said. “In an ideal world, there would be a solution that enables developers to receive the same level of insights into distributed apps as they used to receive for traditional monolithic ones, right from the comfort of their IDE. Whoever can pull this off should have a real winner on their hands.”
Thundra Sidekick was also designed to support developer teams’ debugging processes for their production pipelines. The pandemic also made the status of remote working environments “as the new standard,” while Thundra Sidekick helps remote development teams to collaborate more effectively on the code itself rather than on log files, Samdan said.
“In an ideal world, there would be a solution that enables developers to receive the same level of insights into distributed apps as they used to receive for traditional monolithic ones, right from the comfort of their IDE. Whoever can pull this off should have a real winner on their hands.”– Torsten Volk, EMA.
“If the pandemic had happened 10 years ago, developers would be using their personal computes to simulate third parties and cloud dependencies,” Samdan said. “Now, it’s challenging to create development environments that can mimic production environments with the advent of microservices.”
However, Samdan noted that Thundra Sidekick gives back the process of pair programming with the capability of setting breakpoints integrated with distributed tracing. “We are giving back the right to debug remote applications in remote teams as our technology [was designed] to resolve pre-production visibility issues while working on microservices,” Samdan said.
Overcoming Observability Shortfalls
Observability and monitoring platforms may also offer some debugging capabilities but they typically fall short as well, Samdan said. Observability platforms offer tracing, of course, but for debugging it is limited to inter-service and not code-level observability.
“Observability is cool, but this capability alone also typically forces developers to adopt and learn how to use other tools in order to gain native insights into highly distributed environments,” Samdan said.
Not that observability and application monitoring platforms (APMs) are not highly useful. Thundra, for example, competes against observability providers such as Lightstep with its APM platforms. However, in both cases, Thundra Sidekick extends the reach of these platforms — as described above — to provide accessible and easy-to-setup log tracing capabilities to debut complex microservices environments that are typically connected across on-premises and multicloud environments.
“We are not saying that observability is not needed. DevOps teams are still going to require tracing capabilities for their environments, for example,” Samdan said. “What we are offering is an additional tool to debug issues on a code level that is easy to use and offers a near-instantaneous analyst of their environments to fix applications on a code level.”
Specific capabilities Thundra Sidekick purports to offer include:
- Import code: Connections to the code repository on GitHub, for example, or another platform allows for tracepoints for any application running on different cloud platforms to be reset without interrupting the applications that are running.
- Set tracepoints: Non-breaking breakpoints, a.k.a. tracepoints, are set to provide visibility into failures occurring in code. To implement this feature, Thundra Sidekick needs to be added as a dependency, but no code change is required.
- Snapshots: Thundra Sidekick Cloud Debugger takes a snapshot of variables and the call stack. It’s as if the code pauses like it would in a breakpoint, but it actually doesn’t. All valuable data is retrieved with no performance overhead.
- Distributed tracing: Thundra’s novel distributed tracing engine seamlessly and automatically connects traces in various services within the same distributed transaction.
- Hotfix and reload: Small code changes (such as null checks, wrong logical operators/comparisons, etc.) can be made by developers and reloaded without the need to redeploy the application again. This helps save time and boost developer productivity.
- This plugin works on Amazon Web Services Microsoft Azure, and Google Cloud containerized environments.