« Using Windows Azure PowerShell Sample to Investigate Issues with Cycling Roles | Main | Windows Azure deployment – did you forget to pack your DLLs? »

February 09, 2010

Guidelines for Specifying Windows Azure OS

Few days ago Windows Azure announced version 1.1 of Windows Azure OS and judging by how fast the announcement of Operating System Versioning in Windows Azure picked up on Twitter month and a half ago, I think the interest in the feature will be quite high. In this post I would like to give you some more details on what to look for, when selecting Windows Azure OS version.

Why versioning Windows Azure OS in first place?

The reason Windows Azure gives you the option to specify the OS for your guest VM is quite simple – you should be able to test your application before the OS it is running on gets updated. Although the believe is that minor updates of the OS should not break applications (and this may be the case in majority of the cases) there is still the risk that something may not be working after the upgrade. This problem becomes more severe when major upgrades come into play – then you need to have this option for sure.

Of course there is also the other camp – what about bug fixes and security updates for the OS? It is a fair point that those are important too, but here is the question to ask: “Would you rather have application that doesn’t work and is secure or have application that works but is insecure?” There is no right answer for that. Or I would rather say, the right answer is: “I would like to have application that is secure and works.”

Having in mind that Windows Azure OS is still quite “young”, giving the control to the customer may not be such a bad idea. The best approach though would be to have at least the option to choose some level of auto-upgrade (on a patch level or minor version level). Of course this will come soon as the team recognizes the need for that.

How to specify Windows Azure OS Version?

As you can read from the MSDN documentation you can set the osVersion attribute in the service configuration (CSCFG) file if you want to specify the Windows Azure OS Version for your VM. In order to find out what are the possible values for osVersion attribute you need to look at the article specific to the OS version you want. The best starting point is the OS/SDK Compatibility Matrix - all Windows Azure OS versions are listed in the navigation tree under that article.

 

image

 

The osVersion attribute accepts values in the following format:

 

WA-GUEST-OS-M.m_YYYYMM-nn

 

Where:

  • WA-GUEST-OS is a fixed string
  • M.m are the major and minor versions
  • YYYY is the year
  • MM is the month
  • and nn is a sequence number used to differentiate releases within a month if necessary

 

This string is mapped to user friendly string with the following format:

 

Windows Azure Guest OS M.m (Release YYYYMM-nn)

 

Where all the letters have the same meaning as above. Examples for osVersion attribute value and friendly name are:

 

WA-GUEST-OS-1.0_200912-01
Windows Azure Guest OS 1.0 (Release 200912-01)

 

What happens if you don’t specify Windows Azure OS Version?

There are several options to update the CSCFG file and hence to specify the osVersion attribute in it. However, if you don’t specify OS Version in your CSCFG file a “default” version will be selected for you, and osVersion attribute will be added to your service configuration file. This happens in the following cases (either through the Portal UI or through the management APIs):

  • When you create new deployment
  • When you change your service configuration
  • When you upgrade deployment (see below for this one!)

Upgrade deployment is a special case tough, because you can upgrade the whole service or just one specific role. If you upgrade the whole service the behavior is the same as for new deployment and change of configuration. If you upgrade only particular role from the service then your OS version will not be changed. The reason for that is that OS version applies to the whole service, and not to a particular role.

What “default” means is up to Windows Azure team to decide. In general the goal is to have the latest version as default but this is not guaranteed.

Other things to watch for when specifying Windows Azure OS Version

Besides the security patches and bug fixes there is one more thing quite important to watch for, when specifying OS version for your VM. This is the OS/SDK compatibility as described in the MSDN article Windows Azure OS Versions and SDK Compatibility Matrix.

Sometimes features exposed through the SDK may need specific OS in order to work – good example for this is XDrive that was released with the latest SDK. If for example you want to use XDrive in your application you need to target Windows Azure OS 1.1 because it will not work on the earlier version.

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a0105356030d9970b0120a87c2a37970b

Listed below are links to weblogs that reference Guidelines for Specifying Windows Azure OS:

Comments

Feed You can follow this conversation by subscribing to the comment feed for this post.

Chris

Thanks for the information... I have some followup questions in the Azure Forums here: http://social.msdn.microsoft.com/Forums/en-US/windowsazuredevelopment/thread/40db41eb-d3c8-4d42-bad0-f270a31924c7

It would be nice to have someone from your team look into that and possibly reply

ToddySM

Hey Chris,

I replied to your forum post. Let me know if you have any additional questions.

Post a comment

Comments are moderated, and will not appear on this weblog until the author has approved them.

If you have a TypeKey or TypePad account, please Sign In