Visual Studio Team Services (VSTS) -- rebranded as Azure DevOps in 2018 -- is an Azure cloud-hosted extension of Microsoft's Team Foundation Server (TFS) -- now called Azure DvOps -- that assist development teams with special tools and services for software programmers, analysts and testers as well as IT project or team managers. Visual Studio is a software development environment built on the .NET Framework that is designed for managing projects and development work in a variety of languages including Visual C# .NET, Visual C++ .NET, Visual Basic .NET, Visual J# and ASP.NET.
VSTS includes software development, collaboration, measurement and reporting tools that fall broadly into server-side and client-side applications. On the server-side, this involves TFS for data storage and collaboration management -- including source control, work item tracking and reporting services. TFS also includes a build server that developers may use to generate releases from specific elements stored in its source control services. Visual Studio's code analysis, test tools and code coverage elements may be used to validate any build before it is deemed fit for release.
Rebranding from 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 the fact that the newer Azure DevOps allows users to choose which services they would like to employ, from the collection of:
- Azure Boards - This service tracks the team's work with Kanban boards, backlogs, customized reporting and team dashboards.
- Azure Pipeline - The Azure continuous integration/continuous delivery Pipeline is a free service that can accommodate up to ten parallel jobs in any open source It also offers file transforms and variable substitutions that are available for web app files as well as XML and JSON files.
- Azure Repos - A private Git repository that provides functionality like collaborative pull requests and advanced file management.
- Azure Test Plans - A completely inclusive planned and exploratory testing solution.
- Azure Artifacts - This service generates package feed for Apache Maven, npm and NuGet packages from public or private sources.
While using all five services provides users with an integrated suite that provides end to end DevOps functionalities for large enterprises, 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, then they can choose to only utilize the Azure Pipeline service for building and deploying.
The rest of this definition will focus on the updated Azure DevOps.
Uses of Azure DevOps
Azure DevOps is used primarily by four job positions:
- Software testers
- IT project/team managers
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 HTML format, with image and other files included.
Software testers can enter test scripts through Azure DevOps as well as control acceptance tests. Furthermore, advanced reporting is offered that allows them to track all tests done over time.
Programmers utilize Azure DevOps for integrated unit testing, source control and automated builds. While Azure DevOps cannot be used as a development environment, it easily interfaces with the Microsoft Visual Studio, allowing programmers to feasibly develop with the tools provided by Azure DevOps.
IT project/team managers 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 through Azure DevOps. Team members also find it easier to update their progress through Azure DevOps, thus further helping project/team managers track the group's and an employee's progress and performance. Furthermore, it can be used to automatically produce reports, such as product backlogs, burndown charts and Kanban boards.
How Visual Studio Team Services works
All five Azure DevOps services are open and extensible and can be used with all varieties 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 can be integrated with the Azure DevOps Server -- formerly the Team Foundation Server (TFS) -- the on-premise version of Azure DevOps. This is done through an Azure DevOps Client API 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/check-out functions. Azure DevOps can use the Team Build Services rather than its own built-in build services, and the same reporting integrated development environment (IDE) that enables inspection and analysis of Azure DevOps elements may 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 decision. 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.
There's also a Team Test Load Agent, licensed separately from Azure DevOps and Azure DevOps Server, that 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 may be linked to particular builds in order to track performance testing across the development and deployment cycles.
Benefits of Azure DevOps
Benefits of Azure DevOps include:
- Feasible collaboration between distributed teams - In the Azure DevOps extension, programmers have the ability to write code anywhere and in any form; it does not have to be written in .Net. The Git integration also makes it easier to track the progress of a product that is being designed by a multi-team collaboration.
- Decreased maintenance costs - Since Azure DevOps is a cloud-based platform, it has much lower, ongoing maintenance costs than on-premise services, such as Azure DevOps Server. Furthermore, subscribers to Azure DevOps do not need to factor in the cost of maintaining servers and upgrade cycles. An active subscription is all that is needed 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 utilize Agile Software Development or DevOps. The automated build and release features with quality assurance greatly increase the efficiency of every participating employee and can also reduce errors associated with manually performing the processes.
- Improved stakeholder environment - Business stakeholders have the capability of logging onto the Azure DevOps platform from anywhere to add project requirements, check the status or enter bug reports. Increased stakeholder involvement can improve project success rates.
- Uncontained use of Azure DevOps services - The variety of Azure DevOps services are included in all active Visual Studio subscriptions. Subscribers can use the services in every Azure DevOps organization in which they are a member, regardless of whether or not the user created the organization or were added by someone else.
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 directly on a user's premise.
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.
Furthermore, while 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 (PATs) -- alternate passwords specifically for Azure DevOps.
Other differences include:
- Azure DevOps Server requires timely server maintenance and upgrades while the cloud-based Azure DevOps does not require users to maintain or upgrade any servers.
- Azure DevOps Server functionality would be unavailable during a power failure or crash, but Azure DevOps can continue to be used.
- Azure DevOps Server does not offer a SharePoint integration feature but Azure DevOps does.
- Azure DevOps Server cannot perform load testing whereas Azure DevOps can perform load testing on the cloud.
- Azure DevOps Server does not provide a SQL reporting service feature, but Azure DevOps does.
Some benefits of using Azure DevOps instead of Azure DevOps Server include:
- easier setup;
- can be used immediately;
- can connect to the Azure DevOps server from anywhere;
- the operating system doesn't require management; and
- the hardware doesn't require updating.
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. However, both services try to make it accessible for users to switch back and forth between public and private development modes. Furthermore, while GitHub offers both private and public repositories, it does not provide an integrated build server, but 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 used to share and track code and build software with continuous integration and continuous delivery. 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 is nowhere near as large or supportive as the GitHub community.