Register - Login
 

MSDN Flash Podcast - May 2009

Minimize

MSDN Flash Summary Article - May 2009

Minimize

From: http://www.microsoft.com/uk/msdn/flash/20090506.htm 

Building an application in the cloud

As a lone software developer starting out on new projects, I find myself continually thinking about scalability. It’s obviously going to be out of reach, right? To scale, surely I’ll need a team of hundreds, a warehouse full of hardware, some superbly implemented applications and some really sophisticated system-level software to make everything work.

But this is where “the cloud” comes along, an example of which is Microsoft’s Windows Azure. What Azure provides is a virtual hosting environment and some new scalable storage tools – it provides a runtime to take standard ASP.NET code and to help it hugely scale.

To test it out, I took Microsoft’s CTP tools from last October and started on a new project – www.stacka.com. Stacka is a website designed to hold pictures of books, dvds, games, etc – anything you can stack and show off. Obviously I knew I was on to something big - a site at the heart of web 4.0 - so I knew I had to make it scalable.

- At the front of Stacka I placed a normal ASP.NET web app using the Ajax Control Toolkit to add some visual effects and using normal C# class libraries to provide custom controls and front end logic. This is hosted as a “web role” in Azure – it’s available on one or more servers in a huge data center somewhere in Microsoft. When Stacka grows and gets quintillions of hits, then all I’ll need to do is alter my Azure configuration to allow more instances of this web role to run – it’ll be up to Microsoft to then provide the hardware to make this happen.

- To keep the UI fast and responsive, I kept this UI as light as I could – no image manipulation, no text indexing, no web service hits or email notifications are ever done direct from the UI. Instead I have some worker processes – “worker roles” in Azure speak - that run in the background doing all these cpu intensive tasks. These are basically just C# command line apps – they are batch job processors. Again, as Stacka grows all I need to do to scale is to alter my Azure configuration to allow more of these worker roles to run on more servers simultaneously.

- Finally, for storage Stacka had two main requirements. First it needed to store the uploaded stack photos and second it needed to store index information about its users and about their uploaded stacks. To achieve this Stacka uses the Azure Blob and Table stores – you can think of these as scalable alternatives to file systems and databases – providing relatively simple APIs onto very fast, very large storage areas. When one million stacka’s upload a hundred megabytes of stacks each, then this storage will just scale – no effort is required from me.

Stacka is just one example. You can also see what others are doing on Azure including CMS projects, web services and DLR code at Stacka’s twin www.clouddotnet.com, a directory of over 100 existing Azure web apps. You can also check out a more detailed article on how I built Stacka. Download the CTP and have a go today.

Stuart Lodge
Read Stuart's blog
http://www.cirrious.com/ 

Presentation Given To DevEvening April 2009

Minimize

Draft Paper on Microsoft Azure Development Experiences - 4th Feb 2009

Minimize
Date » 30 July, 2010    Copyright (c) 2010 cirrious  
Site skin inspired by Nina - thx!