Organizations deploy at different frequencies. Some once per day and some 10,000 times per day. In any case, it gets difficult to monitor your deployment process if it's over 2-3 times per day. To keep up with the competition of other businesses and responding to demand in customer needs, there has been an enormous increase in deploying faster and more efficiently. How does Continuous Monitoring help?

Continuous Monitoring (CM) in pipelines provide the ability to monitor deployments in any stage (Dev, UAT, QA, Prod) throughout your software delivery lifecycle. This monitoring can be done in a tools like Azure Monitor and/or Application Insights This helps developers, QA, and operations teams alike understand what's happening with the application during its lifecycle.

Image result for Continuous Monitoring

Overview

In this guide, you're going to take a look at how an organization can implement Continuous Monitoring for pipelines by using Continuous Delivery tasks and monitoring tools available in Azure.

You will learn:

  • What Azure DevOps task is needed for Azure web apps
  • What Azure DevOps task is needed for monitoring the webapp
  • What deployment gates can help you monitor your web app.

Prerequisites

If you're interested in following along, there will be a few required items needed. Below is a list of everything you need to be successful throughout this blog post.

  • An Azure account. If you don't have one, you can sign up for a free 30-day trial here.
  • An Azure DevOps organization that you can set up for free by following these instructions.
  • An existing Azure DevOps pipeline. This can be completely empty. Go to this link to create your first Azure DevOps pipeline under the section Create a release pipeline.
  • Application Insights. Want to set up application insights with automation? Check out the code here.
  • Azure WebApp. Want to set up a free Azure Webapp and App Service Plan with automation? Check out my GitHub repo to automatically deploy the web app here.

You should have a beginner to intermediate level knowledge on what webapps are in Azure

The webapp

When deploying a serverless WebApp, monitoring is not on by default.

Monitoring is expected to be turned on by the user deploying the web app for application insights and Azure monitor. Because of this, you need a solution to turn monitoring on at the release of your web app.

The Azure DevOps Continuous Monitor task

In the previous section, you went over why continuous monitoring is needed. In this section, continuous monitoring will be implemented with a release pipeline.

The Azure App Service Manage task in Azure DevOps provides a way for a release pipeline to turn on Continuous Monitoring for a serverless web app.

Adding the Continuous Monitor Task

Go to your release pipeline and click edit button like in the screenshot below.


Within the release pipeline, click on the stage to edit.

Click the blue + button and search for azure app service manage in the search pane like in the screenshot below.

Click the add button to add the task to your release pipeline.

Configuring the Continuous Monitoring task

In the previous section, you saw how to add the task. The reason why the task needs to be added is so it can be configured to continuously monitor the web app. Within the task is where the configuration happens to turn on application insights and Azure monitor which you will see in this section.

Click on the task and you will see that it requires some input. The input you will need to fill in is:

  • Display name: Metadata name for the task.
  • Azure subscription: Subscription that you will be deploying the pipeline too.
  • Action: What action the task will take. In this case, it's to enable continuous monitoring.
  • App Service name: Existing app service to continuously monitor.
  • Resource Group name for Application Insights: Resource group name that the application insights exist in.
  • Application Insights resource name: Name of the existing application insight.

Click the save button on the top of the page.

Deploying the release

In the previous section you how to configure the Azure App Service Manage task with the necessary inputs for enabling continuous monitoring. In this section, you will how to create a new release from the task and see the output on your screen.

On the top right like in the screenshot below, click the Create release button.

Click the blue Create button to queue the release.

Under the yellow portion of the screen, you will see a hyperlink that will bring you to the release. Click that hyperlink.

Click the queued button to be brought to the running release so you can see the steps that are running to enable Continuous Monitoring.

The running release

In the previous section, you saw how to create the release to start the pipeline for enabling continuous monitoring on your web app. This section will cover the outcome of said release.

The release pipeline is now running like in the screenshot below.

The pipeline will succeed in a few minutes and after the release pipeline succeeds, continuous monitoring will be turned on for the web app.

Summary

In this guided blog post you learned first-hand what continuous monitoring is, why it's important, and why it should be used for every serverless application. Continuous Monitoring provides the automated ability to turn on Azure monitoring and application insights in a pipeline while the web app is being deployed.

After learning what continuous monitoring is in a pipeline, you learned how to set up your pipeline to enable the monitoring features available for web apps. You used the Azure App Service manage task to set up the monitoring and provide what web app will be monitored.