As an Azure Consultant whose goal is to deliver solutions by following the DevOps methodology, Azure DevOps is the starting and closing point when it comes to my engagements with different customers.
As Donovan Brown says, “DevOps is the union of people, process and products to enable continuous delivery of value to our end users.” As we all know by now, DevOps is not about a product but about people following a process enabled by products, and Azure DevOps is one of these great products.
At the start of my engagement with my customers, when we are identifying tasks and phases for the delivery of a project, Boards within Azure DevOps is what I use. It is effortless to create a new project within either the customer’s Azure DevOps organization or New Signature’s, and then invite any external users into that project through Azure B2B.
Using Boards, all tasks can be broken down into stories and put into Sprints/Phases, where we can track what is being worked on and what has been completed which is very useful during the daily scrum meetings.
When it comes to developing the solution, whether it is an ARM Template (IaC) or a .Net solution, you need to check it in somewhere. Azure Repos provide you with the ability to check-in your code while providing additional features such as PR reviews and the ability to edit the files through the UI itself. Azure Repos is where I check-in all my code. It saves me from working on my code locally and then sending it over to my customer and it gives the customer insight into the code that is being developed since each commit can be attached to a user story.
As I mostly work with ARM templates or Terraform, I need a way to run those templates against an Azure subscription and validate these templates. This is where Azure Pipelines come in. Using Azure Pipelines, I can authenticate to any Azure subscription, validate my ARM templates and deploy them to Azure. If any fixes are needed, I can commit changes and set up CI (Continuous Integration) that will go ahead and validate that change for me. There is no need to run those templates manually through Visual Code or Visual Studio.
I can also leverage Pipeline-as-Code and build customer pipelines in YAML, providing more flexibility to re-use certain tasks and stages within the pipeline.
There are also other resources that can be used within pipelines such as Test Plans and Artifacts for testing and/or to reference external packages or even to publish them.
As my project comes to a close, I need to provide documentation regarding everything that was deployed and how to monitor/run it from this point forward. This is where I leverage the Wiki under the Overview section. Wiki gives me the ability to provide documentation to my customer written in markdown (md) that can be easily exported into PDF or into a customer’s confluence environment, for example.
This in no way illustrates all the use cases for Azure DevOps; this was just a glimpse at how Azure DevOps is a critical resource for successful delivery to my customers. For more details on how to better leverage Azure DevOps or to migrate from TFS to Azure DevOps, please contact us.
About The Author
Hammad Aslam is an Azure DevOps Consultant at New Signature, assisting customers with their digital transformation efforts within Azure. Hammad believes that your cloud migration journey is not complete without a proper DevOps strategy in-place. He is a Software Engineering graduate currently working on his MBA. Hammad enjoys acting as an Azure & DevOps advocate while sharing best practices when it comes to DevOps and Architecture. In his free time, Hammad enjoys spending time with his family, binge-watching TV shows, playing soccer and catching up on the NBA.