🔷 Review how the sample app went from monolith to microservices
🔷 Examine the transformed application using serviceflows and backtraces
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. These steps can also replace newly-developed microservices, including containerized or serverless.
We just learned how we can get great information on services, processes and user requests using Dynatrace and OneAgent. This helps us now decide what individual features or complete applications based on business benefits we need to migrate and modernize. The idea here is to focus on feature-based business benefit with functional migration.
As we saw earlier, the sample application is a three-tiered application –> frontend, backend, database.
For our lab, another version of the application exists that breaks out each of these backend services into separate services. By putting these services into Docker images, we gain the ability to deploy the service into modern platforms like Kubernetes and Cloud managed services such as the ones shown below.
Over time, you can imagine that this sample application will be further changed to add in other technologies like Azures serverless and other PaaS services like Azure SQL or Cosmo DB databases and virtual networking Application gateway as shown in the picture below.
We will not cover this, but organizations are establishing DevOps approaches and establishing Continuous Integration (CI) pipelines to build and test each service independently. Then adding Continuous Deployment (CD) to the process too that vastly increase our ability to delivery features faster to our customers. Dynatrace has a number of solutions to support DevOps that you can read about here
Refer to the picture below, here are the components for lab 5.
#1 . Sample Application
Sample app representing a "services" architecture of a frontend and multiple backend services implemented as Docker containers that we will review in this lab.
#2 . Load generator process
A docker processes that sends simulated user traffic to the sample app using Jmeter run within a Docker container. You will not need to interact with this container, it just runs in the background.
#3 . Dynatrace monitoring
The Dynatrace OneAgent has been installed by the workshop provisioning scripts and is communicating to your SaaS Dynatrace tenant.
#4 . Azure monitoring
In addition to monitoring your Azure workloads using OneAgent, Dynatrace provides integration with Azure Monitor which adds infrastructure monitoring to gain insight even into serverless application scenarios.
The integration uses Azure Monitor metrics for service insights, as well as Azure Resource Manager (ARM) to gather metadata.
We will not have them configured for the lab, see the Dynatrace Docs for complete list of Azure Supported services.
#5 . Azure monitor Dashboard
This out of the box dashboard gives insights or Azure monitor metrics to each configured Azure subscription.
dt-orders-services
. Explore details about this VM, but you want to copy the public IP as shown below.One difference you will see is the a dynamic list for the backend services versions. We will refer to this again later in the labs.
Transactions and services
left side Dynatrace menu.dt-orders-services
. The filtered list should now look like this:frontend
service.view service flow
button to open this.Service flow
page.Response time perspective
. Shortly, we will review the Throughput perspective
.order
service and the least in the customer
services. And as in the simple version of the application, a very small amount of the response time is spent in the databases.Throughput perspective
by clicking on the boxLet's now take a look at the transactions and Services by clicking on the Transactions and services
left side Dynatrace menu.
dt-orders-services
and pick the catalog
service.Analyze Backtrace
button.catalog
servicecatalog
is called by the order
servicecatalog
is called by the frontend
servicefrontend
from the My web application
. If you don't that is OK.service flow
and service backtrace
give you a complete picture of interdependency to the rest of the environment architecture at host, processes, services, application perspectives.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.
Having the ability to understand service flows enables us to make smarter re-architecture and re-platforming decisions. With support for new technologies like Kubernetes, you have confidence to modernize with a platform that span the old and the new.
In this section, you should have completed the following:
🔷 Review how the sample app went from monolith to microservices 🔷 Examine the transformed application using serviceflows and backtraces