The Challenge: Tracking Deployments Across Environments
When you work at a software consulting company and deal with multiple clients, you often notice patterns emerge. We observed that if you're using Azure DevOps and the modern YAML-based pipelines for managing your builds and releases, it can be challenging to figure out which version of the software you're releasing is deployed where.
From Pain Point to Solution
It is very common to have one or more non-production environments where you deploy software before you deploy it to production. Answering the question, "What version are we running in 'Test?'" was not as straightforward as you'd think—multiple clicks around the Azure DevOps web interface. Then, repeat the whole process to answer, "And what is in Production right now?" There had to be a better way.
Hackathon Origins
We knew that Azure DevOps provides a comprehensive API and that you can build extensions to add functionality to the UI, so a few years ago, one of the projects for our first company hackathon was to develop a prototype dashboard that could answer that question at a glance. It worked, though (as is typical for a hackathon project); it was a bit 'rough and ready'. We wanted to polish it up and get it good enough to publish it to the Azure DevOps marketplace and start getting our customers (and anyone else, for that matter) using it.
From Prototype to Polish
Earlier this year, SixPivot allocated some time for staff to spend a few days knocking it into shape. We agreed to make the extension available for free and open source, with the source code hosted on GitHub. The PivotPro Release Dashboard is now published in the Azure DevOps marketplace for anyone using Azure DevOps (or Azure DevOps Server).
It adds a new menu item to the Azure Pipelines menu, "Deployment Dashboard". Clicking on this will show a new page with a table of information. Environments each have a dedicated column, and each deployment pipeline has its own row (because you may be deploying multiple pipelines to the same environment – for example, your Infrastructure as Code might be separate from the Application pipeline). You can now see at a glance the versions and times that each pipeline was deployed to a specific environment. Clicking on a particular release will take you to that pipeline run.
One problem we realised early on was that if you default to sorting the environments alphabetically, then the commonly used "Dev," "Test," and "Prod" release sequence becomes "Dev," "Prod," and "Test." Probably not what you want! Rather than hardcoding a workaround, we added a separate Settings page that allows you to customise the order in which the environments are displayed.
Get Started
The version 1 release is out, and we'd love you to try it and see if it is as useful to you as it is to us. We still have more ideas for improving it, and we would love to hear your feedback.
Learn more about SixPivot's open source offerings, explore our new PivotPro Toolkit.
---------------------------------------------------------------------------------------------------------------------------
About me: I'm David Gardiner, a Senior Developer at SixPivot and a Microsoft MVP. I organise community events such as the DDD Adelaide Conference and the Adelaide .NET User Group.
Comments