preface xix
acknowledgments xxi
about this book xxiv
author online xxvi
about the authors xxvii
about the cover illustration xxix

Part 1 Welcome to the cloud

1 Getting to know Windows Azure
1.1 What’s the Windows Azure platform?
1.2 Building your first Windows Azure web application
1.3 Putting all the Azure pieces together
1.4 Storing data in the cloud with Azure
1.5 Why run in the cloud?
1.6 Inside the Windows Azure platform
1.7 Summary
2 Your first steps with a web role
2.1 Getting around the Azure SDK
2.2 Taking Hello World to the next level
2.3 Deploying with the Azure portal
2.4 Summary

Part 2 Understanding the Azure service model

3 How Windows Azure works
3.1 The big shift
3.2 Windows Azure, an operating system for the cloud
3.3 The Fabric Controller
3.4 The service model and you
3.5 It’s not my fault
3.6 Rolling out new code
3.7 The bare metal
3.8 The innards of the web role VM
3.9 Summary
4 It’s time to run with the service
4.1 Using the Windows Azure Service Management API
4.2 Defining your service
4.3 Setting up certificates in Windows Azure
4.4 Summary
5 Configuring your service
5.1 Working with the service configuration file
5.2 Handling configuration at runtime
5.3 Configuring non-application settings
5.4 Developing a common code base
5.5 The RoleEnvironment class and callbacks
5.6 Summary

Part 3 Running your site with web roles

6 Scaling web roles
6.1 What happens to your web server under extreme load?
6.2 How the load balancer distributes requests
6.3 Session management
6.4 Cache management
6.5 Summary
7 Running full-trust, native, and other code
7.1 Enabling full-trust support
7.2 FastCGI in Windows Azure
7.3 External processes in Windows Azure
7.4 Calling native libraries with P/Invoke
7.5 Summary

Part 4 Working with BLOB storage

8 The basics of BLOBs
8.1 Storing files in a scaled-out fashion is a pain in the NAS
8.2 A closer look at the BLOB storage service
8.3 Getting started with development storage
8.4 Developing against containers
8.5 Configuring your application to work against the live service
8.6 Summary
9 Uploading and downloading BLOBs
9.1 Using the REST API
9.2 Managing BLOBs using the StorageClient library
9.3 Downloading BLOBs
9.4 Integrating BLOBs with your ASP.NET websites
9.5 Using local storage with BLOB storage
9.6 Copying BLOBs
9.7 Setting shared access permissions
9.8 Summary
10 When the BLOB stands alone
10.1 Hosting static HTML websites
10.2 Hosting Silverlight applications in BLOB storage
10.3 Using BLOB storage as a media server
10.4 Content delivery networks
10.5 Summary

Part 5 Working with structured data

11 The Table service, a whole different entity
11.1 A brief overview of the Table service
11.2 How we’d normally represent entities outside of Azure
11.3 Modifying an entity to work with the Table service
11.4 Partitioning data across lots of servers
11.5 Developing with the Table service
11.6 Doing CRUDy stuff with the Table service
11.7 Summary
12 Working with the Table service REST API
12.1 Performing storage account operations using REST
12.2 Authenticating requests against the Table service
12.3 Modifying entities with the REST API is CRUD
12.4 Batching data
12.5 Querying data
12.6 Summary
13 SQL Azure and relational data
13.1 The march of SQL Server to the cloud
13.2 Setting up SQL Azure
13.3 Size matters
13.4 How SQL Azure works
13.5 Managing your database
13.6 Migrating an application to SQL Azure
13.7 Limitations of SQL Azure
13.8 Common SQL Azure scenarios
13.9 Summary
14 Working with different types of data
14.1 Static reference data
14.2 Storing static reference data with dynamic data
14.3 Joining dynamic and infrequently changing data together
14.4 Summary

Part 6 Doing work with messages

15 Processing with worker roles
15.1 A simple worker role service
15.2 Communicating with a worker role
15.3 Common uses for worker roles
15.4 Working with local storage
15.5 Summary
16 Messaging with the queue
16.1 Decoupling your system with messaging
16.2 Working with basic queue operations
16.3 Working with messages
16.4 Understanding message visibility
16.5 Patterns for message processing
16.6 Summary
17 Connecting in the cloud with AppFabric
17.1 The road AppFabric has traveled
17.2 Controlling access with ACS
17.3 Example: A return to our string-reversing service
17.4 Connecting with the Service Bus
17.5 Example: Listening for messages on the bus
17.6 The future of AppFabric
17.7 Summary
18 Running a healthy service in the cloud
18.1 Diagnostics in the cloud
18.2 Diagnostics in the cloud is just like normal (almost)
18.3 Configuring the diagnostic agent
18.4 Transferring diagnostic data
18.5 Using the service management API
18.6 Better together for scaling
18.7 Summary