Aug 16, 2010

Book Review: Programming Windows Azure

I recently read Programming Windows Azure by Sriram Krishnan (O’Reilly 2010).  The author works on the Windows Azure Program Management team and has great insight into Windows Azure.

The Good: The book starts with some interesting and important information about the Windows Azure infrastructure and operations.  While none of this information is too deep (technically), it is very useful for understanding the environment.  I believe this will be beneficial as the reader begins the architecture and creation of cloud applications.  The information is very easy to read, and while there is much more to learn and know, it will be a great help to get you started with Azure development.

After the environment discussion the author moves on to focus on the application configuration.  This feels like a very natural flow to setting up the configuration of your own applications.  There is also discussion about the local development environment (Development Fabric and Development Storage) which provides information about how to do cloud development without needing to deploy to the cloud and incur the related costs.  There are ample warnings, which really must be taken seriously, to not have this local development be the end all but to be sure that you actually deploy to the staging environment in the cloud for further testing and validation.

Next comes the meat of the book – the actual details on writing Windows Azure code!  There are samples of the creation of Web and Worker roles.  The purpose and typically usage scenarios for each of these is covered.  There is brief coverage of developing non managed applications (i.e. native and non .NET code).

The book includes a chapter with some details on the Management API – I wish that more was included here, but it is a pretty good introduction to the management capabilities.

A good portion of the book is focused on Windows Azure storage, with 5 chapters dedicated to the topic.  In this part of the book you will learn plenty about Table, Queue and Blob storage.

The final chapter gives a brief introduction to SQL Azure.  Not too much here and there is plenty more to learn and experiment with.

The Bad: There really is not much bad in this book (at least in my opinion)!  But there is one chapter I would have presented differently:

Chapter 12 – Building a Secure Backup System: I believe this chapter was intended to show some ‘real world’ work with Azure.  I found this to be an interesting chapter, but felt that it did not flow well with the rest of the book.  The first “issue” I have with it is that while it has a lot of code samples, the code samples are in Python.  It is very interesting to see an actual Azure application implemented in a non .NET language – but I doubt that the majority of the readers of this book will find that as useful as sticking to a managed language.  For myself, not being very familiar with Python, I found this much harder to read than the rest of the book.  I would have rather seen a the chapter written using C# (or VB.NET) and then included an appendix with other language implementations.  This would have been very interesting.  The second “issue” I have with the chapter is that it really takes the focus off of “the cloud”/Azure and instead the main theme is cryptography/security.  I find this a very interesting topic – and I have played around/implemented several of the concepts that are covered here.  I understand the authors desire to ensure that we don’t forget how important this is – but I feel it would have been better to list resources for further study on the subject and stay focused on the ‘nuts and bolts’ of Azure development.

Summary: Overall I was very happy with this book and highly recommend it.  It feels fairly ‘introductory’ to me, but I have been playing/working with Azure since it was initially announced at PDC in 2008, so I may not be the best to judge this.  I think it is a great place for someone wanting to get started with Windows Azure to spend some time.  Even with the time I have spent working with Azure I found several gems of information in the book and found it well worth my time to read it!

No comments:

Post a Comment