VIAcode provides custom development, migration, and integration services to businesses that use Microsoft software and infrastructure, including the Microsoft Azure cloud platform.

Microsoft IT approached us to augment a team working on the migration of an internal application from on-premise infrastructure to Azure. Once the application was migrated, Microsoft IT needed a performance and availability monitoring system that integrated with both Azure services and Microsoft’s internal monitoring and ticketing systems.

We built a series of custom integrations, reporting solutions, and Azure Resources Manager (ARM) templates that provided availability and performance monitoring, dashboards, and seamless integration with Microsoft’s management and development tooling.

Microsoft IT’s Problem

Microsoft IT (MSIT) is the Microsoft business unit responsible for developing and maintaining internal business applications and infrastructure. The applications that Microsoft IT develops are used to support the company’s global IT operations and are hosted on a variety of cloud and on-premise infrastructure.

Microsoft IT intended to migrate one of its applications to Azure. Azure’s services allow the company to provide a more flexible and scalable infrastructure foundation than on-premise infrastructure.

Developers and engineers from the MS IT team carried out the migration from on-premise infrastructure to a range of Azure services that included Azure Data Factory, Azure Web Apps, and Azure SQL DB.

Azure Data Factory is a hybrid data integration service that allows businesses to build easy-to-use Extract, Transform and Load (ETL) processes and pipelines in a visual environment. Azure Web Apps is a fully managed web application hosting service. Azure SQL DB is a scalable managed database platform.

Microsoft IT leveraged these services to provide the stability, scalability, and reliability required for an application used globally by Microsoft team members.

But infrastructure alone isn’t enough to guarantee the reliability and performance that Microsoft IT demands of its applications. The team needed to monitor all components of the application to ensure that they could react quickly to incidents and performance issues.

Azure has a world-leading monitoring platform in Azure Monitor, a rich set of tools for collecting and analyzing telemetry via metrics and logs. Azure Monitor incorporates an array of analysis, visualization, and analytics tools.

However, there was no straightforward way for Microsoft to integrate its application with Azure’s performance and availability monitoring tools in a way that provided actionable alerts and data.

VIAcode’s developers were asked to augment the Microsoft team and tasked with developing a solution to enhance the integration between the application and Azure’s monitoring tools.

VIAcode’s Solution

VIAcode’s developers have many years of experience implementing Azure infrastructure and application monitoring for enterprise organizations. We leveraged a mix of custom code and existing tools to create a comprehensive monitoring and alert system that provided Microsoft IT with actionable insights into the performance and availability of the application and its components.

First, we created a ticketing system connector that integrates Azure Alerts with Microsoft’s ticketing system and Continuous Integration / Continuous Deployment pipeline. An organization of Microsoft’s size requires a seamless process that allows data to move from Alerts to platforms used to direct collaborative development to the deployment of new code.

Azure Alerts provides a rich stream of data about the status of the application and its infrastructure, but that data needed to be integrated with the tools that Microsoft uses to organize development and maintenance.

Our solution allows Microsoft IT to react to Alerts generated by the application’s monitoring systems using familiar tools and workflows.

Second, we implemented data collection and usage reports to help MS IT understand how end-users interact with the application. We used the Application Insights feature of Azure Monitor, which leverages an instrumentation package installed in the application.

We also leveraged an internal Microsoft telemetry platform and Microsoft’s PowerBI business intelligence platform to create intuitive dashboards that allow the app team to monitor the state of the app and any relevant alerts and incidents.

Third, we implemented an alert management system that allows team members to more easily enable and disable alerts on a subscription or resource group basis. This allows the team to control which Alerts are active and is especially helpful during maintenance periods during which an overwhelming number of performance and availability alerts can be disruptive.

Finally, we implemented a generic set of Azure Resource Manager (ARM) templates so that our custom code can be deployed automatically. ARM templates allow Azure users to deploy resources with a specific configuration on pre-determined infrastructure. The ARM templates we developed can be used to deploy services that have out-of-the-box monitoring – functionality that Azure currently lacks.

In conclusion, we implemented availability monitoring, performance monitoring, and dashboards for the services used by the application, including Azure Analysis Service, Azure Data Factory, and Azure SQL Database. We also implemented near real-time availability and performance alerts based on Connectivity Monitor metrics and a dashboard based on data collected by Network Performance Monitor Log Analytics. And we implemented both availability ping tests and AppInsights performance tests for Azure Web Apps.

The Results

Microsoft IT migrates internal applications to Azure to benefit from the platform’s flexibility, its array of powerful infrastructure services tailored for enterprise organizations, and its reliability and performance. They turned to VIAcode because we have the experience and the expertise to enhance Azure with custom integrations and solutions that take advantage of Azure’s native capabilities.

Our work with the Microsoft IT resulted in efficient and effective performance and availability monitoring that can be generalized to future applications and services. Our developers created an end-to-end monitoring framework that integrates seamlessly with Microsoft’s internal ticketing system, the PowerBi business intelligence platform, ensuring that engineers and DevOps professionals have the information they need to manage and maintain a web application that is used across the world by Microsoft employees.