Digging into Azure

After a fantastic 1-day course on Azure led by Eric Nelson today, I decided to have a dig into an Azure VM and see how it all hangs together. So I built a basic Web Role (default Welcome to ASP.NET style) and uploaded it into Azure (obviously enabling Remote Desktop first and sorting my Certificates out between my laptop and the Azure Portal).

RDP connected first time using my testadmin account (you can’t use Administrator with Azure VMs). I expected to find a 20GB disk, but I found a 235GB C: drive, a 20GB D: drive and a 1GB E: drive. C: appears to have the directory structure that you would find when exploring the Local Store under the Azure Compute Emulator (AspNetTemp, directory, file, etc). I could even see the Local Storage Directory I created in VS2010. Not sure how Microsoft limit it to the 10MB I specified in VS2010 though. Got to assume also that this 235GB C: drive is thin provisioned.

Below you can see the output from a DIR on C:\Resources and from DISKPART.

All the usual Hyper-V services are running (time sync, shutdown, etc) when you look in Task Manager, along with some obvious extras for an Azure VM like CloudDrive and OSDiag.

OSDiag I assume is the service which creates the CSV files in D:\OSDiagnostics. These look like they contain a bunch of PerMon counters, I assume used by some sort of monitoring application inside of Microsoft to check on the health of each VM.

I also enabled Azure Connect on this deployment but didn’t install the Local Agent on my laptop when I first connected via RDP. This meant that the Azure Connect service was sitting in the Task Bar saying it had “limited connectivity”. Downloading and installing the Local Agent from the Azure Portal gave it a kick and it soon updated to “Connected” – which was pretty cool to watch.

Azure Connect seems to create a Point to Point Network Adapter, IPV6 enabled only too as Azure Connect only works over IPv6 IPSEC.

I like the way Microsoft have kept the “RedDog” name in too from the early days. Even the domain is called “reddog.microsoft.com”🙂

That’s all for now. I’m off to keep digging.

Waiting for role to start….

Finally I’ve decided that I need to catch up with the rest of the world and start investigating Windows Azure a little more. Armed with my free MSDN Azure subscription I’ve decided to run through the GuestBook sample included in the v1.3 of the Azure SDK.

The online help on MSDN is still a bit confusing, although it is still in beta. I did find myself going backwards and forwards between pages a lot trying to find the one missing piece of information. Still, after a little while my GuestBook application is happily running using the local storage emulator and I can upload and view images all I like.

Everything you need for Azure – http://msdn.microsoft.com/en-us/windowsazure/cc974146.aspx

This is where things start to go wrong.. as I decided to also play around with the beta of the VMRoles. So, getting side-tracked I created my VHD in Hyper-V and installed the Azure Integration Tools, disabled Updates, created the certificates, got the certificate thumbprint ID, etc.. (the certificate part is actually quite interesting as it introduces a lot of new PowerShell bits I hadn’t used before).

Uploading the VM took about 30mins, and most of that was (I assume) the integration into Azure itself as the upload of 7GB took about 4minutes. – http://msdn.microsoft.com/en-us/library/gg465385.aspx

So I decided to publish my GuestBook application to Azure, enabling Remote Desktop etc before doing so, importing certificates into Azure and all looks good so far …

After about 30mins though things start to go a little wrong …

And it’s been sat retrying ever since. Does it ever time out !? I think I might stick to one thing at a time now, get my application deployed then start to play with VMRoles!


Twitter killed my blog

Since I haven’t posted here in a year – I can only assume it’s because I have been using Twitter for a year now.. really must start to post some more articles on here. Is it too late for a New Year’s resolution…?

Super Jim

This is one of my favourite songs and is performed excellently by Jim Carey! So funny I had to post it.

Microsoft’s prefab datacenters

I want one…

Microsoft Gen 4 Datacenter POC

Microsoft Gen 4 Datacenter POC

IIS 7.0 Smooth Streaming Re-visited

It’s been a while since I visited Smooth Streaming but I’ve finally had some time to get it working again.

I encoded an AVI movie I had using Expression Encoder 3.0, generating me the required output of ISM, XAP, ISMV, ISMC, etc with all the different bit rates. These files were then uploaded to the two ECS VM’s. The good thing about Expression Encoder is you can tell it to produce a Silverlight player for your new streaming movie. So at this point I could play my movie locally using default.html. Cool.

My demo environment consists of a physical Microsoft Windows 2008 R2 server running 3 VM’s. ARR01 is my Parent Application Request Routing server and the target for the client browser. I also have a 2 node server farm comprised of the ECS01 and ECS02 VM’s.

Demo Environment

Demo Environment

Next thing I did was to configure my Server Farm.

Most of the default options were used when creating the Server Farm and under the Load Balance tab I changed the Load Balance Algorithm to be “request hash” and under Routing Rules I made sure that the options were set as in the image below.

Routing Rules

Routing Rules

I used these settings so that any JPG files were served direct from ARR01, more as a test of functionality than anything else for this demo.

I then enabled the Primary Disk Cache for ARR01, giving it 30GB of space.  I just kept all the other default options as I don’t have any specific requirements for Secondary Cache, etc for this demo. I also made sure the “Enable Disk Cache” check box was selected on the Server Farm Caching page.

URLRewrite is configured to route traffic to http://ServerFarm/{R:0} with a “Route to Server Farm” Action Type. This means that when I visit http://ServerFarm now IIS/ARR will route me to one of the two ECS servers. Load Balancing rules can be tweaked further at the Server Farm level or even with more URLRewrite rules.

Once I started to play my movie the cache started to fill up nicely and playing the movie from another source started to increase the “bandwidth saved” bar as shown below:



Very cool. What’s even cooler is I can choose to drain connections to either of the two ECS servers and make it unavailable for new requests. This then enabled me to add another 1GB RAM to the VM. Both clients playing the movie never noticed. I could then do the other ECS server in the same fashion. Easy maintenance without downtime. I could obviously have a 3rd node ready to introduce during a maintenance window if performance was an issue.

There’s a LOT of detail about how to configure what I’ve done on IIS.NET

PowerShell / Skype Fun !

There’s a world of possibilities with Skype and RSS feeds!
(please note that this only runs under x86 PowerShell and requires Skype to be installed obviously)

$xml = New-Object XML
$skype = New-Object -ComObject Skype4Com.Skype
$skype.currentuserprofile.moodtext = “BBC News Latest: “+($xml.rss.channel.item | sort pubDate -Desc)[0].title