Geeks With Blogs


Dylan Smith ALM / Architecture / TFS

As most of you know it’s probably easier to understand Rocket Science than it is Microsoft Licensing.  Unfortunately, I’ve had to deal with it enough over my career that I have a pretty good grasp of at least how MSDN, Visual Studio and TFS Licensing works.  The best resource for attempting to decipher how it works is the MSDN Licensing White Paper.

However, there are several gotchas with the way licensing works.  These are things that most people don’t even realize, and they run afoul of the rules without knowing it.  There are also some good parts of the licensing rules that lots of people don’t know about.  Lets start with the good ones:


The Good

TFS is Free

For most teams TFS is actually “free”.  MSDN includes a production license for TFS, meaning so long as you have more MSDN Licenses (VS Pro and up) than you have TFS Servers you don’t need to buy any additional licenses (of course you still need to make sure you have CAL’s for everybody, but your MSDN users will all have CAL’s as part of their MSDN). 


SQL and SCVMM Exception

TFS requires a SQL Server and if you’re using TFS Lab you need an SCVMM Server.  MSDN includes a “limited use” license that allows you to install SQL Server Standard and SCVMM without needing to purchase licenses for them, on the condition that they are *only* used for TFS (the SQL Server can be used for the TFS Data Tier and the SCVMM Data Tier and the SharePoint Data Tier, so long as the SCVMM/SharePoint instances are used only for TFS).  Note: If you wish to use SQL Server Enterprise you have to purchase a license for that. 


TFS Lab Software

If you use TFS Lab functionality, the virtual machines you setup do not require you to purchase any licenses for Windows/SQL/BizTalk/etc (or for the Hyper-V Host and Library servers) – so long as everybody accessing TFS Lab environments has an MSDN license.  This effectively means that TFS Lab is "free" on the condition that only MSDN licensed users access it.


The Bad

Cannot Deploy Development VM’s to Same Hosts as Production VM’s

This is really the most shocking one to me.  Any VM that uses MSDN licensed software cannot reside on the same physical host server as any production VM’s.  This would effectively require companies to have separate virtualization infrastructure for the production and non-production VM’s.  Almost nobody actually does this (in my experience), and as a result is violating the MSDN licensing rules.  Here is the specific quote from the MSDN Licensing White Paper that specifies this limitation:

“If a physical machine running one or more virtual machines is used entirely for development and test, then the operating system used on the physical host system can be MSDN software. However, if the physical machine or any of the VMs hosted on that physical system are used for other purposes, then both the operating system within the VM and the operating system for the physical host must be licensed separately. The same holds true for other software used on the system—for example, Microsoft SQL Server obtained as MSDN software can only be used to design, develop, test, and demonstrate your programs.”

When I first read that I thought I must be misunderstanding what that means because it just sounded so outrageous.  However, I received confirmation from Microsoft (on the ALM MVP mailing list) that this does in fact mean you must have separate hosts for Production vs. MSDN-Licensed VM’s.


Software Installation Requires MSDN

Most teams I work with have several Dev/Test/UAT/etc environments that they use.  These are often provisioned by some central IT Ops group, then the Dev team takes over and installs the necessary software.  These environments should not require any purchase of licenses for Windows/SQL/etc because they will be using MSDN licensed software (this is exactly what MSDN licensing was invented for).  However, typically when the IT Ops group provisions the machines, that usually involves installing Windows and Windows Updates, and joining it to the domain.  What most people don’t realize, is that anybody that accesses that machine requires MSDN, even if they are just accessing it to install the OS, or join it to the domain.  So unless your IT Ops group has MSDN licenses for their staff (which they usually don’t), then they are violating MSDN licensing rules.


Multiple TFS CAL’s Required for Consultants/Contractors 

If you are somebody that accesses the TFS Servers belonging to multiple different companies, you might not realize that you actually need to acquire a separate TFS CAL for each company.  For example, I work for Imaginet and Imaginet pays for my MSDN subscription.  The TFS CAL that comes with that MSDN is only valid for connecting to Imaginet TFS Servers.  Each client I visit, I would need a separate CAL to access their TFS Servers in theory acquired by that Client.


UAT Exception and Using MTM 

There is a specific exception in MSDN that says you can use MSDN Licensed environments (your Dev/Test/UAT environments) for performing UAT even by people that do not hold MSDN Licenses.  In this case, my understanding is UAT is specifically limited to end-users of the application (does not apply to QA staff, who will require MSDN licenses).  The question came up recently whether those end-users performing UAT are allowed to use MTM to facilitate that UAT process (run Manual Test Cases from MTM and use MTM to record the results). The answer is that UAT testers can in fact use MTM without an MSDN license (just like any other MSDN software), *however* they are not allowed to access TFS without a CAL, even when doing UAT.  Since MTM is totally useless without accessing TFS, this effectively means that they cannot use MTM to perform UAT.

The silver lining here, is that if you do wish the UAT testers to use MTM, you don’t need to buy them an expensive MSDN license, you just have to buy them a somewhat cheaper TFS CAL.

