Azure DevOps Server offers a range of options and features to help you manage your development workflow. You can choose from on-premises, self-hosted, or cloud-hosted deployment options.
Azure DevOps Server provides a centralized platform for teams to collaborate and track progress. This includes features like work item tracking, version control, and continuous integration and delivery.
One of the key features of Azure DevOps Server is its ability to integrate with other Microsoft tools and services. This includes Microsoft Teams, Visual Studio, and SQL Server.
Azure DevOps Server also offers flexible customization options, allowing you to tailor the platform to your team's specific needs and workflows.
Azure DevOps Server Options
You can choose between two main options for Azure DevOps: on-premises and online. The on-premises version is called Azure DevOps Server, while the online version is called Azure DevOps Services.
Azure DevOps Services is a cloud-based service that's backed by the Microsoft Azure cloud platform. It uses the same code as the on-premises version, with minor modifications, and gets new features first.
On-Premises vs. Online
Azure DevOps is available in two forms: on-premises and online. The online form is called Azure DevOps Services, which is backed by the Microsoft Azure cloud platform.
The cloud service uses the same code as the on-premises version, with minor modifications, and implements the most recent features. It's the first to receive new features developed in short development cycles.
A user signs in using a Microsoft account to set up an environment, creating projects and adding team members. New features migrate to the on-premises version as updates, at approximately three-month intervals.
Managed Pools Now Available
Managed DevOps Pools for Azure DevOps is now generally available, marking a significant advancement in improving developer productivity in the CI/CD loop.
This milestone reduces your cloud bill for ES infra and toil associated with creating and maintaining custom CI/CD infrastructure for your pipelines.
Source Control
Azure DevOps supports two types of source control: Team Foundation Version Control (TFVC) and Git. TFVC is a centralized version control system that allows teams to store any type of artifact within its repository.
TFVC supports two types of workspaces: Server Workspaces and Local Workspaces. Server workspaces allow developers to lock files for check-out and provide notification to other developers that files are being edited.
Local workspaces, on the other hand, were designed to avoid the problems associated with Server workspaces. Files in a local workspace scenario are not read-only, and developers do not have to check them out before working on them.
Azure DevOps also supports a number of features to help developers ensure the code that is checked in follows configurable rules. This rule engine is called a Check-in Policy, and it includes out of the box policies such as the Changeset Comments Policy.
Azure DevOps supports native Git, which allows developers to use any Git client they prefer. This includes tools like Xcode and Android Studio, which support Git plug-ins.
Using Git with Azure DevOps does not preclude the benefit of using Azure DevOps work item or build system. Developers can still reference work item IDs in the check-in comment to associate the check-in with a given work item.
Azure DevOps also provides a Code Analysis feature, which can run against code checked into the server and during automated builds. This feature is based on the FxCop library.
Azure Repos is the extension for Visual Studio Code that supports TFVC. It's a convenient way for developers to work with TFVC repositories directly from Visual Studio Code.
Azure Repos has also been updated to fix a limited merge types inheritance checkbox display issue, allowing developers to modify merge types after setting cross-repository policies.
Reporting and Management
Reporting and Management in Azure DevOps is a powerful tool that provides real-time visibility into resource usage. This feature is available directly within Azure DevOps and offers insights into commonly asked limits.
Azure DevOps offers a range of reporting capabilities, including real-time burndown, velocity, and CFD diagrams. These reports can be accessed directly within Team Web Access. Reporting has been a core component of Azure DevOps since its initial release in 2005, and any tool that can point to the data sources can report from them.
TFS 2013 introduced a new feature called "light-weight reporting" which provides the ability to create real-time reports based on query results. This feature does not rely on the warehouse or cube. Release Management capabilities give teams the ability to perform a controlled, workflow-driven release to development, test, and production environments.
Some of the key reporting and management features in Azure DevOps include:
- Real-time burndown, velocity, and CFD diagrams
- Light-weight reporting for real-time reports
- Release Management for controlled, workflow-driven releases
- Object Limit Tracker for real-time visibility into resource usage
Reporting
Reporting has been a core component of Azure DevOps since its initial release in 2005.
The reporting infrastructure consists of a data warehouse (Tfs_Warehouse) which is a relational database and a SQL Server Analysis Services data cube.
Any tool which can point to these data sources can report from them, including tools such as Cognos, Tableau, Excel and other reporting tools.
Included with each out of the box process template is a set of reports for reporting services which cover Build information, Test results and progress, project management, agile reports, bug and issue data.
New reports can be created using Report Builder for SSRS and any of the existing reports can be modified.
More specialized reporting is available for load test results, which is available directly within Visual Studio and can be exported to Excel for detailed analysis.
TFS 2013 introduced a new feature called "light-weight reporting" which provides for the ability to create real-time reports based on query results and which do not rely on the warehouse or cube.
TFS 2012 (and continuing into 2013) offers real-time burndown, velocity and CFD diagrams directly within Team Web Access.
Management
Release Management is a crucial aspect of any software development project. It allows teams to perform a controlled, workflow-driven release to development, test, and production environments.
In mid-2013, Microsoft purchased InRelease from InCycle Software and fully incorporated it into Team Foundation Server 2013. The tools were re-branded "Release Management" for TFS 2013.
Release Management provides dashboards for monitoring the progress of one or more releases. This feature helps teams stay on top of their releases and make any necessary adjustments along the way.
Microsoft has rebuilt Release Management for Visual Studio Team Services and on-premises version of TFS with the new changes in 2015 Update 2. The new version leverages the web browser as the client and relies on the same agent architecture as Team Foundation Build.
Here are some key features of Release Management:
- Controlled, workflow-driven release to development, test, and production environments
- Dashboards for monitoring the progress of one or more releases
- Rebuilt for Visual Studio Team Services and on-premises version of TFS in 2015 Update 2
- Leverages web browser as client and relies on same agent architecture as Team Foundation Build
GitHub Integration
GitHub is the world's largest developer community, with over 100M developers. It serves over 4M organizations, including 90% of the Fortune 100.
GitHub is beloved by developers, and its deep integrations across the suite make it a valuable asset for any team. Azure DevOps can integrate with GitHub, allowing teams to leverage the strengths of both platforms.
GitHub's large developer community and robust integrations make it an ideal choice for teams looking to collaborate and develop software.
Maximizing GitHub
GitHub is the world's largest developer community, with over 100M developers.
It serves over 4M organizations, including 90% of the Fortune 100.
GitHub is beloved by developers, and its massive user base makes it a go-to platform for collaboration and development.
Linking a Work Item to a Pull Request
To link a work item to a Pull Request, you'll need to set the azureWorkItemId configuration in Renovate. This will automatically link the existing work item to the Pull Request.
Make sure the user has the necessary permissions on the work item's area path, specifically Edit work items in this node and View work items in this node. If the user doesn't have these permissions, Renovate will still create a PR, but it won't have a link to the work item.
Here are the required permissions in a concise list:
- Edit work items in this node
- View work items in this node
Setting Up a Pipeline
To set up a pipeline in Azure DevOps, you'll need to define a variable in the pipeline. On classic pipelines, this is done in the variable tab. If you're using YAML, you can download and extract Tasks_20230825.zip to upload the tasks.
To use the new behavior in your pipeline, you'll need to set the variable AZP_75787_ENABLE_NEW_LOGIC to true. This is a requirement for pipelines that use the affected tasks.
To upload the tasks, you'll need to execute specific commands. Here are the steps:
- Download and extract Tasks_20230825.zip.
- Change directory into the extracted files.
- Execute the following commands to upload the tasks:
- Fix identity value error while assigning a work item to an identity which appears in different domains.
If you're setting up a new pipeline, you'll need to select your source and repository. Then, select the "Starter pipeline" option and replace all content with a specific YAML code.
Installation and Configuration
To install and configure Azure DevOps Server, you'll need to follow a series of steps. First, upgrade your server with Patch 9.
You'll also need to check the registry value at HKLM:\Software\Elasticsearch\Version. If it's not there, add a string value and set the Version to 5.4.1 (Name = Version, Value = 5.4.1).
To do this, you'll need to run the update command PS C:\Program Files\{TFS Version Folder}\Search\zip> .\Configure-TFSSearch.ps1 -Operation update as provided in the readme file.
If Azure DevOps Server and Elasticsearch are installed on different machines, you'll need to copy the content of the folder named zip to the Elasticsearch remote file folder.
Here's a summary of the installation steps for the AzureResourceGroupDeploymentV2 task:
- Extract the AzureResourceGroupDeploymentV2.zip package to a new folder on your computer.
- Download and install Node.js 14.15.1 and npm.
- Run the command to install tfx-cli in an administrator mode command prompt.
For the AzureResourceManagerTemplateDeploymentV3 task, you'll also need to extract the package to a new folder and install Node.js 14.15.1 and npm.
Installation Steps
To get started with the installation process, you'll need to extract the AzureResourceGroupDeploymentV2.zip package to a new folder on your computer. For example, you can extract it to D:\tasks\AzureResourceGroupDeploymentV2.
You'll also need to download and install Node.js 14.15.1 and npm, which is included with the Node.js download, according to your machine's specifications.
To install the tfx-cli, open a command prompt in administrator mode and run the following command.
To install the AzureResourceManagerTemplateDeploymentV3 task, you'll need to extract the AzureResourceManagerTemplateDeploymentV3.zip package to a new folder on your computer, such as D:\tasks\AzureResourceManagerTemplateDeploymentV3.
You'll also need to download and install Node.js 14.15.1 and npm, which is included with the Node.js download, to ensure compatibility with your machine.
Here are the installation steps for the AzureResourceManagerTemplateDeploymentV3 task:
To upgrade the Elasticsearch server, you'll need to run the update command PS C:\Program Files\{TFS Version Folder}\Search\zip> .\Configure-TFSSearch.ps1 -Operation update as provided in the readme file.
Safely Upgrade
Safely Upgrade from Azure DevOps Server 2019 to Azure DevOps Server 2020.
Upgrading from Azure DevOps Server 2019 to Azure DevOps Server 2020 requires careful planning to avoid losing pipeline runs. Azure DevOps Server 2020 handles build retention differently, based on pipeline-level retention policies.
Certain policy configurations can lead to pipeline runs being deleted after the upgrade. Pipeline runs that have been manually retained or are retained by a release will not be deleted after the upgrade.
Azure DevOps Server 2020 Update 1.2 disables the new retention model to prevent loss of pipeline runs. This means the system will not delete pipeline runs that have been manually retained or are retained by a release.
The Data Migration Tool will be available for Azure DevOps Server 2020 Update 1.2 about three weeks after this release. You can see our list of currently supported versions for import Azure DevOps Server 2013 or newerAzure DevOps Server 2020
Create Config File
To create a config file, start by making a new file called config.js in your repository.
This file is crucial for setting up your project.
Create a config.js file in your repository.
For the repositories key, replace YOUR-PROJECT/YOUR-REPO with your actual Azure DevOps project and repository.
This is a simple step, but it's essential for getting your project up and running.
Make sure to update the file with your actual project and repository information.
May
May was a big month for Azure DevOps Server 2020 updates.
Azure DevOps Server 2020 Update 1.2 was released on May 17, 2022, and it's a roll-up of bug fixes.
This update disables the new retention model to prevent loss of pipeline runs, fixes issues with change set and shelveset comments, and enables the "Run next" button for all users.
Azure DevOps Server 2020.0.2 was also released on May 17, 2022, and it includes fixes for skipping the build queue and revoking personal access tokens after a user's Active Directory account is disabled.
If you're running Azure DevOps Server 2020.0.1, you should install Patch 3, which was released on May 11, 2021, to fix issues with inconsistent test results data.
Here's a quick rundown of the fixes included in each update:
- Azure DevOps Server 2020 Update 1.2: disables new retention model, fixes change set and shelveset comments, enables "Run next" button
- Azure DevOps Server 2020.0.2: fixes skipping build queue, revokes personal access tokens
- Azure DevOps Server 2020.0.1 Patch 3: fixes inconsistent test results data
Make sure to check the version of the Microsoft.Teamfoundation.Framework.Server.dll file after installing Patch 3, it should be 18.170.31228.1.
Frequently Asked Questions
Is Azure DevOps a server?
Azure DevOps is not a server, but rather a set of collaborative software development tools that can be hosted on-premises or in the cloud. It's a platform that brings teams together to plan, code, test, and deploy software.
How to access Azure DevOps Server?
To access Azure DevOps Server, sign in with a valid Microsoft account or GitHub account associated with an Azure DevOps project. Use the Manage Connections icon in Team Explorer to connect with different credentials if needed.
What is Azure TFS?
Azure DevOps Server, formerly known as Team Foundation Server (TFS), is a Microsoft product that provides version control and project management tools for software development. It offers features like version control, reporting, and requirements management to support agile software development and more.
Does Microsoft TFS still exist?
Microsoft TFS (Team Foundation Server) has been rebranded to Azure DevOps, but its on-premises version is now known as Azure DevOps Server. For the latest information, see the Azure DevOps documentation.
Is TFS outdated?
Yes, TFS 2013 is considered outdated as it no longer receives security updates. Upgrade to Azure DevOps Server 2022 for the latest features and security.
Sources
- https://en.wikipedia.org/wiki/Azure_DevOps_Server
- https://devblogs.microsoft.com/devops/
- https://learn.microsoft.com/en-us/azure/devops/server/release-notes/azuredevops2020u1
- https://learn.microsoft.com/en-us/azure/devops/server/release-notes/azuredevops2020
- https://docs.renovatebot.com/modules/platform/azure/
Featured Images: pexels.com