In this article, we will take a look at Azure DevOps.
We will first show how to set up Azure DevOps through the Azure portal and take a look at each service it provides. We will look at some popular extensions for Visual Studio Code and show how to set them up, describe some advantages and disadvantages of using Azure DevOps, and finally, the alternatives to Azure DevOps.
Let’s dive in!
Azure DevOps is a unified platform from Microsoft that combines a modern set of Developer services together. It can be used as a cloud Software-as-a-service (SaaS) offering or be hosted on an on-premise server.
Microsoft describes Azure DevOps as:
Azure DevOps provides developer services for allowing teams to plan work, collaborate on code development, and build and deploy applications. Azure DevOps supports a collaborative culture and set of processes that bring together developers, project managers, and contributors to develop software. It allows organizations to create and improve products at a faster pace than they can with traditional software development approaches
To access Azure DevOps in the Azure portal, search for DevOps in the service bar and select ‘Azure DevOps Organisations’.
Click on ‘My Azure DevOps Organizations,’ then ‘create new organization’:
Give your organization a unique name, and then create your first project.
Hit ‘create project,’ and you’re done!
When you are greeted by the Azure DevOps dashboard, the available services will be shown on the left menubar. Each service is tightly integrated with other services in the suite.
Let’s take a look at each service listed on the menu.
Boards enable you to track your work with a set of Agile tools. Amongst other abilities, it can help you track progress, bugs, and issues using a Kanban board.
Repos provides Git repositories for you to store and version control your code. You can also use Team Foundation Version Control (TFVC).
Test plans enable continuous testing and exploratory testing of your applications to ensure quality through a suite of tools.
Artifacts is a package repository allowing teams to share packages such as Maven, npm, and NuGet and integrate these packages into your build pipelines.
Aside from those listed, you can also make use of the Wiki, which is useful for documenting projects, team dashboards for getting a project overview and visualizing metrics, and configure notifications to let your team members know when they have been tagged or assigned work.
Azure DevOps supports extensions for integrating with other services and enhancing the functionality of some of the Azure DevOps services. Because of this, Azure DevOps is extremely flexible. It is not limited to tools in the Microsoft ecosystem.
You can browse and install hundreds of extensions from the Visual Studio Marketplace.
Useful extensions include:
- Slack — If your team uses Slack for collaboration, you can hook Azure DevOps notifications into a slack channel.
- Microsoft Teams — You can use this extension to get notifications for pipeline runs, board updates, and more.
- Replace Tokens — Azure Pipelines extension that replace tokens in text files with variable values.
- Azure DevOps Open in Excel — This free extension adds a button that opens work items and query results in Excel directly from Azure DevOps.
- Code Search — Code Search is a free extension that provides fast, flexible, and accurate search across all your code.
- Sonarqube — Detect bugs, vulnerabilities and code smells across project branches and pull requests. It can be integrated with the Sonarqube community edition or commercial versions.
- Terraform — Install Terraform and run Terraform commands to manage resources on Azure, AWS, and GCP.
- Ansible — This extension executes an Ansible playbook using a specified inventory via the command line interface.
- Chef — Tasks for performing common Chef operations against the Chef Automate platform.
- Kubernetes — Kubernetes extension with k8s endpoint. Which enables the kubectl, helm, and istioctl command.
- Bicep — Provides Azure DevOps tasks to install and run Microsoft Bicep CLI commands (cross-platform)
Using Azure DevOps provides many advantages.
Azure DevOps is a SaaS service, so it provides Maintenance-free operations, including elastic scale, and as we have shown in this article, can be quickly set up. Access to cloud build and deployment servers is also provided. It is reliable and backed by a 99.9% SLA and 24×7 support. The development roadmap for Azure DevOps is published publically for full transparency so you can get full visibility of the new features coming soon.
It has a tight RBAC permission model integrated with Azure AD, enabling you to grant permission to particular parts on Azure DevOps as required.
However, if you need your data to stay within your on-premise organization, you may need to choose the Azure DevOps server version, which would sit within your trusted network. This will take longer to set up and incur management and hosting overheads. You will also need to provision build and deployment servers, meaning more servers and overhead. If you are currently running Team Foundation Server on-premises, Azure DevOps would be a natural upgrade if cloud hosting was out of the question.
Azure DevOps can support continuous delivery to any cloud, including AWS and Google Cloud. It can be used for development across any platform (Linux, macOS, and Windows) or language (including Node.js, Python, Java, PHP, Ruby, C/C++, .Net, Android, and iOS apps). Azure DevOps is not just aimed at organizations building and shipping .Net code.
There are many alternatives to Azure DevOps, the biggest amongst them including:
These provide similar capabilities in terms of Code repositories, CI/CD, and Agile tools, each with its own pros/cons.
Note that Microsoft owns GitHub, which is expected to replace Azure DevOps eventually but still lacks key features. However, most features are being included in GitHub Enterprise. It’s unlikely that Azure DevOps is going away in short to medium term. As of 2021, Microsoft itself held 98% of its code on Azure DevOps, which 80,000 internal users access.
If you need any help managing your infrastructure, Spacelift supports using Azure DevOps as the source of code for your stacks and modules. It is an alternative to using homegrown solutions on top of a generic CI solution. It allows you to automate, audit, secure, and continuously deliver your infrastructure. You can check it for free by creating a trial account.
Azure DevOps is a mature, feature-rich platform that combines a modern set of Developer services together.
For more information, check out the Azure DevOps documentation.
The most Flexible CI/CD Automation Tool
Spacelift is an alternative to using homegrown solutions on top of a generic CI. It helps overcome common state management issues and adds several must-have capabilities s for infrastructure management.