Accelerating Enterprise Application Migration to AWS Using Dynatrace
By Ahmed Omran, Migration Partner Solutions Architect at AWS
By Andreas Grabner, Director of Strategic Partner Enablement & Evangelism at Dynatrace
Dynatrace is an Amazon Web Services (AWS) migration partner and provides an artificial intelligence-powered platform which delivers full-stack, automated monitoring that goes beyond collecting data. It can help you address challenges in operations, DevOps, cloud migration, and customer experience.
In this post, we focus on how Dynatrace shaped their cloud migration and autonomous cloud operations capabilities through their own migration journey from legacy on-premises enterprise application to cloud-native services running on AWS.
Dynatrace’s own journey, and the journeys of several large enterprise customers they guided, highlights some of the pain points and critical actions necessary for a successful and fast enterprise application migration to AWS.
Dynatrace is an AWS Partner Network (APN) Advanced Technology Partner with AWS Competencies in Migration, DevOps, and Containers. The AWS Competency Program verifies, validates, and vets top APN Partners that have demonstrated customer success and deep specialization in specific solution areas or segments.
If you want to be successful in today’s complex IT environment, and remain that way tomorrow and into the future, teaming up with an AWS Competency Partner like Dynatrace is The Next Smart.
A typical migration project includes the following phases:
- Discovery and planning
- Migrating and validating application
Let’s walk through each phase and the corresponding tasks per phase, highlighting how Dynatrace becomes an accelerator and enabler for autonomous operations.
Phase 1: Discovery and Planning
One of the biggest challenges customers face in migration projects is not having enough details about the current environment. This hinders their ability to make the right decisions when planning what to migrate and when.
Dynatrace’s OneAgent technology supports on-premises as well as cloud stack, providing an automated live dependency map called Dynatrace Smartscape. Figure 1 shows Smartscape and the dependencies of a selected service.
Figure 1 – Smartscape shows the dependencies of a selected service.
To get Smartscape, you must install OneAgent on the components you’re looking to discover and monitor. The agent can be automatically installed and rolled out through configuration management tools such as Chef, Puppet, Ansible, or by including the download and install into any custom deployment script.
OneAgent supports a wide range of features on different operating systems. Minutes after installation, the agent automatically delivers live dependency information across the complete stack–host, processes, containers, services, applications, network connections, and log files.
In Figure 1, Smartscape shows all the dependencies of the selected Tomcat service. Those include connections to queues, web servers, app servers, and a native process. This information allows us to better plan the migration, as all depending services must be considered during the migration.
Smartscape also shows whether services currently run distributed or are single instances. In our example, we can see the services are already running distributed across four processes on four machines.
Task #1: Application Prioritization for Migration
The risk of moving specific components (host, database, processes, services, application) depends on the complexity and interdependency to the rest of the environment architecture. For example, before migrating a database we can look at Smartscape to understand which services are actively using this database and in which capacity.
Knowing the type of access, executed statements, and amount of data transferred during regular hours of operation allows for better planning and prioritization of the move groups. In some cases, you may decide to not migrate this database in favor of other services or databases that are less complex to migrate due to fewer dependencies.
Task #2: Right-Sizing the AWS Environment
When deciding which resources are required to handle the migrated load, customers often look at basic monitoring data in regards to CPU, memory, disk, and network. Dynatrace provides this information in the context of the hosts, processes, and services that will be migrated based on the outcome of Task #1.
Through the Dynatrace Timeseries API, we can automate the mapping and sizing of target AWS compute resources. Figure 2 shows the current sizing and actual resource consumption of a Windows virtual machine (VM) over a period of a week. Extracting this data via the Dynatrace REST API allows you to more efficiently and faster plan your migration.
Figure 2 – Utilization and process details of a windows server 2012R2 on Citrix environment.
When moving this Windows VM–primarily hosting Citrix–we can look at the current CPU utilization and find a best fit Amazon Elastic Compute Cloud (Amazon EC2) instance. The size of the current VM seems to be too large for the actual resource consumption.
For more details on what infrastructure monitoring data is available for hosts, processes, containers, services, and applications, check out the Dynatrace Timeseries API documentation.
Task #3: Breaking and Migrating Monolithic Applications
Re-hosting (also referred to as lift and shift) is a common migration use case. Re-architecture and Re-platform are steps that break the traditional monolithic architectures and replace individual components with cloud services, such as Amazon Relational Database Service (Amazon RDS), which replaces on-premises relational databases) and Amazon DynamoDB, which replaces NoSQL databases. These steps can also replace newly-developed microservices, including containerized or serverless.
Dynatrace’s PurePath technology gives you insights into current end-to-end architecture by tracing every single transaction through the monolithic or hybrid architecture. Not only does this data help you understand the current architecture, but it enables continuous experimentation by virtually breaking out services and seeing how the new architecture behaves, in case the application is changed along certain interfaces, endpoints, classes, or methods.
The Service Flow in Figure 3 shows how transactions flow from Apache through the different layers of your monolithic application architecture. The data shown on the edges between physical or virtual services gives insights on inter-service call patterns.
Figure 3 – Service Flow of EasyTravel application.
In this example, we learn that JourneyService is tightly coupled with CheckDestination as it calls CheckDestination in 99 percent of incoming processed requests. While migrating this application, it would be wise to keep JourneyService and CheckDestination in close proximity to avoid network latency affects.
If you want to learn more about the approach and features available in Dynatrace to virtually break your monolithic architecture, have a look at their 8-Step Recipe to Break Monoliths.
Phase 2: Migrating and Validating Application
While migrating to the cloud, you want to evaluate if your migration goes according to the plan, whether the services are still performing well or even better than before, and whether your new architecture is as efficient as the blueprint suggested. Dynatrace helps you validate all these steps automatically, which helps speed up the migration and validation process.
Task #1: Validate Migration Progress
Dynatrace allows you to use the same mechanisms (Smartscape, Service Flow) on AWS as you would on-premises to validate how the deployment turned out and if all dependencies are as expected. To install OneAgent on your Amazon EC2 instances, make sure to enable the Dynatrace AWS Integration which pulls in additional metrics and metadata from Amazon CloudWatch.
If the new architecture includes AWS Lambda, make sure to instrument your Lambda functions for end-to-end visibility. For AWS Fargate or Amazon Elastic Container Service for Kubernetes (Amazon EKS), make sure to dig into the no-touch container monitoring capabilities of Dynatrace.
The image in Figure 4 from Dynatrace Smartscape shows an example of the “easyTravel Customer Frontend” service that’s running distributed across four Tomcat instances and four Amazon EC2 machines in a single Availability Zone (AZ). That makes it easy to validate if this is the outcome you expected, or whether there’s a configuration or deployment mistake that has to be corrected.
Figure 4 – Smartscape shows the target environment deployment.
Task #2: Validate Performance and Scalability
Dynatrace helps you validate your primary motivations for moving to the AWS Cloud–be it for increased agility or higher elasticity–by allowing you to compare the performance of your source and target environments.
The screenshots in Figure 5 show the comparison feature of Dynatrace. It compares Key Performance Indicators (KPIs) between the existing environment (left) and migrated environment (right). If there’s a significant difference between performance or failure rate, like in this example, you can drill into the actual methods that spend more time or analyze the exceptions that caused these errors.
Figure 5 – Performance validation between the source and target environment.
The screenshots above show us that while the system scales up with load it also reaches a breaking point under peak load conditions. This analysis allows us to tweak the deployment and code, so we end up with a system that can scale without running into issues.
Dynatrace also gives you insights into how your architecture scales with increased load by observing the live dependency data (via Smartscape). It also looks at any artificial intelligence (AI)-detected problems under different load conditions.
Figure 6 – Smartscape output with different load condition.
Task #3: Validate and Optimize Cloud Architecture
When extracting services from your monolith, or replacing components with cloud services, the new architecture typically increases in complexity.
We can use Service Flow to validate how the architecture really looks after migration. Figure 8 clearly shows that after the migration the system became more complex. Based on this data, we can spot architectural patterns such as chatty neighbors, N+1 Query Pattern, or Recursive Calls leading to inefficient transaction processing.
Figure 7 – Post-migration service flow for EasyTravel application.
Seeing the actual architecture and understanding the current limitations in the live Service Flow allows us to fix configuration issues or add new architectural components such as caching layers, proxies, or load balancers. All of this results in a faster migration with a better chance of business success.
Phase 3: Operation
Migrating to the cloud means there are more moving pieces to monitor and manage. As we have learned, Dynatrace fully automates monitoring through OneAgent and the native integration with AWS.
Post-migration, Dynatrace’s deterministic AI engine, DAVIS, helps you run your applications smoothly, pinpointing production issues with root-cause information right at your fingertips. DAVIS leverages Smartscape dependency data, as well as the high-fidelity monitoring data from OneAgent. The AI can be fed with external events such as deployment or configuration change events from your CI/CD or deployment automation tools.
DAVIS’ unique capabilities for automated root cause detection can be integrated with ChatOps, VoiceOps, or auto-remediation actions. This brings your operation teams closer to what we call Autonomous Operations and enables business teams to make better decisions based on monitoring data by using voice or chat commands.
Task #1: Reduce MTTR with Automated Root Cause Diagnostics
Dynatrace automatically baselines all relevant metrics that are indicators of bad service levels or poor end user experience. Thanks to the extensive data set and deterministic AI, Dynatrace can open problem tickets with information about the business impact and technical root cause, correlating all events that happened in the architecture prior and during the impact.
This automated root cause diagnosis dramatically reduces Mean Time To Repair (MTTR) through detailed data and automation and integration with incident response tools such as ServiceNow, PagerDuty, xMatters, VictorOps, or OpsGenie.
You can see in Figure 8 how Dynatrace presents a problem, business impact, impacted services, and the root cause.
Figure 8 – Dynatrace root cause diagnostics for multiple service problems.
The ticket above tells us that 556 real users are impacted while we have a total of 2.04 million backend service calls affected by an issue at the moment. The root cause has been identified as a network-related issue on two backend neo4j instances that experienced a high packet retransmission rate.
Task #2: Building Self-Healing Systems
While it’s great to react to problems faster, Dynatrace enables self-healing systems through the data collected and analyzed by DAVIS. The same data is accessible through the Dynatrace REST API and can be used by auto-remediation tools such as Ansible, ServiceNow, and StackStorm to execute specific remediation actions based on the actual root cause detected.
We can also trigger a Lambda function that interacts with both Dynatrace and AWS to fix a current problem.
Task #3: Empower Teams Through VoiceOps and ChatOps
To get started, visit the Dynatrace website start interacting with the Dynatrace AI.
In this post, we covered how Dynatrace helps customers migrate to the AWS Cloud with confidence, break monolithic apps, mitigate risks, validate, and operate at scale.
After installing Dynatrace OneAgent on your existing architecture, you get automated insights allowing you to better plan your migration strategy. You also get the ability to compare and optimize your environment, and once migrated to the cloud Dynatrace is all about making operations more efficient and autonomous.
VIDEO: AWS Migration Competency Partner Dynatrace (2:28)
Dynatrace – APN Partner Spotlight
Dynatrace is an AWS Competency Partner. Their AI-powered, full stack, and completely automated solution provides answers, not just data, based on deep insight into every user, every transaction, across every application.
*Already worked with Dynatrace? Rate this Partner
*To review an APN Partner, you must be an AWS customer that has worked with them directly on a project.