A few things have happened over the last week or so that have got me looking, once again, at Windows Azure:
Firstly, there was an exciting release announced last week (I attended the webcast online from San Francisco, where the event happened to be taking place), prior to this week’s TechEd. Among the key features were:
- Support for Linux instances
- These will presumably be cheaper, given the lack of OS licensing costs
- Virtual Machine capability
- Web-site hosting that scales flexibly
- VPN support for private virtual network creation
- New cache clustering capability
- A nice new management portal (image below) and command-line admin tools
One additional piece of information I noticed that looked quite helpful was the ability to update web-sites by just uploading the modified files. A seemingly small detail, but one that will be appreciated by many, I suspect.
The other event that had me looking at Azure was the fact my 3-month trial period was coming to an end. I had less that two weeks left on it, and so if I wanted our Apollonian service to stay up, I needed to work out the best way to make this happen.
Thankfully, MSDN license benefits allowed me more than enough hosting capability that I didn’t (or shouldn’t) need to pay anything additional to host the service. The first hurdle was getting my MSDN subscription to be recognised by the system – I ended up finding out it had lapsed (!), so it needed to be recreated – but after that it was plain sailing to get my subscription added to the portal.
The second major hurdle – and the reason I ended up looking at Azure 1.7 (at least that’s the SDK version) more closely – was that I couldn’t just transfer my existing service across to be under the new subscription: I actually had to remove the existing service and redeploy the distribution to Azure to make that happen. And rather than just taking the existing project and redeploying it, I thought I might as well get some practice re-enabling an ASP.NET app to work with Azure.
Which meant I inadvertently got exposed to the fact that caching – something I mentioned in this previous post, which I’d apparently left off (but have now added to) the mobile & cloud series summary – has had a serious make-over in this release of Azure. Rather than relying on a centralised cache – which can apparently work out to be quite expensive – it’s possible to carve out a percentage of each instance’s resources to devote to caching. This seemed interesting, but as my service runs on extra-small instances (I know – what a cheap-skate ;-) there wasn’t much by way of resources to carve out and dedicate to caching.
So I ended up sticking to my existing caching approach – the basic 128MB cache that comes for free with my MSDN subscription – rather than increasing the instance size and sharing the load across them. What’s a little worrying is that the new preview management portal doesn’t show information on the former cache implementation at all, which presumably means at some point I’ll have to shift across to the new distributed cache model.
Moving the deployment across from one subscription to another did involve a somewhat scary moment: I had to stop and delete the existing deployment before I could create an equivalent deployment with the same DNS name under the new subscription. This resulted in about 10 minutes of down-time, but also a few nail-biting moments before I knew whether I’d even be able to claim “apollonian.cloudapp.net” under the new subscription (to avoid having to change the various client samples I’d written). Luckily it all worked out… the moral of the story is probably to avoid switching subscriptions, if at all possible (i.e. if you have MSDN, use that from the start rather than using the free trial, first).
I know I’ll need to overhaul the implementation prior to AU – if nothing else because there’s now a Release Candidate available for ASP.NET MVC 4 – but I’m figuring I’ll see if I can wait for VS 2012 to be released and update the project to use that at the same time.
Speaking of which, I’ve just installed the Windows 8 Release Preview and put the VS 2012 Release Candidate on it. I had to update the project for the Apollonian Viewer for WinRT to use a newer version of SharpDX (version 2.2.0) for it to work on this new version of the OS, but the source-code changes from my side were trivial (I had to remove one event handler and update the SystemStyles.xaml). I’ve posted more details – including the updated project – on the last post devoted to this topic.