Will Microsoft support distributed teams and cloud deployments?
Posted by Andy Singleton on Thu, Aug 13, 2009 @ 10:06 AM
Microsoft offers a nice .net technology with great developer tools. And, they are working on cloud deployment with Azure. We do some work with these systems, and I'd like to do more work with these systems with our distributed teams. We are also looking at offering .net frameworks in the catalog, automated Azure builds, visual studio integration for our tools, etc. However, I feel deterred by licensing issues, and I'm not the only one.
This article shows some of the issues. It is appropriately labeled TFS licensing model demystification or what should I buy for my company in order not to step on the licensing mine?
Microsoft does a few things to support distributed teams and cloud deployments. They offer "express" (free) versions of key software tools for developers. Their Team Foundation Server product includes many of the features of the Assembla system for distributed teams. They have licensed Windows and SQL Server for monthly rental at a number of hosting companies.
But, the landmines remain. There are actually two licensing problems. The first concerns developer licenses. If you are working with a distributed team, it's hard to be sure that you can comply with the licensing requirements, because license are for individual developers, and the developers change. How do you license your trial developers? If you are working with someone part time on maintenance, when do they get taken off your list of licensed developers?
The second concerns server licenses. If you are building online services, or cloud services, you end up with a LOT of servers. You need server sets for development, staging, production, and production failover. I you are smart, you design your system to accomodate redundant production servers. You have local development systems. Server proliferation has been a fact of life for every online service that I have worked on, and it becomes especially important as you work to increase release frequency and reliability. AND, it's a requirement for cloud systems that you be able to image the servers and bring back multiple copies.
In this scenario, is it even possible to comply with Microsoft's server-based licenses? Even if you could afford licenses for all of your copies of servers, you still won't be allowed to use the cloud images in many cases.
I'm going to send this post to my friends at Microsoft and hopefully collect some comments and guidelines.