It is a question I often get when I talk to customers about Azure DevOps. Some of them run on-premises Azure DevOps Server and wonder what it costs to run it in the Cloud as a SaaS service. Some say their on-premises environment is very cheap. Let’s dive into the calculations and nitty gritty details.
Disclaimer
All prices mentioned in this blog have been checked by the time the blog was published and all the information in this blog has been written with utmost care. However, I cannot be held responsible for any damage caused by using the information in this blogpost. To make sure your information is correct, always check your assumptions with Microsoft.
The basics
Azure DevOps Services is a SaaS platform and as such, you can be running a new Organization (an Azure DevOps instance) within minutes. Up until 5 users it remains free. That means that you can use Azure Boards (Agile boards, backlogs etc), Azure Repos (Git repositories, pull requests etc), Azure Pipelines (CI/CD, environments etc) and Azure Artifacts (Package management) for free, virtually without limits (I’ll explain Azure Test Plans later). It’s the limits I’ll talk about in this blogpost because that’s wat makes it hard(er) to understand. Keep in mind that the Azure Pricing Calculator or Azure DevOps Pricing is your friend!
All costs mentioned below can be setup or changed through the Azure DevOps web UI. Once you link an Azure Subscription to Azure DevOps, you can start spending. Amounts chosen for items you pay for, can be changed daily, so you don’t need to pay for the entire month.
Azure Test Plans
Azure Test Plans is a feature for registration of manual test effort; test plans, test suites and test cases can be added, maintained, and executed. You get reporting over preparation and results. As a personal note, I must honestly say that unit testing and alike should have a much higher priority than testing that is promoted by this feature. All of the automated testing takes place in Azure Pipelines and Azure Test Plans is not required to use these features.
Cost #1: Users
5 Basic users are free. If you want more, you pay. A Basic user costs $6/month. There is a certain discount when you get above a certain amount. There are multiple different user/license types, called Access Levels (check the link for all details, the list below are the most important differences);
- Stakeholder: these users have most of the functionality available but have no access to Azure Repos and lack some advanced features on Azure Boards. This access level is free though!
- Basic: have access to everything, except Azure Test Plan administration (creation of test plans, test suites and test cases). They can run tests though. A Basic user costs $6/month.
- Basic+Test Plans: have the Azure Test Plans administration on top of the features of the Basic user. A Basic+Test Plans user costs $52/month.
- Visual Studio Subscriber: when you pay for a Visual Studio subscription, a license to use Azure DevOps Services comes with it. So, there is no need to pay for a Basic user when a user has a Visual Studio Subscription.
Cost #2: Pipelines
Azure Pipelines is where you configure and run your CI/CD; builds, deployments, tests etc. All this runs on agents. An agent is a Windows Service installed together with some tooling, like Git and NuGet. You can use agents which are provided on a SaaS basis (Microsoft Hosted Agents) and/or you can use agents which you setup and maintain yourself (Self Hosted Agents). You don’t pay for the number of agents you run. You pay for parallelism. The more jobs you want to run in parallel, the more you pay. This is called Parallel (CI/CD) Jobs. You get 1 hosted agent/job for free, with a limit of 1800 minutes of usage. If you want more, you pay. This is what it costs:
- Microsoft Hosted Pipeline: $40/month each
- Self-Hosted Pipeline (1 is included): $15/month each
- Every Visual Studio Enterprise subscriber in your company means you get 1 Self Hosted Pipeline for free
Keep in mind that when you’re running Self Hosted Pipelines, you’ll need to pay for the hardware/VM’s it’s running on as well!
Cost #3: Artifacts
With Azure Artifacts you can host your (private) NuGet feeds, Maven feeds etc. Up until 2Gb of storage usage it’s free. If you want more, you pay. Up until 10Gb (2Gb Free + 8Gb paid) you pay $2/Gb/month. Above that, discounts apply.
Cost #4: Paid extensions
Azure DevOps has great extensibility. Extensions are provided through the Marketplace. Most of them are maintained by the community and are free. Some of them are commercial and are paid for. Of course, this depends on your needs. I have enough customers that don’t have the need for paid extensions. The cost of the paid extensions varies by extension, some of them have pricing available directly on the Marketplace, some of them redirect to the author’s website.
Cost #5: Microsoft Entra ID
Azure DevOps can be used using Microsoft Accounts (MSA’s) or using Microsoft Entra ID. In professional use, Entra certainly has the preference, because of better security possibilities (like forcing users to use 2FA/MFA). You can use Entra for free, but with limitations. If you want to use Conditional Access Policies, then you’ll need to pay for Entra. On this page, you can easily compare the features of Entra and make your choice. Most companies will already have an Entra, because it is required when using e.g., MS Teams.
Cost #6: Support plans
By default, there is no real support. There is the documentation and some self-service pages. If you want more, you pay. There are three levels, and these are the same levels/plans as for Azure. You can find all the details on this page. Support starts at $29/month and goes up to $1000/month. Most of my customers already have support plans on their existing Azure subscriptions and as such don’t need an additional support plan.
Cost #7: GitHub Advanced Security for Azure DevOps (updated 2024)
In June 2023, Microsoft started with a public preview for GitHub Advanced Security (GHAS) for Azure DevOps. In September 2023 it was announced as Generally Available. With GHAS for Azure DevOps you can integrate code scanning, secret scanning and dependency scanning into your pipelines. By default, GHAS for Azure DevOps is switched off. It can be turned on on a per Organization basis (https://dev.azure.com/{organization}/_settings/repositories), per Team Project basis (in the repository settings https://dev.azure.com/{organization}/{teamproject}/_settings/repositories?_a=settings), or for a specific repository.
Advanced Security is billed based on the number of unique active committers in repositories. Active committers are users that have committed to an Advanced-Security-enabled repository in the last 90 days. The cost is $49 per active committer per month. When switching on GHAS for Azure DevOps, Azure DevOps displays an estimated amount of active unique committers. Once switched on, the actual billed amount can be found in the organization billing settings (https://dev.azure.com/{organization}/_settings/billing). When switching off GHAS for Azure DevOps for a repository, team project or organization, the billing for that scope will stop as well.
Conclusion
Using Azure DevOps Services is not more expensive than running on-premises. It can be even cheaper! Keep in mind all the costs of running infrastructure on-premises when comparing prices:
- Real estate
- Power consumption/cooling (airconditioning) and its maintenance
- Hardware and its maintenance
- Licenses (OS)
- OS maintenance
- Support on all of the above
In most cases it’s very interesting to look at Azure DevOps Services vs its on-premises counterpart. And I didn’t even mention the functional advantages…