I read “Azure in Action” in November of 2010 (during my travel to/from PDC), but am just going over it again now. I’ve been dipping my toe in Azure for something like 15 months now, but dipping is as far as I get, because unless I make a concerted effort to write something for Azure, I have no professional requirement to do so, and that probably won’t change any time soon. Still, I’m trying to keep my knowledge of Azure relatively up to date. With new and rapidly evolving technology like Azure, this is usually accomplished by trying examples, reading blog posts, and attending talks by folks who are using Azure in their day jobs. Books can become obsolete very quickly, but I like to learn from books.
I really thought this was an excellent introduction to Azure for developers. The authors provided clear explanations and appropriate diagrams and coding examples where necessary, and I felt comfortable with the writing style. I would definitely recommend that a developer just starting with Azure read this book.
Section by section overview
Normally when I write these overviews I keep per-chapter notes while I’m reading the book, but since I read this book last year and am just reviewing what I’ve read before, I’m dropping down to a section by section overview. This book has 6 sections, which it calls parts: “Welcome to the Cloud”, “Understanding the Azure Service Model”, “Running Your Site with Web Roles”, “Working with BLOB Storage”, “Working with Structured Data”, and “Doing Work with Messages”.
Part 1: “Welcome to the Cloud” – I’m not sure this needs an overview, since the section is an overview. I will say that the 2 chapters on this are really great. They make up a succinct introduction to what Azure is, especially its architecture, and to how the typical developer would build and deploy an application to Azure. It has particularly good diagrams of what Azure is, and a very good coding example. Even though I’d been looking at Azure for more than a year before reading this book, I really liked the way this information was presented, and it helped solidify my understanding.
Part 2: “Understanding the Azure Service Model” – This section contains more overview and introduction, but that does make sense, considering how new Azure is. There is a nice overview of the Fabric Controller and service model, and how you and Azure manage your applications, sometimes automatically. Once deployed, cloud Azure manages your application instances, and it’s helpful to understand how it does this and what configuration options we need to include to ensure our application’s uptime. And then there is practical instruction on how to configure a real application to take advantage of the Azure architecture… good stuff.
Part 3: “Running your site with web roles” – This section covers web roles. Web roles are basically IIS processes… something that runs in the web server. Usually this is a web site. Anything that IIS7 supports should be runnable in a web role. This includes Asp.Net and PHP. There’s information on scaling out your application to support web load. Scaling out in Azure is a combination of coding practices that allow your application to run on multiple servers (like not saving session state on one server), and Azure configuration settings (like declaring how many instances of your web role you want to run). Because PHP can run in IIS, it can also run in Azure. In fact, I just read elsewhere that Drupal now runs in Azure. Other processes (think of a server-side image converter) can run in Azure and be called from your web role, which vastly expands the possibilities of what your web application can do.
Part 4: “Working with BLOB storage” – This section covers blob storage. Blob storage is persistent storage for any large data – think files. You can store images, text files, zip files, or even entire static html websites in blob storage and programmatically access this data. Blob storage even has a REST API, so with appropriate permissions set, you can directly access a “file” in blob storage via a URL. This section describes this in detail, and then shows how you access BLOBs in your applications and then from outside of Azure. Azure even has a CDN service for BLOBs.
Part 5: “Working with structured data” – This section is all about how you persist data in Azure. It covers Azure Table Storage, a no-sql key/value data store and SQL Azure, SQL Server in the cloud. This covers what each is, how you program to it and why you’d want to use one over the other.
Part 6: “Doing work with messages” – This section has chapters that cover worker roles – think services or simply non-IIS based applications, the Azure queue, AppFabric services, and the service management APIs. That’s a lot to include in one section. This is important stuff if you want to build a highly scalable cloud application. If you use these pieces properly, you can offload heavy duty processing into worker roles, seemlessly spin up new instances of your application without rewriting code or changing application configuration, and even communicate securely with off-Azure resources.