Cloud Services / Development / Microservices

Thundra Cloud Debugging Platform Supports Java/Spring Hotfix Capabilities

2 Feb 2021 11:59am, by

Cloud monitoring provider Thundra has extended its platform by offering a plugin to debug and make fixes remotely for application code without disrupting application execution times.

While Thundra previously allowed for monitoring and debugging applications and microservices, Thundra’s Sidekick plugin goes further by allowing for hotfixes to be implemented directly to live code. Developers can thus rely on Thundra to diagnose application-performance issues and then use Thundra Sidekick with the Java integrated development environment IntelliJ IDEA to add and view tracepoints to the problem code without affecting the code execution. Fixes can then be implemented and uploaded without having to redeploy the application.

“After successfully helping the community to troubleshoot production issues, we also understood that we hit the tip of the iceberg in developers’ pains,” Serkan Ozal, founder and Chief Technology Officer for Thundra, said. “Thundra Sidekick helps to find and fix bigger problems that were previously hidden.”

This new plugin works for any Java application and any Spring application. Provided that the runtime is Java, it can work on Amazon Web Services, Microsoft Azure, and Google Cloud. It also works on containerized applications and Kubernetes.

Complexity Struggle

Ozal described how monitoring systems  “has had and still has its unique challenges,” in need of alternatives for monitoring and fixing problems without impeding the execution times of applications functions. At the same time, Ozal noted how applications built today are increasingly created with the use of third-party services, such as DynamoDB and SQS, online retail services, including Twilio and Stripe, and services that in-house DevOps team members provide in support of application development and operations management.

“The complexity of applications continues to increase, and developers are expected to manage complexity before and after the application is driven to production,” Ozal said. “There are a number of best practices and multiple tools to manage the complexity and resolve issues after a code is in production, however, the end result is that [managing]  the production complexity for modern applications remains underserved.”

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.

In a demo, Thundra demonstrated a sample incident, involving problems an end user was having scheduling appointments. Thundra Sidekick debugging process first involved setting and initiating tracepoints to reveal the issues in the code. The problem code was then replaced in the cloud environment with a hotfix.

Remote Fixes

Among other things, Thundra Sidekick also facilitates remote development teams, Ozal said.

“Traditionally, developers use their personal computers and local environments to simulate third parties and cloud dependencies,” Ozal said. “Although it’s challenging to create development environments that mirror production environments while developing distributed microservices and cloud apps, application teams welcome remote development.”

However, Ozal noted how the process of debugging applications in remote environments is typically “arduous” and is often lacking when “setting breakpoints for remote applications like you would do in a local environment.” “Remote development lacks debugging tools on distributed environments,” Ozal said. “This challenge revealed the opportunity to tap into Thundra’s technology to best fit the developer’s pre-production needs while working on microservices.”

Additional Sidekick functionalities:

Set tracepoints: Tracepoints are integrated with its distributed tracing technology. “By using the variables around tracepoints, developers can define conditions for tracepoints and filter necessary information by defining the tracepoint,” Ozal said. “For instance, when a specific condition occurs, developers can configure it and take snapshots.”

Snapshotting: Thundra Sidekick takes a snapshot of the variable and the call stack when the code execution hits the tracepoint with all valuable data retrieved with negligible (< 1ms) performance overhead.

Distributed Tracing: Thundra Sidekick connects several tracepoints in the same distribution function. “This allows developers to navigate between snapshots of the same transaction while achieving end-to-end debugging visibility,” Ozal said.

A newsletter digest of the week’s most important stories & analyses.