Aternity APM Provides Visibility Into Containerized .NET Core Apps

Peco Karayanev July 25, 2019

Riverbed APM recently added full visibility into containerized .NET Core apps. The following interview with me is also featured in the latest edition of the Riverbed Connections newsletter.

More and more IT shops are turning to containers and microservices to help build flexible and portable cloud-native applications—and the .NET Core framework makes this easy for coders who favor Microsoft’s development tools. But in apps with numerous interlinked components spread across local servers and cloud platforms, application monitoring has become increasingly complex. Fortunately, Riverbed is up to the task.

“It’s exciting because we feel like we’re really helping our customers do great things with this new technology,” says Riverbed Director of Product Management Peco Karayanev. We’ll dive into the details of what Riverbed can do for .NET Core apps in a moment—but first, let’s take a look at this offering from Microsoft.

Microservices, meet Microsoft

It’s increasingly popular to break up monolithic applications into individual interlinked microservices that often run inside containers, supported by infrastructure services like Docker and Kubernetes. Separating concerns into individual components makes it easier to quickly develop and iterate new functionality, and take advantage of distributed and cloud-based infrastructures.

evolution of microservices
Figure 1. The evolution of microservices

Microsoft’s .NET Core is an open source, cross-platform version of their well-established .NET Framework that is optimized for container-based applications. Microsoft-oriented developers are getting on board fast. “.NET Core and all of the development tooling around it is really good, and it makes developers very productive,” says Karayanev. “It normally takes many years for new technology to get adopted, but across our customer base we’re seeing an extremely rapid adoption of .NET Core.”

Shining a light into .NET Core

But like all containerized and distributed systems, apps built with .NET Core pose challenges, especially when it comes to performance monitoring. “As people start building applications with .NET Core, they need to start gathering telemetry about how these .NET microservices are communicating,” says Karayanev. “In a dynamic application that’s changing all the time, you may have performance bottlenecks across different parts of the distributed infrastructure.”

In a word, companies need visibility into these applications in order to ensure performance. “Customers need visibility into transactions, into how the orchestrated components are working, so that they know they can identify problems very quickly,” says Karayanev. “We have very large clients in the financial sector that needed support for visibility before they felt comfortable launching new apps built with this framework.”

.net core framework

How Riverbed APM gets the job done

Riverbed’s APM technology lets you observe and track every .NET Core component as they execute across a distributed cloud-native environment, providing enterprises with the visibility they need to build high-performing applications. “With Riverbed, you can easily see which parts of your code or of your end to end transactions need to be tuned,” says Karayanev. “Maybe I made a remote pulse into an API from .NET Core, and that’s causing a delay. Our APM solution makes it possible to understand that distributed map of delays. We’re not just identifying that the application is slow. We give developers a very precise description of the problem, identifying exactly where the delays are—which classes and which methods and under which parameters.”

Figure 2 illustrates how Riverbed APM can perform analytics at the Kubernetes/orchestrator level. The transaction map in the screenshot is based on Kubernetes pods, not physical servers or containers. As the .NET Core app is executed across different pods running in Kubernetes as a Service on Azure, Riverbed can create a logical map of how the different pods are interconnected.

mapping kubernetes pods
Figure 2. Mapping Kubernetes pods in a .NET Core application

And you don’t need to modify any of your .NET Core code to take advantage of Riverbed’s APM capabilities. “There are other approaches and technologies out there that require you to include libraries or change things, but with Riverbed, that’s not the case,” says Karayanev. “We watch the app and we measure it, with technology that plugs us inside the app without needing to modify it.”

In a modern multi-cloud environment, where part of an application might be deployed in Azure, part on premises, and part in Google Cloud, there’s a hunger for this kind of visibility—a hunger that Riverbed has been pleased to meet. “We just released this functionality and people started adopting it immediately because there was so much need,” says Karayanev. “Now customers feel comfortable operationalizing the .NET Core platform because they can deliver the level of service that their customers expect.”

If you’re a Riverbed APM customer, these features are already available to you:  you can start instrumenting, measuring, monitoring, and diagnosing .NET Core applications today. If you’d like to test-drive Riverbed SteelCentral AppInternals, you can sign up for a free trial, or learn more by reading our e-book, “The Essential Guide to Monitoring Containers and Microservices.”

Join us for our next APM User Conference

And, if you haven’t already, don’t forget to register for our APM User Conference, to be held in the Washington, D.C. area on August 28-30. Created by practitioners, for practitioners, this is a free technical event for the SteelCentral AppInternals and Aternity user community, and includes an optional day of introductory training for new users. Don’t miss this unique opportunity to connect with peers, share knowledge, and brush up your performance engineering skills.

We hope you’ll join us!