Microsoft provides a continuous integration & continuous development. Azure DevOps Server is a server download that is possibly a good choice for CI CD purposes, especially in the Microsoft ecosystem. In this post, we will look at the differences between Azure DevOps Server Express and Azure DevOps Server. We will see the steps to install Azure DevOps Server Express in a self-hosted environment.
What is Azure DevOps Server?
The Azure DevOps Server solution is actually a rebranded Team Foundation Server (TFS). This solution includes development tools and services for modern dev teams and devops engineers. You can read more details about the rebrand here: TFS rebrand to Azure DevOps Server – Azure DevOps | Microsoft Learn.
With Azure DevOps Server, you have a complete access to code and deployment workflows. It includes features like source control, tracking, build automation, and it also includes release management tools. You can run it both on-premises and in the cloud. It will likely fill the use case of enterprise-level projects that need version control and CI/CD capabilities for enterprise organizations that want to use Microsoft solutions for their code lifecycle needs.
Azure DevOps Server vs Azure DevOps Server Express
Azure DevOps Express is a free version of Azure DevOps Server. When you install it, it installs the client and server operating systems. Actually, it supports the same features as Azure DevOps Server.
The limitation comes to active users. Azure DevOps Server Express limits the active users of the solution to 5 active users.
Deployment configurations
There are different deployment configurations with Azure DevOps Server, including the following:
- Single Server – This is a deployment that is easy to deploy and simple. It includes the application-tier and the data-tier on the same machine. It is normally a good fit for a single team or small number of teams that may need to use the deployment. If you are looking to install Azure DevOps Server in your home lab, this is also a great configuration.
- Dual Servers – The dual-server configuration has a separate application and database tier. As you would expect, it has better performance for large teams and heavy usage.
- Multiple servers – When you need to provide support for very large teams and very heavy use, the multiple server configuration is the best configuration for this use case. It has high-availability and disaster recovery features.
Azure DevOps Requirements
You can see the requirements Microsoft has documented for Azure DevOps here: Setup & upgrade requirements – Azure DevOps Server | Microsoft Learn. In summary, note the following highlights of common installations:
Single-Server Deployment
- Just a basic installation – 1 dual-core processor, 4 GB RAM, fast HDD (supports up to 250 users)
- Elastic search enabled: 2 dual-core processors, 8 GB RAM
- A more powerful configuration for more users: Increase RAM to 8 GB to support up to 500 users
- Testing, development, labbing: As little as 2 GB RAM (not recommended for more than one user).
Supported Operating Systems
- Azure DevOps Server 2022: Windows Server 2022, Windows Server 2019
- Azure DevOps Server 2020: Windows Server 2019, Windows Server 2016
- Azure DevOps Server 2019: Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012
- TFS 2018: Windows Server 2016, Windows Server 2012 R2, Windows Server 2012
- Server Core installation supported for Azure DevOps Server 2022, 2020, 2019, and TFS 2018
SQL Server Requirements
- Azure DevOps Server 2022: Azure SQL Database, Azure SQL Managed Instance, SQL Server 2022, SQL Server 2019
- Azure DevOps Server 2020: Azure SQL Database, SQL Server 2019, SQL Server 2017, SQL Server 2016 (minimum SP1)
- Azure DevOps Server 2019 Update 1.1: Azure SQL Database, SQL Server 2019, SQL Server 2017, SQL Server 2016 (minimum SP1)
- Azure DevOps Server 2019: Azure SQL Database, SQL Server 2017, SQL Server 2016 (minimum SP1)
- TFS 2018: SQL Server 2017, SQL Server 2016 (minimum SP1)
- SQL Server on Linux is not supported
- Azure SQL Database: Only supported with Azure Virtual Machines
- SQL Server 2016: Requires Visual C++ runtime update
How To Install Azure DevOps Server Express
I created a new VMware vSphere virtual machine running Windows Server 2022 with 4 cores and 8 gigs of memory for the installation of Azure DevOps Server Express. Below are the specs and details of the machine:
After getting the machine created, you can mount the Azure DevOps Server Express ISO image in the VM. The media can be downloaded from the following URL: Azure DevOps Server Download – Azure DevOps Server & TFS | Microsoft Learn.
Once we have the media, we can begin the installation. Run the setup found on the Azure DevOps Server ISO.
It will ask you to choose your installation directory.
The installation progresses after clicking Install.
Now that we have Azure DevOps Server installation setup, we will need to go through the Configuration Center wizard to finish out the configuration of the Azure DevOps Server. Click Start Wizard.
Make your choice on the welcome screen if you want to participate in improving the product.
On the Deployment Type I am selecting This is a new Azure DevOps Server deployment. This will create a new Azure DevOps Server deployment with new databases. You can also select I have existing databases to use for this Azure DevOps Server deployment. In this option you will be configuring an Azure DevOps Server deployment against existing databases, which you will select in the configuration pages.
Next, select the deployment scenario. There are three options here. I am selecting the New Deployment – Basic installation. This allows you to create a new Azure DevOps Server deployment using default options for most inputs. It allows you to get up and running very quickly and is a great option for testing and playing around with the solution in a lab environment.
Next, select the language you want to use for the Azure DevOps Server installation.
On the next page, you select a SQL Server instance for your Azure DevOps databases. It makes it easy if you want to get up and running quickly with a SQL Server Express installation. When you select this option, a new instance of Microsoft SQL Server Express is installed and your configuration and team project collection databases will be stored there.
Provide the settings for your application web services tier in Azure DevOps Server.
Next, provide the search configuration settings, including installing the search service and specifying an account to use to enable basic authentication in search service.
Finally, review your configuration settings carefully. Then if everything looks ok, select Next.
The configuration wizard begins making progress.
After quite a while of installation, the configuration progress should complete successfully.
Review the results of the installation and configuration changes that have been made. Note that out of the box, it will default to a clear text HTTP connection. You can choose to transition to HTTPS in the configuration center at a later time with a proper SSL certificate.
Once you click Close on the screen above, it will take you back to the Configuration Center. You can just click Close on this screen.
Creating a new Azure DevOps Project
Browse to the URL of your Azure DevOps Server. If you didn’t change anything, this will be located on port 80. As a note, you will want to configure a proper certificate to encrypt your traffic for production environments. After logging in, you will be prompted to create a new project. Below, I am creating a simple project for testing in the home lab.
After a couple of moments, the new project will get created and you will be taken to the project dashboard. Note the following components of a new project similar to what you would see in something like GitLab, etc:
- Boards
- Repos
- Pipelines
- Test Plans
- Artifacts
Wrapping up
Microsoft Azure DevOps Server is a great option for those who want to host code repositories and CI CD on-premises or in a development environment using Microsoft technologies. As you would expect, Microsoft Azure DevOps Server has really good integrations with the existing Microsoft ecosystem, including Azure. Also, Azure DevOps Server Express edition is a free download and there is no difference in the functionality provided aside from it limits the max number of active users to a total of 5. If you want to get a feel for the solution and even run it for a small environment, Azure DevOps Server Express is a great option.