As well as Microsoft Azure as a platform, one of my major tools I use in my day to day work is Azure DevOps (AzDO) Services. Inside and outside of my organisation I have conversations with people who are amazed at the power it has and the reach into non Microsoft technology. So in this post, the first in my AzDO 101 series, I want to run through what the tool offers at a high level, before digging into these in more detail.
First thing to note is that Azure DevOps (AzDO) is a cloud hosted service, that said, Azure DevOps Server is also available which can be deployed on-premises. Both also have really flexible licensing options. Azure DevOps Server can either be paid month to month through Azure or you can buy traditional licences, which are a three year commitment. When you choose to pay through Azure, a number of options are available through Visual Studio subscriptions, Basic or Basic + Test models, per user per month. This model is the same for the cloud hosted Azure DevOps Services. Pricing information is freely available for Azure DevOps Services and Azure DevOps Server.
Although this series will focus on the cloud hosted version, many of the things discussed work the same way or at least are very similar.
AzDO consists of five primary features and a large extension marketplace. The five primary features are as follows; Azure Boards, Azure Pipelines, Azure Repos, Azure Test Plans and Azure Artifacts. We'll go into each feature shortly. The marketplace contains thousands of extensions for both flavours of Azure DevOps and are designed to add additional functionality, extend existing functionality, provide integration with other systems and many other things. Extensions range in cost, the majority are free, some have trials available and you will end up paying to use them. Microsoft themselves publish a number of extensions directly or through the Microsoft DevLabs publisher. Many of the extensions I use are from Microsoft DevLabs.
What I really like about Azure DevOps is that although the features are very much provided with agile and DevOps in mind, you can in fact customise processes and use as much or as little of the tooling as you need and complement existing tooling.
At it's most basic, the concept is simple, the security boundary is known as a project, each project has a process assigned, which can be CMMI, Scrum, Agile or your own custom process. Within a project you can create multiple teams, each team as well as the project has their own backlog, sprints and Kanban, meaning regardless of how your project or product team work, the tooling will work for you. One shared backlog over multiple teams or one backlog per team.
Really the core functionality of AzDO is Azure Boards. This provides functionality to plan and track your work. With Kanban boards, backlogs and planning tools such as sprints you are in complete control of your work. Best of all you don't just have to be a software engineering team, we have customised the tooling to work with operational teams in Technology and business teams. Reporting of your work also lives here as well, and recently released analytics functionality and dashboard widgets give you insights into status and health of your project.
Head over to the product page to learn more about Azure Boards.
Probably one of the places I spent most of my time in the application working with various teams internally and certainly in my opinion where most of the power sits. Azure Pipelines provide you the ability to build and execute continuous integration and continuous deployment pipelines, not just to Microsoft Azure but also AWS and GCP, not forgetting the ability to deploy to on-premises and container technology such as Docker Hub and Azure Container Registry.
Pipelines can be executed in the cloud on hosted agents or on-premises when you need to connect to local systems as part of your workflow. We have the ability to build pipelines to work with web, desktop and mobile applications as well as infrastructure. Language support is huge, with the ability to build, test and deploy Node.js, Python, Java, PHP, Ruby, C or C++, .NET, Android and iOS applications. Build agents can either be on Windows, Linux or macOS.
Learn more about Azure Pipelines over on the product page.
Branch policies also enable you to protect and maintain high levels of code quality within your product using some of the functionality described above.
You can learn more on the product page about Azure Repos.
Azure Test Plans
For many, testing is overlooked and not done in a quality way. While in reality, good quality testing is a crucial part of the software development lifecycle and is critical to ensure fast and iterative delivery. This feature allows you to define exploratory testing services and planned tests to look at the quality of code. It does not replace the need for unit testing which is achieved and validated in pipelines. Testing works over both web and desktop applications, the ability to capture rich scenarios and provide full traceability of the results means you can feed back to the development cycle to resolve any bugs.
Learn more about Azure Test Plans on the product page.
From experience, this is the least used functionality of the product, but provides critical functionality when used properly. Azure Artifacts provides you with the ability to create and share package feeds from both public and private sources. In large organisations, where you create standard libraries for your development teams, often you don't want this code to be public. Using this functionality you can publish a private feed with your team, allowing you to effectively share your libraries.
The functionality provides here can seamlessly go directly into managing packages in your pipeline, taking the effort away from complex scenarios.
You can learn more on the product page about Azure Artifacts.
This is a fairly generic introduction, with the next post in this 101 series, I'll start discussing some experiences of working with the tool and some of the things you can use Azure DevOps to achieve.