David Chappell


Get the Feed! Subscribe

The Windows Azure Programming Model  
# Thursday, November 11, 2010
Writing an application for Windows Azure is much like writing one for Windows Server. But it isn't exactly the same. In fact,Windows Azure is different enough to qualify as having its own programming model.

I've written a Microsoft-sponsored white paper, available here, that describes the Windows Azure programming model at a high level. There's no code in the paper; instead, I've tried to explain the concepts that underlie the model. 

The paper lays out three rules that Windows Azure applications should follow:
  • A Windows Azure application is built from one or more roles.
  • A Windows Azure application runs multiple instances of each role.
  • A Windows Azure application behaves correctly when any role instance fails.
You don't absolutely have to follow all of these rules when you create a Windows Azure app. But if you don't, you probably won't be happy with how your app behaves--this isn't the familiar Windows Server world.

Getting a handle on this new programming model isn't hard, but it does require learning a few new things. As the Windows Azure platform gets more important, both in the cloud and on-premises, more and more apps will be built on it rather than on Windows Server. If you plan to build apps on Windows Azure--that is, if you plan to continue developing in the Microsoft environment--I encourage you to read this paper.

4 comments :: Post a Comment



Following link mentioned in the "For Further Reading" section is not working

Introducing the Windows Azure Platform: http://go.microsoft.com/fwlink/?LinkId=158011

The same article seems to be available at the following location as well:

I'll look into this, Manoj. Thanks for letting me know.

Hi David,

I enjoy reading your articles and you are really great at giving those critical overviews and grasps of where new technologies or products fit in. I also liked this article, but I think it is lacking a critical element that needs to be taken into consideration when designing Azure based apps. Pricing.

I spend the preconference day of Teched Berlin listening to Chris Auld, talk about most aspects of building Azure Apps. And it became clear how this is a new platform, in all the ways that you describe. But Chris also showed how decisions on e.g. choices between the 3 types of storage was made based on pricing. Same for use of other resources.

I don't really like that idea, and when it became clear I asked the question of how certain we can be, that Microsoft does not change the pricing scheme .... because that could mean rewriting parts of the apps if you really want to keep the same attractive costlevels.

I know ... I know ... Off course cost are a design factor today, but at least most of the costs are up front, for on-premise resources. (Servers, SW etc). And I think that cost are MORE of a design factor for the cloud designs that I have seen in detail. Working with excel might just be the most important tool for Cloud Architects... :-)

I just felt that, that part was lacking from your, otherwise good, article. And I would be curious to hear what your thoughts are on that?

Thanks for the kind words, Lars--I'm glad my work is useful for you. And I agree about the importance of pricing in designing Windows Azure apps. In fact, in the talks I give on Azure, I commonly make the point that designing an app that's cheap to run becomes as important as designing one that's reliable and scalable. Still, this paper focused on the three rules for building Azure apps, and so pricing wasn't directly relevant.

About your fear of future price changes: This is certainly an issue, but it's an issue with on-premises software, too. Microsoft could make upgrades very expensive once you've committed to a platform, for example, something application vendors like Oracle are good at. What holds them back is competition--notice how close Windows Azure's prices are to Amazon Web Services--something that's unlikely to go away.

And I love your idea that Excel skills are critical for cloud architects--this is a great observation!

Post a Comment

<< Home