Build tracker Azure VM Automation

Business Problem

MSNIA team relies heavily on the Build tracker system for its development and release management cycles.

Build Tracker offers any build lab a one stop automated infrastructure for managing the lab, multiple products and their complex parallel and distributed builds, user access to depots and drops and much more.

MSNIA Build Tracker setup uses 8 Azure VMs for configuring the database, intranet portal and build services etc. Out of these, 2 Azure VMs are primarily using for configuring Database, intranet portal and build initiation services. Remaining 6 Azure VMs are using for running different build legs to complete the build jobs as and when required.

As per current design, these 8 Azure VMs always running irrespective of whether build jobs are running or not. Due to this, there is cost burden for constantly running the non-critical VMs.

Solution

The MSNIA development team suggested the idea for automating the start/stop process of non-critical Azure VMs using existing build system.

MSNIA development team developed PowerShell scripts for authenticating to Azure, getting required VMs information and start/stop them as per the requirement. These scripts run during start and end legs for each build job. The existing build scripts were altered for injecting these changes.

Why is the solution unique

Implemented in legacy systems – Build tracker and CoreXT.

High Level Design




Build Tracker Execution Flow