Posted on Tuesday, September 10, 2013 4:35 AM | Back to top

Comments on this post: MSDN and TFS Licensing Gotchas

# re: MSDN and TFS Licensing Gotchas
Requesting Gravatar...
Wow, what a (expensive) mess. Glad I can just use git and git'er done instead.
Left by Travis on Sep 11, 2013 2:25 AM

# re: MSDN and TFS Licensing Gotchas
Requesting Gravatar...
@Travis I know that was meant to be a snarky comment, but I'll respond anyways.

These issues don't really have much to do with TFS vs Git. Assuming you are making software to run on Windows, you probably have Dev/Test environments running MSDN licensed software, so the first 2 issues still apply.

For the last issue (MTM/UAT), Git obviously doesn't have Test Case Mgmt functionality to replace MTM. If you're anti-TFS for some reason, then the next most popular alternative is HP Quality Center which is MUCH MUCH more expensive than TFS.
Left by Dylan Smith on Sep 11, 2013 4:18 AM

# re: MSDN and TFS Licensing Gotchas
Requesting Gravatar...
One thing I still don't understand and no amount of searching has helped... I can install TFS and SQL (Standard) via my MSDN subscription. Let's say someone gets TFS via a retail channel. How do they get SQL Standard?
Left by Harry Bovik on Sep 21, 2013 11:18 AM

# re: MSDN and TFS Licensing Gotchas
Requesting Gravatar...
Interesting stuff, that physical host one is news to me! Do you know how this works in Azure, given we have no control over the physical host that our virtual machines run on? Does this mean no running dev TFS on azure vm's? Does this mean no running ANY msdn software on azure vm's?...
Left by Mike on Oct 22, 2013 4:59 PM

# re: MSDN and TFS Licensing Gotchas
Requesting Gravatar...
@Harry - I don't know the answer to that.

@Mike - Previously, MSDN was explicitly disallowed on any cloud service provider. Around summer 2013 they updated the licensing terms to allow MSDN licensed software on Azure VM's. I believe Azure is the only cloud provider that is allowed today.
Left by Dylan Smith on Dec 12, 2013 9:01 AM

# re: MSDN and TFS Licensing Gotchas
Requesting Gravatar...
Hi Dylan,

Thanks for a bunch of useful information.

However, I read the point about "Cannot Deploy Development VM’s to Same Hosts as Production VM’s" in the whitepaper a bit differently that what is stated in this article.

To me it seems that if you are running, lets say, one dev and one prod VM on a physical host, the VM can be licensed under MSDN, but both physical OS and prod VM must be licensed separately.

Did the email from your Microsoft contact state something different.

Left by Anuj Pant on May 01, 2014 5:47 PM

# re: MSDN and TFS Licensing Gotchas
Requesting Gravatar...
@Anuj yes, I considered the same interpretation you did, but I've been told explicitly by Microsoft more than once, that the way I described it in the post is the way the licensing actually works.
Left by Dylan Smith on May 08, 2014 4:57 AM

