What is Azure DevOps?
Azure DevOps -- rebranded from Visual Studio Team Services (VSTS) in 2018 -- is a software as a service (SaaS) platform from Microsoft designed to provide a comprehensive toolchain for developing and deploying software projects.
The platform assists development teams and offers special tools and services for software programmers, analysts and testers as well as IT project or team managers. Azure DevOps integrates with a wide range of other tools, expanding DevOps toolsets and tailoring them to the unique needs of the development team and organization.
Azure DevOps is an end-to-end software development platform that offers an assortment of capabilities intended to organize and accelerate development efforts across the entire application lifecycle:
- Requirements management.
- Project management for both Agile software development and waterfall teams.
- Version control using Team Foundation Version Control (TFVC) or Git.
- Automated builds.
- Reporting, such as test results, and development metrics, such as backlogs and release velocity.
- Testing and release management.
Azure DevOps is intended for use with native development environments such as Microsoft Visual Studio and Eclipse. However it can be used as a backend to other popular integrated development environments (IDEs).
What services does Azure DevOps offer?
Azure DevOps offers a suite of focused services, with each service related to a key portion of the development lifecycle.
Azure Boards for project management. This scalable service tracks the team's work with Agile and Scrum techniques or Kanban boards, project backlogs, customized reporting and issue tracking, and team dashboards. For example, developers can use Azure Boards to do the following:
- Follow user stories, bugs and features.
- Access interactive backlogs, boards, lists and calendar views.
- Create item worklists and charts.
- Develop delivery plans that consider dependencies.
- Connect with GitHub repositories to link GitHub commits, pull requests and issues.
Azure DevOps provides end-to-end traceability, which lets developers track work throughout the entire lifecycle from requirements through deployment.
Azure Repos for version control. Azure Repos is a set of version control tools used to manage and track changes to code that occur over time. Version control offers a powerful way to save work and coordinate code changes across an entire team. Azure Repos provides a private Git repository or TFVC that offers functionality like collaborative pull requests and advanced file management. Azure Repos connects to many different development environments:
- Visual Studio Code.
- Visual Studio.
Azure Repos can also isolate code forks and employ policies to protect critical code branches from unauthorized changes.
Azure Test Plans for testing. Azure Test Plans provides tools that enable developers to improve code quality and collaboration across the development process. Browser-based test management provides capabilities for planned manual testing, user acceptance testing, exploratory testing and gathering feedback from project stakeholders. Testing capabilities include the following:
- Test plans.
- Progress report.
- Test tools.
Azure Artifacts for component management and sharing. Azure Artifacts enables developers to package and share code. Developers can publish packages to a feed and then share the packages within the team, across organizations or publicly. Developers can also access and use code packages from other feeds or public registries, such as NuGet.org or npmjs.com. Azure Artifacts supports multiple package types:
- Universal Packages.
Azure DevOps extensibility
All five Azure DevOps services are open and extensible and can be used with all types of applications, regardless of the framework, platform or cloud. Built-in cloud-hosted agents are provided for Windows, Mac OS and Linux, and workflows are enabled for native container support and Kubernetes deployment options, virtual machines and serverless environments. Azure DevOps allows extensions and integrations with a wide range of popular services, including Campfire, Slack, Trello and UserVoice and can support custom extensions.
While using all five services provides users with an integrated suite that offers end-to-end DevOps functionalities, the ability to pick which services to employ also provides flexibility to organizations that don't need the full suite. For example if an Azure DevOps user is hosting their code in a Git repository found in GitHub, they can choose to only use the Azure Pipeline service for building and deploying.
Azure DevOps can be integrated with the Azure DevOps Server -- formerly the Team Foundation Server -- the on-premises version of Azure DevOps. This is done through an Azure DevOps Client application programming interface that exposes the Azure DevOps Server functions. These include a Team Explorer for browsing and managing items in team projects and a Source Control Explorer that provides version control and check-in and check-out functions. Azure DevOps can use the Team Build Services rather than its own built-in build services. The same reporting IDE that enables inspection and analysis of Azure DevOps elements can be applied to the Azure DevOps Server and its contents as well.
Azure DevOps can also be integrated with Microsoft Power BI. With Azure DevOps, users can create and customize dashboards as well as access reports located within the product itself. These abilities offer easy access to Azure DevOps Analytics and enable data-driven decisions. Integration with Power BI allows Azure DevOps users to pull data from Azure DevOps Analytics, generate reports and customize the reports to fit their needs.
A Team Test Load Agent -- licensed separately from Azure DevOps and Azure DevOps Server -- is designed to support automated load testing on web or Windows-based applications. Load test results reside in an Azure DevOps Server data warehouse and can be linked to particular builds to track performance testing across the development and deployment cycles.
Who uses Azure DevOps?
Azure DevOps is used primarily by the following four job positions:
- Software testers.
- IT project, team managers and other project stakeholders.
Analysts use the tools and services offered by Azure DevOps to input and document work items. Azure DevOps allows them to create and choose the complexity of their documentation, create templates that make processes simpler, faster and more consistent and record everything in Hypertext Markup Language format, with image and other files included.
Software testers can enter test scripts through Azure DevOps as well as control acceptance tests. Advanced reporting allows them to track all tests done over time.
Programmers use Azure DevOps for integrated unit testing, source control and automated builds. While Azure DevOps can't be used as a development environment, it easily interfaces with the Microsoft Visual Studio, allowing programmers to develop with the tools it provides.
IT project and team managers and other project stakeholders use Azure DevOps to monitor their team's performance and progress. Large projects can be divided into smaller iterations, work items can be scheduled and tasks can be assigned to team members. Team members can update their progress through Azure DevOps, thus further helping project and team managers track progress and performance. In addition Azure DevOps can be used to automatically produce reports, such as product backlogs, burndown charts and Kanban boards.
Rebranding VSTS to Azure DevOps
In September 2018, Visual Studio Team Services announced its rebranding as Azure DevOps. All prior VSTS users were upgraded to the new Azure DevOps platform; no DevOps functionalities from VSTS were lost. The change from VSTS to Azure DevOps is expected to improve experiences for all users. The primary difference between VSTS and Azure DevOps is that the newer Azure DevOps allows users to choose which services they would like to employ.
Benefits of Azure DevOps
Azure DevOps offers the following benefits:
- Improved collaboration between distributed teams. In the Azure DevOps extension, programmers can write code anywhere and in any form; it doesn't have to be written in .NET. The Git integration also makes it easier to track the progress of a product that's being designed by a multi-team collaboration.
- Decreased maintenance costs. Since Azure DevOps is a cloud-based platform, it has lower, ongoing maintenance costs than on-premises services, such as Azure DevOps Server. In addition, subscribers to Azure DevOps don't need to factor in the cost of maintaining servers and upgrade cycles. All that's needed is an active subscription for teams to have constant access to the latest version of Azure DevOps.
- Up-to-date DevOps features. Azure DevOps is a beneficial environment for teams that use Agile, DevOps and other continuous development paradigms. The automated build and release features with quality assurance can help to increase the efficiency of every participating employee and reduce errors associated with manually performing the processes.
- Improved stakeholder environment. Business stakeholders can log onto the Azure DevOps platform from anywhere to add project requirements, check the project status or enter bug reports. Increased stakeholder involvement can improve project success rates.
- Uncontained use of Azure DevOps services. Azure DevOps services are included in all active Visual Studio subscriptions. Subscribers can use the services in every Azure DevOps organization in which they're a member, regardless of whether the user created the organization or were added by someone else.
Azure DevOps drawbacks
Potential drawbacks of Azure DevOps include the following:
- Complexity can lead to setup challenges. The Azure DevOps platform involves at least five major toolsets; each requires setup and configuration to accommodate a project and its specific needs. This can make Azure DevOps excessively complicated, while missing or overlooked configuration items could trigger workflow problems or disruptions. For example, there are no pipeline templates, so every pipeline must be created and managed separately even if the pipelines are virtually identical.
- Microsoft is still the favored vendor. Although Azure DevOps is open and extensible, its best integrations are with other Microsoft products and platforms. This might not be an issue for Microsoft-centric organizations. But businesses that rely on diverse and shifting integrations should pay particular attention to interoperability and integration when evaluating Azure DevOps.
- The user interface can be hard to use. Azure DevOps is a large and complex offering, so the learning curve can be steep and challenging. The interface isn't always intuitive, and some users might have difficulty navigating the platform easily.
- Data location matters. When users employ the cloud-based Azure DevOps platform, code and other project data are located in the cloud. Organizations with specific local data location requirements might need to adopt the Azure DevOps server version, which runs locally and operates within a trusted network.
Azure DevOps pricing
Azure DevOps is included free with Visual Studio subscriptions. However, organizations can select from several other Azure DevOps pricing plans:
- Basic Plan. The first five users are free; additional users are $6 (USD) per user, per month. The Basic Plan includes access to Azure Pipelines, Azure Boards, Azure Repos and Azure Artifacts.
- Basic Plan for Open Source. Open source teams can use a variation of the Basic Plan which includes five free users, with additional users $6 (USD) per user per month. The plan includes Boards, Repos and Artifacts. Pipelines provides 10 free parallel jobs with unlimited minutes per month, one free continuous integration/continuous delivery (CI/CD) parallel job with up to 1,800 minutes per month, and one free self-hosted CI/CD parallel job with unlimited minutes per month.
- Basic + Test Plan. Testing can be included with the Basic Plan which charges $52 (USD) per user, per month. This plan provides all of the Basic Plan features along with test planning, tracking and execution, user acceptance testing and centralized reporting.
Users can also opt for the following individual services from the Azure DevOps portfolio:
- Azure Pipelines. This service includes one free Microsoft-hosted CI/CD job with 1,800 minutes per month and one free self-hosted CI/CD job with unlimited minutes per month. Fees start at $40 (USD) per extra Microsoft-hosted CI/CD parallel job and $15 per extra self-hosted CI/CD parallel job.
- Azure Artifacts. This service offers 2 GB free and then $2 (USD) per GB. Artifacts uses the NuGet Server and supports Maven, npm and Python packages. Azure Artifacts integrates with Azure Pipelines.
Azure DevOps vs. Azure DevOps Server
Both Azure DevOps and Azure DevOps Server provide users with integrated and collaborative environments that support continuous integration, Git and Agile tools to plan and track work. The primary difference between the two options is that Azure DevOps is available as a service on the cloud while Azure DevOps Server is installed on-premises.
Another difference is that three options are available for scoping and scaling data in Azure DevOps Server -- deployment, team projects collections and team projects -- while only two are provided in Azure DevOps -- accounts and team projects. The accounts option in Azure DevOps operates similarly to the team projects collection option in Azure DevOps Server.
In addition, Azure DevOps Server usually connects to an intranet server and is authenticated with Azure AD credentials. Use of the intranet means Azure DevOps Server can only be utilized on the server's premises. In contrast, Azure DevOps connects to the public internet and can be used anywhere by logging-in with a Microsoft account, Azure AD or personal access tokens -- alternate passwords specifically for Azure DevOps.
Other differences include the following:
- Azure DevOps Server requires timely server maintenance and upgrades, while the cloud-based Azure DevOps doesn't require users to maintain or upgrade any servers.
- Azure DevOps Server functionality wouldn't be available during a power failure or crash, but Azure DevOps can continue to be used.
- Azure DevOps Server doesn't offer a SharePoint integration feature, but Azure DevOps does.
- Azure DevOps Server can't perform load testing, whereas Azure DevOps can perform load testing on the cloud.
- Azure DevOps Server doesn't provide a SQL reporting service feature, but Azure DevOps does.
Some benefits of using Azure DevOps instead of Azure DevOps Server include the following:
- Easier setup.
- Can be used immediately.
- Can connect to the Azure DevOps server from anywhere.
- Operating system doesn't require management.
- Hardware doesn't require updating.
However, AzureDevOps Server might be the preferred choice for organizations that want direct control over the development infrastructure or don't wish to contend with specific data management and localization issues that prevent the use of a cloud platform.
GitHub vs. Azure DevOps
The primary difference between GitHub and Azure DevOps is that GitHub focuses on open source projects while Azure DevOps focuses on more closed source projects. But both services try to make it accessible for users to switch back and forth between public and private development modes. In addition, while GitHub offers both private and public repositories, it doesn't provide an integrated build server like Azure DevOps does. Therefore, Azure DevOps can also be used as a continuous integration platform for GitHub.
Both GitHub and Azure DevOps are focused on Git with an emphasis on the various aspects of a collaborative software development process. Both services provide comprehensive and feature-rich platforms to share and track code and build software with CI/CD. Azure DevOps offers a variety of tools and services that facilitate project creation, development, testing and management. Similarly, GitHub offers team-based software development tools, including project issue tracking, code review and various social features.
GitHub offers superior community support when compared to Azure DevOps; it was designed to be community-based and highly social. While Azure DevOps offers a community of Microsoft developers and open source proponents, it's nowhere near as large or supportive as the GitHub community.
Azure DevOps vs. Jira
Atlassian Jira software is another development platform often seen as a competitor of Azure DevOps. Jira is available as a SaaS offering through Jira Cloud, or as an on-premises option through Jira Data Center. Jira offers support for many of the features and functions found in Azure DevOps:
- Support for Scrum and Kanban boards.
- Roadmaps for project management.
- Dashboards and reporting.
- Customizable workflows.
- Version control through BitBucket.
- Automation and orchestration capabilities.
- Repository management.
But Jira software promotes numerous features not readily found in Azure DevOps, including different versions of Jira for software, business and IT teams; advanced search capabilities for issues in code; access to best-practices playbooks; cross-team collaboration; and a mobile app version.
As with any enterprise platform, potential adopters should analyze requirements and carefully evaluate alternative offerings for performance, functionality, ease-of-use, integration and support before committing to a mission-critical development platform.
Becoming a DevOps practitioner is a lucrative career path, but candidates should ask themselves these seven questions before pursuing this type of position.