Archive for April, 2010
Windows Azure Firestarter on Channel 9
A few weeks back there was a Windows Azure Firestarter event in Redmond, which I had the pleasure of speaking at. If you are after a short look at the platform, then this is a great place to start, with speakers such as Brad Calder and David Robinson. Unfortunately it doesn’t look like the lap around Steve Marx did is actually available yet, but I’ll update this post when it is.
The videos are now available for consumption on Channel 9. You can watch or click to the videos below.
Windows Azure FireStarter- Windows Azure Storage with Brad Calder
Windows Azure FireStarter- SQL Azure with David Robinson
Windows Azure FireStarter- Bui…for the Cloud with David Aiken
Windows Azure FireStarter- Migrating Applications to the Cloud with Mark Kottke
Windows Azure FireStarter- Panel Q&A
THIS POSTING IS PROVIDED “AS IS” WITH NO WARRANTIES, AND CONFERS NO RIGHTS EVER
Yorkshire Puddings Recipe
No this is not a post about some bizarre cloud methodology. Although it would be a really good name. So unless you are hungry, please move on.
Yorkshire Puddings are an English recipe, some people would say from Yorkshire, which is essentially a egg/flour batter baked in the over to produce a light and fluffy treat that can be eaten with a traditional meat and vegetable dinner.
They look like the pictures below, depending upon the size of pan/tray you use.

The recipe is easy.
- 4 eggs
- Milk
- Flour
- 1/2 cup of water
- Salt & Pepper
Steps
- Crack the eggs into a measuring jug. Note the measure, then pour them into a bowl and whisk them up until fluffy.
- Measure the same amount of milk as you had eggs, and then mix into the eggs.
- Measure the same amount of flour as you had eggs, and then mix into the egg/milk mixture.
- Add a little salt and pepper.
- Leave to stand for an hour.
- Select a tray. You can use anything with deepish sides. I use either a large oven tray, or muffin tins for individual ones. You can also use cake tins which makes a great sized pudding to put your entire dinner in.
- Pre-heat the oven and a suitable tray to 425F with a couple of good lugs of oil. It should cover the bottom of the tray.
- Add the 1/2 cup of water to the mixture & stir.
- With the oil nice and hot, pour some of the mixture into the tray, make sure you have poured mixture into the corners.
- Pop into the oven for 12-15 minutes.
- Serve with meat.
Enjoy.
THIS POSTING IS PROVIDED “AS IS” WITH NO WARRANTIES, AND CONFERS NO RIGHTS, EVEN IF YOU SEND A JAMBA JUICE VOUCHER
Design to fail
I was chatting to a customer earlier about a solution they had built for Azure. They had implemented a thingythangy that stored a few hundred requests in memory, before dumping it into a blob. My immediate reaction was – “What happens when your role gets recycled, do you loose the cached requests?”
Windows Azure does not have an SLA for restarting your service, but if it did it would be 100%. Restarting is just a reality. Hardware fails, OS’s get patched, etc. At some point you will be restarted, maybe with a warning, but maybe not.
This by the way is no different from when you run your service on the server under your desk. At some point it will get restarted, loose power or some other such calamity.
One thing you need to think about when writing good code for the cloud is how to deal with this. There are a few choices to think about:
Ignore it and carry on
My Dad used to say “nothing to see here, move along” – sometimes it really doesn’t matter. You can ignore some things that happen twice. As an example if you were counting web site hits, and extra “count” here or there isn’t really going to change the outcome or purpose, however if the action is generating a patients prescription, that extra Hydrocodone tablet will probably make a significant difference.
Write code to handle failure
Write code to detect if the action has already been completed as well as write code to recover in-complete actions. You can do things like:
- Check how many times a message has been dequeued – a message that has been dequeued more than once is either a poison message, or was the subject of a failure (or both.
- Check the eTag & timestamp on data from Windows Azure storage. Has it been updated recently, is the message you are trying to process older than the last update?
Essentially you are trying to write code that is idempotent. Idempotent code is code that can be executed multiple times without changing the outcome. There are a bunch of techniques which I’ll cover over the coming weeks (with code), but the bottom line is:
Your code will fail – make sure you handle that.
THIS POSTING IS PROVIDED “AS IS” WITH NO WARRANTIES, AND CONFERS NO RIGHTS, EVEN IF YOU SAY PLEASE