This article was co-authored by Deep Kapur, Product Manager @ Microsoft Azure Service Fabric, and Patrick Thurner, Product Manager @ Dynatrace. To read the summary of this article, head to the Service Fabric Team blog.
Today’s apps have to run perfectly, work 24/7, and improve business, in all conditions. One of the ways software architects and developers try to achieve this is by building microservices. Microservices and containerization are increasingly popular in today’s mission critical applications. Behind this momentum are requirements for applications to be scalable, resilient, and easy to manage and monitor.
With microservices, developers take a traditional monolithic app and break it down to a lot of little components, like “Today’s deals” or “Add to my wishlist”. These modular microservices communicate with each other through simple APIs, and can be developed separately or owned by dedicated teams. The more an application is broken down, the easier it is to build and test. The easier is to build it, the faster development teams can come out with new functionalities.
But just because something is all the rage around the industry, it doesn’t mean it has no drawbacks. One of the biggest pain points associated with microservices is that in creating several moving parts of the application, deployment and management becomes more complex and requires a higher level of expertise.
Azure Service Fabric is a platform designed to simplify building and managing microservices based applications. Dynatrace, on the other hand, builds on top of the productivity and intelligence of Service Fabric, supporting users with enhanced microservices and application performance monitoring across their organization.
Let’s take a look at Service Fabric and how it works together with Dynatrace.
Introduction to Azure Service Fabric
Service Fabric is a distributed systems platform for packaging, deploying, and managing applications and containers at scale. It enables developers to compose cloud applications from microservices that run at high density on a shared pool of machines.
Born from Microsoft’s many years of experience in delivering mission critical cloud services, Service Fabric provides features like high availability, load-balancing, scaling, simple programming models, application lifecycle management, and more. It is one of the most powerful platforms when it comes to reducing the complexities in developing in the cloud and microservices oriented world.
Here is a short list of some of Service Fabric’s capabilities:
- It’s neutral on infrastructure, available for deployment on any cloud, any OS – this includes creating clusters that are fully on-prem.
- It’s neutral regarding operating system, supporting both Windows and Linux.
- It provides built-in programming models (Reliable Services and Actors) to simplify writing complex, stateful applications.
- Orchestrates services, containers or any executable in the same environment for an easy lift & shift operation.
A lot of Azure’s core infrastructure is run on Service Fabric, as well as many Microsoft services we all know (Skype for Business, Cosmos DB, Event Grid, etc..).
Monitoring Service Fabric like a pro
The more complex a system gets, the harder it gets to monitor. And operations teams need to focus on monitoring the top-most critical parts.
But, as it’s been documented, there are several things to consider when monitoring a Service Fabric cluster and the applications it hosts. And then there are other questions too, like, how to monitor legacy applications you run on Service Fabric? Can you keep the old monitoring setup as well? If not – can you risk a blind spot?
Dynatrace was built exactly for solving these kinds of challenges and provides an easy path to gain powerful insights into all of this with one solution.
- It excels at monitoring distributed environments (multi-datacenter / hybrid-cloud)
- It’s hyper-scale enabled (monitoring thousands of hosts with even more applications and services)
- It comes with the broadest technology support, including automatic container injection. No need to do any manual code modification to include monitoring.
- It has a built-in AI-powered analysis engine that removes the pain from finding the root-cause of a problem.
How do I start and what do I get?
To get started with monitoring your Service Fabric cluster with Dynatrace, you just need to deploy the Dynatrace OneAgent on your cluster’s nodes and you have all your infrastructure & application monitoring covered.
The OneAgent discovers all the processes and automatically instruments your applications, including processes within containers – without requiring any manual code changes.
From all the collected infrastructure-telemetry and application-traces, Dynatrace creates a model across your entire application and infrastructure stacks. Full stack dependency information is captured live in the Dynatrace Smartscape view. This view includes every single TCP/IP connection between every host and every process, socket, service, and database connection between your and any 3rd party services, and identifies every dependency of your applications with your backend and 3rd party services:
Dynatrace service flow automatically maps out individual service requests from end-to-end—you see the specific sequence of every service called as a result of any single request:
Dynatrace also shows you how each service and their processes behave:
You get deep insights into your users’ behavior in all your monitored applications running on Service Fabric:
… down to a single line of code:
Instead of raising tons of alerts, Dynatrace intelligently notifies you about performance issues, user impact, and directs you towards the root-cause:
… even where there was a chain reaction caused by a failing component:
Service Fabric is a resilient platform for your applications, providing failover protection, rolling upgrades, and emitting maintenance events without interruption. Dynatrace lights this up without any extra configuration needed.
Dynatrace brings several unique features to the table when it comes to monitoring your applications and infrastructure in the cloud or on-prem, which makes it particularly suitable for monitoring Service Fabric clusters.
A few key points that differentiate Dynatrace from the Service Fabric team’s point of view:
- The ability to use Dynatrace in the cloud as a SaaS offering, or deploy it yourself: there are several Service Fabric customers today that have unique requirements for security and privacy when it comes to the data available in their cluster. Being able to deploy and manage Dynatrace on their own gives users full control over the way in which their data is exposed.
- Discovery of processes and infrastructure: unlike other monitoring agents that require being attached to your nodes or your apps, the Dynatrace OneAgent auto-discovers your cluster and the workloads within it, reducing management overhead and deployment hassle, while still providing a holistic monitoring solution.
- Root-cause analysis: Dynatrace is particularly handy when it comes to managing large clusters, since it not only is able to intelligently identify when an issue gets serious enough, but also is able to pinpoint the source of a problem, making it significantly easier to fix, and reducing the impact to end users.
Overall, the Dynatrace team is investing significantly in improving the integration with Service Fabric. The Service Fabric team has already seen improvements in the agent’s ability to ingest Service Fabric specific data and is looking forward to working together to enhance the agent further, to provide a great monitoring package for your Service Fabric cluster!
Take the trial to see it for yourself.
If you’re facing challenges with monitoring your Service Fabric applications or would like a comprehensive monitoring solution for both Service Fabric applications and infrastructure, give Dynatrace a try. Get your Service Fabric monitoring up and running within minutes.