Since I started my Share Your PurePath program a little over a year ago, I have received over 200 Dynatrace sessions containing performance data of small, medium, and large applications. All struggled with the same problem: scalability and performance issues that resulted in dissatisfied users, adding more hardware/resources in an attempt to mitigate the problem, and war rooms for those apps that have already been deployed. For apps still in development it resulted in delayed releases and frustrated people. The benefit of having all these stories and knowing where the pains of developers, testers, architects, business analysts, operations are has allowed us to focus our engineering resources on the features and capabilities that will help you the most. We’re thankful for all of this feedback and happy to announce the general availability of Dynatrace application monitoring and User Experience Management 6.3, which opens up a new era when it comes to improved collaboration between dev, test, ops (DevOps) and business.
Dynatrace Application Monitoring & UEM 6.3 offers new web dashboard capabilities to make sharing operational awareness across your teams easier, and also includes Dynatrace Synthetic Monitoring data. It gives even deeper technical insights into the behavior of your end users (capturing W3C Resource Timings), deeper visibility into your virtual and container technologies (e.g: Docker Support through PureStack) as well as ad-hoc analysis of your slow database queries and SQL execution plans (through our Database Agent). We’ve fully integrated all of these metrics into your build and deployment servers, and now stream to ElasticSearch where you can combine Dynatrace PureLytics data with your other data sources to make even better-informed decisions!
Instead of going through too many details of what the new release offers I’ll explain which problems our early access customers — and our free trial users — have already solved with Dynatrace Application Monitoring and UEM 6.3 because it has already been available to them for several weeks. If you want to read up on everything that is included in the latest release, check out the excellent Dynatrace Application Monitoring and UEM 6.3 Release Notes for detailed descriptions and screenshots.
If you want to give it a test run on your own, simply register for your Dynatrace Free Trial. You can keep it for life as it automatically converts to a personal license after 30 days. Don’t forget to watch our educational material on our public Dynatrace YouTube Channel, get educated and certified in APM University, reach out to our 100k+ strong User Community and contact our to find out how Dynatrace can help build operational excellence, support effective mobile and omni-channel engagement and provide a strong DevOps environment. The new release provides a host of benefits for all of our expert practice groups.
Now let’s dig into the problems that have been revealed since Dynatrace Application Monitoring and UEM 6.3 has been available for both early access and free trial users!
Solving the “New/Old” Problem in Elastic Micro-Service Architectures!
I’ve already blogged about many of the problem patterns I’ve seen over the last couple of years. So check out some of my “Top Performance Blogs” if you want to learn more about what I call the “Usual Suspects”: excessive SQL, memory leaks, multi-threading issues, wrong configured frameworks, overloaded user interface, queue and pool issues. You can also check out my Top Java Performance Problems presentation I made at JavaOne, or the Four Practices for Fixing your Top .NET Problems Webinar I recently delivered.
I’ve seen that many of the same old problem patterns, e.g: N+1 SQL Query are now moving to the service world, causing big problems when you call micro-services that might be in the Docker container next to you but, in reality, on the next continent in an Amazon or Azure Data Center. It is obvious that the trend towards services/micro-services and APIs (REST or not) has become mainstream. New projects are most likely to be built on a micro-service architecture using REST and JSON as protocol and message format. Existing monoliths are also about to be broken up and migrated into a more service-oriented architecture.
However, this migration is a dangerous one as illustrated in the following example. It’s from one of my Share Your PurePath users who migrated their single monolith app to micro-services in order to provide better scalability and eventually better user experience and performance. They split the monolith into a front-end rendering and a back-end data service. All looked good in development when the teams were running their new back-end services in Docker and it appeared to prove that it could scale up and down well depending on load when tested in isolation. Everyone gave it a thumbs up and it was deployed!
Reality kicked in when the first spike of real users tried to interact with the main feature of the app – which happens to be the search feature. A particular search query that returned 33 result entries used to take about 2.5s prior to the micro service migration. Now the same query takes 26.7s!
What happened? Testing the service in isolation wasn’t sufficient. The key was to view the end-to-end execution scenario across all involved services. To triage the problem we simply looked at the key architectural metrics in the Dynatrace Transaction Flow. It immediately highlights the actual architectural and implementation flaw of this migration project!
In the example above we see that the database was pounded with 171 SQL queries to produce a single search result page! The new micro-service layer was used by the front-end rendering service in an inefficient and incorrect way. For every one of the 33 results returned by the search, the front-end executed a separate call to the new micro-service to obtain more details about every single search result. This resulted in too many service calls, too many SQL queries executed, excessive data transferred (that’s going to be expensive if you host the two services on different cloud stacks, and you pay for every byte transferred).
This wouldn’t have occurred if the teams had proactively examined these metrics throughout the design, development and testing phase. That’s just one more reason why they’re now using Dynatrace to be more proactive with their future projects!
Pro-Active Monitoring of Key Architectural Metrics
In Dynatrace Application Monitoring and UEM 6.3 we improved our continuous delivery and test automation capabilities so that you can effectively monitor these key architectural metrics for every single build. You can analyze these metrics per unit test, integration test, and REST API test that you execute. If we identify that one of these metrics has changed for the worse as the result of a recent code change, we can raise a flag and mark that build as “failed”. It is worth noting that our integration with Jenkins, Bamboo and other build servers can automatically fail a build.
Once you’re confident that you can deploy into production, Dynatrace Application Monitoring and UEM 6.makes it easy to collect these metrics in production!
Closing the Technical Production Feedback Loop
Dynatrace Application Monitoring and UEM 6.3 also simplifies monitoring your services in production. We all know that production is a bit different than what you can do up front in testing. With this in mind, we also monitor all of these metrics per service, per API, per feature, per application–even per user–to give you confidence that your deployed software runs well in production.
Unfortunately, things don’t always go smoothly, even when you’ve done your homework. That’s why Dynatrace not only monitors your end users, applications and services but also your infrastructure. In Dynatrace Application Monitoring and UEM 6.3 we integrated our PureStack technology even tighter with our web dashboards, identifying any issues in your underlying infrastructure (whether physical, virtual, cloud or containers), and then presenting it in our Infrastructure dashboards (tightly coupled with application metrics) integrated with your external ticketing systems, and easily shareable with your peers.
If you want to learn more about this, you can take a closer look at the Dynatrace Application Monitoring and UEM 6.3 Release Notes.
Do you Docker it?
While I am confident I don’t need to explain what Docker is, if you’ve managed to escape it so far you better read up on it as it will soon positively change your way of building, testing, shipping and running software.
Many of our users already use Docker in different environments and different stages of the lifecycle. Many of our free trial users have asked about how to evaluate Dynatrace in a Docker environment. Truthfully, many Docker users have become really lazy and don’t even want to install software anymore. They will just ask for your Docker images that they can launch with a single command and then everything is up and running.
Thanks to the efforts of my colleague Martin Etmajer we now have the best solution for you in the event you want to run Dynatrace in Docker to monitor your Dockerized applications. If you want to try it check out our Dynatrace Docker GitHub page.
The best way to get started is to register your free trial license for Docker and use that license for your performance analysis. Also, please take a look at what else Dynatrace offers for Docker Performance Monitoring! If you want to see this live then please join our next “live” Online Performance Clinic on March 14th when Martin will demonstrate how this works: Dynatrace On Docker for Apps On Docker. Or watch it later on our Dynatrace Online Performance Clinic YouTube Channel.
Tell me how Dynatrace Application Monitoring & User Experience Management 6.3 makes your life easier!
I am very confident that Dynatrace Application Monitoring & UEM 6.3 will make all of our lives easier. It may mean that in the future I’ll get fewer horror stories from my Share Your PurePath program – but this will be well worth the effort.
I encourage you to get your copy of Dynatrace Application Monitoring and UEM 6.3. If you’re not already a free trial user simply sign up here. Remember, after 30 days you keep it for life to analyze your local applications as part of the personal license agreement!
We don’t want to stop solving your problems here, either. Send us more feedback on your applications and environments. Let us know if you have come across new problem patterns, or if you have new ideas on how to integrate Dynatrace into your suite of existing tools along with your delivery pipeline. Make sure to check out our Docker containers. Even I – as a Windows user – managed to get Dynatrace up and running within five minutes using Docker.
My final comment here goes out to our engineering teams around the world. Many people worked on this release and made sure it was delivered with the right quality. Thank you, everyone!