How Azure DevOps Can Empower Your Business Through Enterprise Transformation
In today’s world, we are constantly reminded that businesses have to adapt to ever-changing demands in order to stay competitive.
One area that can empower a business to adapt rapidly is its digital transformation, and more specifically what tools and processes it can leverage to achieve its transformation? One tool that has evolved over recent years is Azure DevOps and its popularity has grown due to the ever increasing demand for cloud and DevOps within a business.
In this article, we will explore the key features of Azure DevOps and how an enterprise can utilise these capabilities to not only transform their business, but also ensure they are at the forefront of change within their competitive landscape.
What is Azure DevOps?
In 2018, Microsoft decided to rebrand its Visual Studio Team Services (VSTS) offering to Azure DevOps so that it could align with the ever-changing cloud landscape by providing a set of tools for software development, deployment, and operation including Azure Boards, Repos, Test Plans, Pipelines and Artefacts. So let's look in detail at the five key features and how they can be utilised in an enterprise environment.
The 5 Key Features of Azure DevOps
1. Azure Boards
Everyone loves a Kanban board, right? Well you’re in luck, as Azure boards gives you the tools to not only create boards and plan sprints but also allows you to collaborate with a wider audience via its extension options such as Slack & Microsoft Teams. This is also where teams come to map out what the future looks like by creating delivery plans, building a solid roadmap and breaking down the complexities into manageable chunks via work items, whether that needs to be epics, features, tasks or even bugs.
In summary, Azure Boards offers:
- Streamlined Agile Project Management: Azure Boards helps teams effectively plan, track, and discuss work across the entire development process.
- Integration and Collaboration: It seamlessly integrates with other Microsoft services & promotes collaboration throughout the development lifecycle.
- Tracking and Reporting: It provides extensive tracking and reporting capabilities to gain insights into project progress, identify bottlenecks, and make data-driven decisions.
2. Azure Repos
Ok, so we know what we’re doing but whether you’re currently an engineer or still one at heart, you’ll want to know what are the tools that will allow us to deliver what’s been planned? The first one is Azure Repos. This is where you’ll create your Git repositories and store your code. Azure DevOps has naturally been seen as an enterprise solution due to its origins starting out as Team Foundation Server (TFS) and Azure Repos is a key element in that. You can find all of the expected features in here such as branches, creating pull requests & the ability to hook into external tools such as Sentry for error tracking and reporting. In the past I’ve used Azure Repos to store Terraform code that was needed to deploy infrastructure via Azure Pipelines.
3. Azure Artefacts
Azure Artefacts is a package management tool and allows you to share packages via feeds. Admittedly that line can sometimes draw blank expressions so very briefly let’s understand what packages are. Packages are what we describe the software as when it's being delivered (a collection of files used for a software product). Software is usually delivered in several packages and can come in various formats. When using Azure Artefacts it enables you to share those packages publicly or privately, and this is ideal when working with multiple teams but ensuring consistency is applied to what they are delivering. Azure Artefacts keeps a record of any software dependencies and version information, which is key in avoiding any discrepancies in prerequisites or software mismatches.
4. Azure Pipelines
Finally we get to bake a cake! Azure Pipelines is where we can automate builds and test code projects, and it's where within Azure DevOps we see how CI/CD is put into practice. It enables us to automate builds and deliver them securely to our end users by utilising its various features including triggers, variables and secrets (don’t worry the secrets are encrypted with a 2048-bit RSA key). A crucial part of any delivery is the quality of what we deliver and approvals play a key part here, whether that is via pre-configured or manual approval gates Azure DevOps gives you granular control over this.
So let's imagine we have a Health Care company which has setup an Azure DevOps pipeline but is looking to control deployments under strict guidance by a select team of approvers.
As you can see they have three approval gates in which they look to review firstly the quality of the code that has been produced, then once the code has been built they are using another gate to approve testing of some form and then finally once the testing has been completed they then look for a final approval before deploying to the customer. This is a basic example, but you can see that the gates play a crucial role in the continuous delivery of the product.
Now to look at the third gate and typically what we could expect to see. Here they might set up the gate to query the amount of bugs they would accept at this stage, and if the bugs are within the acceptable levels then this gate would automatically approve and move the pipeline onto the next stage.
But what if we feel that is too risky and we want someone to manually check it before it proceeds? Instead of a pre-configured gate we would then use manual intervention. This needs one of the approval teams to look at what is being proposed and ensure that it meets the requirements before confirming (or rejecting) it.
Another feature we’ve talked briefly about are extensions. There are over 1500 available to use which is especially useful when creating the tasks in your pipeline (tasks are the building blocks for our pipeline’s automation). Extensions have a range of functions such as:
- Terraform - Infrastructure as a code
- Ansible - Deploys Ansible playbooks
- Snyk - vulnerability scanner
- Slack - Build notifications in Slack
By leveraging these, along with the other features we explored such as approvals, you can see that Azure Pipelines is a very powerful tool for any enterprise in their continuous integration and continuous deployment (CI/CD) process.
5. Azure Test Plans
Azure Test Plans is where your team would come to create test plans and cases. They are also able to run manual and explanatory tests during the release cycle. Here we have the ability to carry out the following:
- Create and manage test plans
- Run tests on any platform (Windows, Linux, Mac)
- Create charts to track test progress
- Examine test results
- Export test plans for review
Each team can provide input for these tests by linking work items from the Kanban board to specific tests or plans to validate features within the software that are performing as per the requirements from the user story. This removes the silo effect when it comes to testing as we see all too often that there are some basic requirements and it's then left to the testing team to perform those actions and the person requesting those tests would then perhaps read a report eventually once those tests have been performed. In Azure DevOps the feedback can be linked to the work items and requesters can be notified once the tests have completed, making this an excellent collaboration tool.
Of course with any enterprise automation can play a huge part in how efficiently an individual, a team or even the entire organisation perform. So with that in mind Azure DevOps of course allows you to integrate with Azure Active Directory, but more importantly you can automate tasks to add and remove users from Azure DevOps using group rules. On one hand this does free up those staff who would be otherwise constantly dealing with requests to add users to various features or projects within Azure DevOps, however it also does mean that regular auditing is recommended as we all know, automation is not always definitive.
Fortunately, Azure DevOps has an auditing function where it aggregates logs from all the various projects that are connected to the Azure DevOps organisation. This means that when changes are made by a user or a service identity it gets logged. Bearing in mind that we could be potentially holding our source code in Azure Repos—it's crucial we maintain a level of auditing to identify unusual activities like permission changes or invalid login attempts.
You can find the full list of events and activities that get logged here.
The Agile Cookbook: How to Cook Up a Healthy Agile Organisation
As any masterchef knows, to be your best you need to have a fully functional kitchen—and that kitchen should be stocked with quality ingredients and crafted tools. As a masterchef of agility the same applies.
In this eBook, we take you through some of the most important things you should know to guide your organisation to create healthier work environments and processes.
How Azure DevOps Can Help You Achieve Your Goals
As we can see there are many features that can be leveraged by individuals and teams in organisations to achieve their goals but ultimately we can break it down into the following:
- Collaboration and Integration
- Agility and Flexibility
- Efficiency and Productivity
If we look at those points you’ll see that we’ve explored the fact that Azure DevOps provides a platform that enables teams to work together more efficiently, removing silos between them and opening up more opportunities to collaborate with each other. It achieves this by offering tools that allow teams to manage work items, share code, track changes, and communicate with each other. We’ve also seen how Azure DevOps integrates with a multitude of third-party and open-source tools, which empowers teams to work with the tools that they are familiar with and that work best for them, while still collaborating with other teams within the organisation.
Azure DevOps gives us that much needed platform to allow any organisation to respond quickly to changing business needs. It supports various agile methodologies, including Scrum, Kanban, and Agile. Teams are able to plan, track, and manage work items, sprints, and releases. The range of metrics and reports it provides enables teams to monitor progress and identify areas for improvement. We know that Azure DevOps offers a range of features such as automated builds and CI/CD, and it also provides a range of tools that enable teams to test their software more efficiently and effectively, allowing teams to deliver software faster and with fewer errors.
From my time working with Azure DevOps I’ve come to learn that ultimately it has the potential to help an enterprise not only streamline their development processes, but also promote collaboration and as a result improve the quality of the software that an organisation is trying to deliver. It stands up against other tools on the market when it comes to source control, CI/CD, analytics and test management and having used it for a number of years now, I’ve come to understand why it's a popular choice for any enterprise.