Design for performance and scalability in Azure

Program Management Course

4.7

Identify performance bottlenecks in your application

In this unit, we will look at both processes and tools that can help ensure that your application performs well, and help you track down why if it doesn't.

Importance of requirements

Before we talk about performance, it's important to talk about requirements. In theory, we could keep improving scalability and performance further and further without end. At some point, however, more improvement is prohibitively expensive, difficult, and doesn't have enough business impact to be worthwhile.

Defining these requirements in advance of building your solution is critical to ensure that the application meets expectations but doesn't require more effort or expend more money than necessary. We can also plan our monitoring and operations rules around these non-functional requirements.

DevOps and application performance

The idea behind DevOps is that we don't have development and infrastructure silos in our organization. Instead, they work together to effectively build, deploy, monitor, and maintain apps in streamlined process.

Azure Monitor

The following diagram depicts a high-level view of Azure Monitor. At the center of the diagram are the data stores for metrics and logs, which are the two fundamental types of data that Azure Monitor uses. On the left side are the sources of monitoring data that populate these data stores. On the right side are the different functions that Azure Monitor performs with this collected data such as analysis, alerting, and streaming to external systems.

You can then use this data to help scale your application based on load. Autoscale in Azure Monitor helps to enable the elastic scaling feature of the cloud. It allows you to have the right amount of resources running to handle the load on your application.

It allows you to create rules that use metrics collected by Azure Monitor for two purposes: to determine when to automatically add resources to handle increases in the load and to save money by removing idle resources. You specify a minimum and a maximum number of instances and the logic for when to increase or decrease resources. For example, you can setup rules around CPU utilization that increase or decrease the number of instances available for a resource.

Log Analytics

The following illustration shows how Log Analytics acts as a central hub for monitoring data. Log Analytics receives monitoring data from your Azure resources and makes it available to consumers for analysis or visualization.

Centralized logging can be massively beneficial for troubleshooting all types of scenarios, including performance issues. It's a key part of a good monitoring strategy for any architecture.

Check your knowledge

  1. Which of the following best describes Application Insights?
  2. True or false: Log Analytics tracks custom logs and metrics.