How do companies actually use Azure DevOps? What are the use cases?
We took a look at how the team at SquaredUp uses Azure DevOps to build their CI/CD pipelines and deploy new features to their SaaS product.
SquaredUp (that’s our product) is a powerful observability portal and data visualization tool. It gives businesses monitoring insights into their infrastructure and application data.
Life before Azure DevOps
A few years ago, we were using two versions of Jenkins for product updates, but our set-up was a bit of a mess and it was going to be easier to start over than adjust what we had. As we already used so many Microsoft services already, it made sense to use Microsoft Azure DevOps (ADO) for our CI/CD pipelines too. It brought another process under one roof.
How SquaredUp uses Azure DevOps
Azure DevOps supports a continuous integration continuous deployment (CI/CD) method of deploying new code into existing infrastructure – this method uses automation to speed up integration, delivery, and deployment.
We use Azure DevOps for the CI/CD pipeline for both the on-premises product and cloud product.
Azure DevOps is the cornerstone of how we build the product and how we feed back the results of our build processes to our engineers.Tim Wheeler, Director of Engineering Services, SquaredUp
Our Pipelines process
Specifically, SquaredUp uses the Pipelines, Test Plans, and Artifacts services in ADO. Alongside ADO, SquaredUp uses GitHub for source code control.
As soon as a Developer submits changes to a GitHub file, the ADO Pipeline springs into action. The pipeline then builds the code and lets us know if there are any issues. Once all the code has had all checks completed, then it can be fully submitted to ‘Main Branch’.
This is our normal Azure DevOps CI/CD pipelines process for getting code changes in GitHub into production and then deployed:
- The developer submits a pull request with code changes to GitHub
- This triggers the Azure DevOps Pipeline to run validation tests on the code changes
- This could include running checks on code, running automated unit tests, spinning up browsers and creating fake user interactions, publishing release notes, etc. ADO is highly flexible.
- The pipeline deploys the product updates to a staging environment and runs integration tests
- The pipeline will send notifications to the developer about the deployment status and any issues found
- If there are no issues, ADO will allow the GitHub pull request to be merged into our master branch, which then triggers an ADO pipeline to build and deploy the master branch.
If tests fail:
- If any of the tests fail, the pipeline stops the deployment and sends an alert to the user with the error details
- The user fixes the code issues in GitHub and commits the changes again
- The pipeline then redeploys the new changes and will re-run the full set of automated tests
Finally, that all deploys to AWS for the SquaredUp Cloud product. Or, for the on-premises product – Dashboard Server – the output is an installer file that is stored in Azure DevOps Artifacts that the customer can then host locally.
ADO Test Plans
Our Dashboard Server team uses Azure DevOps Test Plans to track the testing we need to do on a new release. Some of those tests are automated and some are manual.
The automated tests hook into ADO Pipeline and the Test Plan will display whether something is passing or failing.
Monitoring ADO, AWS, and GitHub
A drawback of using multiple tools in the CI/CD process is that monitoring the process requires you to log into each tool, which can be annoying and time consuming. But there’s a huge benefit to being a company that creates a product for monitoring – SquaredUp dashboards.
With SquaredUp, we can pull all our data from GitHub and Azure DevOps into insightful, powerful dashboards that show us key data like GitHub status, work items in the SaaS stats, build durations, which build runs have failed (and we can drill into ADO from the dashboard for more information), and even an overview of useful AWS and Azure metrics, including cost and usage.
What we love about Azure DevOps
Although most CI/CD platforms will do everything Azure DevOps does, one of the things we love about ADO is that it allows for branching logic. You can create complex deployment pipelines. Plus, ADO deploys to AWS, where we host our Cloud product.