I bought Roger Jennings' Cloud Computing with the Azure Services Platform because it was the first book to cover Windows Azure and SQL Azure from a .NET/Visual Studio developer's perspective. (It published on October 5, 2009, more than a month before Microsoft's Professional Developer (PDC) 2009 conference.) I wanted to have a basic knowledge of Azure's architecture, development and cloud operating systems (called "fabrics"), and programming techniques with Visual Studio 2008 so I could better understand the new features and enhancements planned for the November 2009 Community Technical Preview (CTP). Windows Azure and SQL Azure were the subject of many highly technical PDC 2009 sessions. I wasn't disappointed.
The book's Part I starts with cloud-computing definitions and answers the most common question, "What is cloud computing?" Chapter 2 provides an overview of the architecture of Microsoft's new data centers and the details of how the specialized hardware and Azure Production Fabric combine to provide high availability, deliver reliability through replication, and enable automatic scale-up (and scale-down) in response to the load on hosted applications. Roger explains how Windows Azure's data center architecture groups computing and storage hardware into Upgrade and Failure domains so that operating system modifications can be applied and failed hardware substituted without hosted application downtime. Chapter 3 covers Azure's operating system and hypervisor that's based on a modified version of Windows Server 2008, as well as the lifecycle of an Azure application and how Azure implements multi-tenancy, a requirement for economical cloud computing. I found this background helped me understand Chapter 4's description of how and why Windows Azure's basic data store uses highly scalable, RESTful entity-attribute-value (EAV) tables rather than relational tables, and containers of individually addressable binary large objects (blobs) instead of a conventional, hierarchical file system.
Chapter 4's sample applications showed me how to write C# code for VS 2008's templated ASP.NET Worker Roles to manipulate tables and blobs as .NET 3.5 objects. This requires a reference to the Windows Azure SDK's StorageClient library, which enables using the on-premises framework provided by the Development Fabric and Storage features, as well as the production infrastructure. Creating accounts with the Windows Azure Developer Portal for testing cloud storage with local Worker Roles and deploying the finished project to a production data center followed. The Developer Portal has changed since Azure moved from free CTP to paid status on January 4, 2010, but Roger's December and January blog posts (announced in the publisher's online forum for the book) describe the differences in detail.
Security is the chief concern of CIOs and CISOs when considering cloud data storage and compute operations for confidential information. Part II has chapters that describe how to use HTTPS for encryption in transmission and write code with the .NET System.Cryptography namespace and AES for storage encryption. Chapter 5 also covers Azure's SAS 70 and ISO/IEC 27001:2005 audits and certificates. Chapter 6 takes you through the process of implementing ASP.NET authentication and role management for Azure Worker roles. Chapter 7 explains how to make Azure tables more scalable, use entity group transactions and display table data in grids. Chapter 8 introduces you to Worker Roles and Azure queues. Part III covers what were .NET Services when the book was written but morphed to the Azure AppFabric last November. The publisher (Wrox) promises that online updates will cover new Access Control System (ACS) and Service Bus features.
The change from SQL Server Data Services, which delivered EAV tables from SQL Server, to the relational SQL Azure service occurred after Roger wrote the book, so Chapters 12 and 13 about the initial SQL Azure implementation were made available online in *.doc format. According to Roger's blog, these chapters will updated to PDF files based on the January 2010 production version in February.
Windows Azure and SQL Azure were a moving target when Roger wrote the book, but I found the storage-based applications worked for me after downloading updated code from the book's website. Amazon shows books about Azure from O'Reilly and Manning, which cover the released version, won't be available until May or late July 2010. Roger's book gave me a jumpstart at programming Azure apps and eased adoption of post-production features. I recommend this book highly.