I have been really hungry lately to push myself technologically. I want to try new stuff and learn new things. Work is not satisfying that appetite. The solutions that I'm charged with providing aren't particularly new or novel, they're just the kinds of things that should already be in place. While thinking ahead to the new and novel, I'm so far from a place where I can do it.
Still, I've been thinking about ways to engage on my own time, and I'm pretty excited about where Windows Azure is going. That's the umbrella term for the cloud platform of the mothership. They recently announced all kinds of new stuff, and the pricing just keeps getting better. It's really great stuff.
Of course, I'm somewhat biased, but will freely say it wasn't always great stuff. My favorite project while at Microsoft was the reputation system we built for the MSDN/TechNet properties. It's the stuff that handles all of the scoring and virtual medals on user profiles (check out the points on this dude). We were the pioneers for our org to use Azure, before it was entirely ready. To say we encountered some issues is sort of an understatement, but we worked through them, and I believe we delivered a pretty awesome system.
It was a great project to build on the platform, because we had a number of moving parts that could generally work independently of each other. We used databases, queues and storage pieces for glue. In the event that any particular part needed more horsepower, it was just a matter of firing up more instances of it. I don't know what the traffic to the system's API was, but I believe it was at least nine digits a month.
In my little world of Web sites, I don't need that kind of scale, but the pricing is getting close to the point where it may still make sense to use it over conventional server rental. The dream is to not need to feed and care for a box, and to automate deployments. The cloud really frees you of all of the IT crap one might normally have to put up with, and it makes the old way seem like and archaic way to deliver software on the Internets. The idea that you need people to setup servers and maintain a network just seems crazy now.
I've got some experiments in mind that I'd like to try, in terms of building out some distributed components to satisfy my curiosity. Some of the limitations we had to live with when I was at Microsoft no longer exist. It's pretty exciting.
Boy that was fun.. It's amazing how resilient the system still is to this day. I look at all of the things that have come out for Azure since when we started and I still don't think I would change much from where we started. Keeping things disconnected and easily scaleable frees you up in so many ways down the road.