# re: MSDN and TFS Licensing Gotchas
Requesting Gravatar...
I have to work with a client's TFS 2010 server.
If I buy an MSDN licence, can I use the TFS 2013 CAL that comes with it to access their TFS server? (I won't be accessing any other TFS servers) And will it be valid after the subscription expires?
Left by Ian Stewart on May 16, 2014 2:20 AM

# re: MSDN and TFS Licensing Gotchas
Requesting Gravatar...
So to use TFS Lab Management I need:

1 Physical Server with Windows Server 2012 running SCVVM (can I use my MSDN license for these?)
A TFS server, also licensed via MSDN.

Is that right, or do I need to purchase separate Windows Server 2012 licenses?
Left by Conrad on Jul 15, 2014 3:59 AM

# re: MSDN and TFS Licensing Gotchas
Requesting Gravatar...
@Conrad that's correct. As long as only MSDN licensed users are accessing your lab environment, you don't need to purchase any Windows licenses, you can just use MSDN for it.
Left by Dylan Smith on Jul 16, 2014 2:58 AM

# re: MSDN and TFS Licensing Gotchas
Requesting Gravatar...
Hello, I have a question.
I have a client that has TFS, I need to upload to the TFS our code. In order to do this it is asking for my MSDN subscription.
Which is the cheapest one I can get?
Where can I get one?
Left by Fabian on Jul 24, 2014 4:11 PM

# re: MSDN and TFS Licensing Gotchas
Requesting Gravatar...
Cheapest way is to just buy a TFS CAL (not MSDN), but to be compliant the company that owns the TFS Server would have to buy the CAL for you.

You can buy a retail CAL here:
Left by Dylan Smith on Jul 28, 2014 5:51 AM

# re: MSDN and TFS Licensing Gotchas
Requesting Gravatar...
lets say you have 3 msdn subscribers. one of them uses the msdn tfs license to set up the server. can anyone with a msdn subscription access the msdn licensed tfs? the important thing is here the MSDN licensed tfs, NOT a retail licensed tfs and it's clear that all of the msdn subscribers have a CAL to access
Left by Marcel on Dec 15, 2014 1:08 AM

# re: MSDN and TFS Licensing Gotchas
Requesting Gravatar...
@Marcel TFS is a special case in MSDN licensing. Unlike the other MSDN licensed software, the TFS server license is a production license. So once you set it up anybody with a TFS CAL can access (which includes anybody with MSDN).
Left by Dylan Smith on Jan 25, 2015 3:44 PM

# re: MSDN and TFS Licensing Gotchas
Requesting Gravatar...
Regarding VMs, it looks like Microsoft updated the whitepaper to indicate that only the host server and production VMs require production licenses (which is what, I think, most people would expect). I confirmed with the MSDN Subscriptions support - here's an excerpt from my e-mail:

Our development team wants to set up a build server (housing both a build controller and build agent) in a VM. The VM will be hosted on a production server, and our entire team has VS Ultimate with MSDN subscriptions.

My two questions are:

- Will the VM require a production OS license, or can we use a license from one our MSDN subscriptions (I realize that whomever sets up the VM will also need to have a MSDN license)? If the latter, it may help to provide this as an example scenario in the whitepaper as there is a prominent search result (this blog) that says otherwise.

Answer 1: You are correct. Aside from using a production OS license on your VM you can also use a license which you obtained from your MSDN subscription on a Virtual Machine. You are also correct in stating that whoever sets up the VM will need to have an active MSDN subscription. Thank you for your feedback regarding the MSDN whitepaper. I have informed my Management Team regarding your great suggestion.
Left by Paul K on Feb 11, 2015 11:23 PM

# re: MSDN and TFS Licensing Gotchas
Requesting Gravatar...
@Paul - I'm pretty sure the answer they gave you is incorrect. In my experience even Microsoft employees can get licensing wrong (which is part of the problem - if MS doesn't even understand it how do they expect customers to).

Here is the relevant except from the licensing whitepaper (page 25 of the Jan 2015 edition):

You must acquire an operating system license for each machine running Team Foundation Server 2013, any of the additional software, or the SQL Server database for Team Foundation Server. You must acquire an operating system license even when your use of Team Foundation Server is licensed as part of an MSDN subscription. For Windows Server-based deployments where Windows Server is licensed on a Server/CAL basis, each user or device that accesses Team Foundation Server data (on a read or write basis) must also have a Windows Server CAL.
Left by Dylan Smith on Mar 01, 2015 8:33 AM

# re: MSDN and TFS Licensing Gotchas
Requesting Gravatar...
Can i also use my MSDN Subscription to license the base operating system on to which i install the TFS Server ?
Left by AlfieC on Mar 04, 2015 2:26 AM

# re: MSDN and TFS Licensing Gotchas
Requesting Gravatar...
@AlfieC No, see my comment above. You must purchase an OS license through the usual channels.
Left by Dylan Smith on Mar 16, 2015 9:31 AM

# re: MSDN and TFS Licensing Gotchas
Requesting Gravatar...
What I'm still not clear on after reading the whitepaper is how Visual Studio is licensed - can we use it in a production environment, for example connecting to a production database, or is it strictly limited to development like all the other MSDN software?
Left by Brian on May 21, 2015 5:20 PM

# re: MSDN and TFS Licensing Gotchas
Requesting Gravatar...
As I have TFS server which is licensed using my MSDN subscription.Can I provide access to someone who don't have
MSDN subscription?
Left by Hotam Singh on Sep 15, 2015 6:32 PM

# TFS CAL for git access?
Requesting Gravatar...
If I use git with the TFS server, will everyone accessing this git need a TFS CAL?

We want to consolidate all of our company's repositories in git, including repositories of java projects. Will the java developers need TFS CALs to access their repositories hosted on the TFS server?

Left by Alexander on Oct 21, 2015 8:03 PM

# Whitepaper Updated: Can Mix Development & Production VMs
Requesting Gravatar...
As of November 2015, Microsoft clarified the second sentence to say,

However, if the physical machine or any of the VMs hosted on that physical system are used for other purposes, then both the operating system within the production environment VMs and the operating system for the physical host must be licensed separately.

The paragraph starts by talking about physical hosts with development-only VMs, then specifies how to license the physical host if production VMs are present on it, too. Not to belabor the point, but there would be no need to deliberately edit it to specify "production environment VMs" if they weren't also presuming development VMs may be present on that same host as well.

Hopefully this'll help clear up that you can indeed host both on one physical host, as long as the physical host gets licensed like a production machine. Sounds like even some Microsoft employees were misinformed about it under the earlier wording.

Thanks for taking the time to write this post; it's not often easy to find the implications of license terms without a good lawyer and a week of research!
Left by A.Franklin on Feb 19, 2016 5:16 AM

Your comment:
 (will show your gravatar)

Copyright © Dylan Smith | Powered by: