To that end, the OS versions supported are not the only things that can go out of style. Versions of Visual Studio supported by the Azure SDK are also in the line of fire. Word is that Visual Studio 2010 will not be supported in future versions of the Azure SDK. For an organization that is on the march as an early adopter or regular upgrader, then this is not a problem. But if you did not expect to move to a new version of Visual Studio, then the conveyer belt of technology required by Azure may catch you off guard.

Documentation is a boring thing to talk about, but another hazard for a fast-moving platform is that either the information available might be out of date or it might just be lacking. There is really nothing that Microsoft can do about blog entries and articles being out of date, and so as with every other product, it is up to the reader to ensure that the blog or article is current. If it is more than a year old and about Azure, then look for another more current source, or test the waters before banking on things remaining the same.

As for documentation, there is a great deal to like about how Microsoft has accommodated, but there are back alleys and rough spots if you are doing something out of the ordinary. For example, there can be periods where there is very little official documentation that is easily found regarding integrating the latest features. This is to be expected, but it is still frustrating when working against a deadline. All of these items should not be a surprise, but they bear mentioning because they could be unpleasant if they impact your project or operations.

In our discussions about picking how to use Azure to provide a solution, Culling said that at VersionOne they use this calculus: “It is really a combination of economics and going with the simplest (lowest overhead/complexity) option possible given the immediate need.” Good advice for staying out of trouble and the research done to make this decision should help reveal these kinds of pitfalls.

Licenses as an advantage
A huge advantage that Microsoft has over any other cloud provider is that regardless of how they do their accounting internally, Microsoft does not have the burden of paying for OS licenses. There are of course Linux operating systems that are free and Windows licenses that competing cloud providers must pay Microsoft to use. Another advantage for Azure is that Microsoft has leveraged its MSDN user base to offer additional big advantages for developers choosing Azure over other options, especially if they have an MSDN subscription.

The first of these is that each MSDN subscription includes cash credit that can be used for anything provided by Azure. At first this benefit was constrained to providing X hours of an image of size Y and Z transactions, etc., but eventually Microsoft realized that this was causing a great deal of analysis paralysis among users, and they just converted it into a credit.

The second benefit of combining MSDN with Azure has to do with the licenses included with MSDN. MSDN provides a great deal of software licenses, but they are only allowed to be used for development and testing, never for production. Lele said that one of the biggest advantages of using Azure over other cloud offerings is “MSDN license mobility, because it allows a developer to leverage MSDN benefits in the cloud. This is huge.” Microsoft allows these licenses to be installed onto Azure Virtual Machines.

This integration of MSDN with Azure has removed a raft of barriers to adoption for traditional Microsoft development shops. If you have MSDN, then you are wasting money if you do not do something on Azure, even if it is just your testing.

Azure helpers and must-haves
Azure has many constituent parts and services, but there will always be key programs or components that will make using the system to deliver better solutions easier and faster. SCVMM is almost always at the top of the list for any organization managing any non-trivial Azure or Windows Server implementation.