You are previewing Developing Cloud Applications with Windows Azure™ Storage.
O'Reilly logo
Developing Cloud Applications with Windows Azure™ Storage

Book Description

Get the focused, pragmatic guidance you need to build professional cloud applications using Windows Azure Storage. This is one of the few books centered around Storage capabilities, and the author provides essential, expert coverage of the four key services - BLOB, tables, queues, and drives. Developers will gain hands-on insights, including detailed sections on business use cases and guidance for choosing the right storage option for the job.

  • Provides architectural and programming guidance to professional developers and architects proficient with Microsoft Visual Studio, C#, and LINQ

  • Illuminates when and how to use BLOB storage, table storage, queues, and Windows Azure Drive to build, host, and scale applications in Microsoft-managed datacenters

  • Presents business-case context for choosing the right service for your scenario, e.g. readers will compare relational tables to Windows Azure tables to understand benefits and tradeoffs

  • Table of Contents

    1. Dedication
    2. Foreword
    3. Introduction
      1. Who should read this book
        1. Assumptions
      2. Who should not read this book
      3. Organization of this book
      4. Conventions and features in this book
      5. System requirements
      6. Code samples
        1. Installing the code samples
        2. Using the code samples
      7. Acknowledgments
      8. Errata & book support
      9. We want to hear from you
      10. Stay in touch
    4. I. Architecture and use
      1. 1. Understanding data storage
        1. Database types
          1. Flat file
          2. File-based relational databases
          3. Relational
          4. Hierarchical
          5. Network
          6. Federated
          7. NoSQL (Not Only SQL)
        2. Data storage types
          1. Blobs
          2. Tables
          3. Queues
        3. Conclusion
      2. 2. Windows Azure data storage overview
        1. Feature-rich data storage for almost any application
        2. Data storage abstractions
          1. Blobs
          2. Tables
          3. Queues
        3. Windows Azure data centers
        4. Storage topology
        5. Failure management and durability
          1. Front-end layer failure mitigation
          2. Partition layer failure mitigation
          3. Distributed File System layer failure mitigation
        6. Fault and upgrade domains
          1. Fault domains
          2. Upgrade domains
        7. Replication, geo-replication, and reliability
        8. Dynamic scalability
        9. RESTful APIs
        10. Software development kits
        11. Pricing
        12. Analytics and metrics
        13. Conclusion
      3. 3. Windows Azure data storage accounts
        1. Set up your Windows Azure subscription
        2. IDs, subscriptions, and storage accounts
        3. Subscription certificates for authentication
        4. Primary and secondary access keys
        5. Service management API
          1. Data storage service management URL
          2. HTTP request headers
          3. Certificate authentication
          4. Create a new storage account
          5. Retrieve account properties
          6. Update account properties
          7. Retrieve storage account keys
          8. Regenerate storage account keys
          9. Delete storage accounts
          10. HTTP and data storage return codes
        6. Affinity groups
        7. Storage emulator
        8. Multi-tenancy
          1. Separate Windows Azure subscription per tenant
          2. One subscription, separate storage accounts per tenant
          3. One subscription, one storage account, separate blob containers, tables, and queues per tenant
          4. One subscription, one storage account, shared blob containers, tables, and queues
        9. Conclusion
      4. 4. Accessing Windows Azure data storage
        1. Authentication
          1. Constructing the signature
        2. The Windows Azure SDK for the .NET Framework
          1. Connection string formats
        3. Segmented reads
          1. Blob container list continuation tokens
          2. Queue list continuation tokens
          3. Blob storage continuation
          4. Table storage continuation HTTP headers
          5. Windows Azure client library support for continuation tokens
        4. Cloud reliability concerns
          1. Performance targets
          2. Failure conditions and strategies for recovery
          3. Recovery code
          4. Failure mitigation strategies
          5. The transient fault handling application block
        5. Conclusion
    5. II. Blobs, tables, and queues
      1. 5. Blobs
        1. Blob basics
          1. Block blobs
          2. Page blobs
        2. Blob containers
        3. Blob addressing
        4. Business use cases
        5. Blob storage structure
        6. Navigating blob container hierarchies
        7. Storage Client library blob types
        8. Container and blob naming rules
        9. Performing create, read, update, and delete blob operations
          1. Blob container security
          2. Anonymous (public) read-only blob access
            1. Creating the blob container
            2. Listing storage account containers
          3. Setting blob container permissions
        10. Shared Access Signatures and shared access policies
          1. Shared Access Signature
          2. Creating a shared access policy
          3. Applying a shared access policy to a blob container
          4. Storing access policies
          5. Revoking SAS permissions
        11. Blob attributes and metadata
        12. Conditional operations
          1. Conditional operations using REST
          2. Conditional operations using the Windows Azure client library
            1. Conditional reads
            2. Conditional updates
        13. Blob leases
        14. Using block blobs
        15. Using page blobs
        16. Blob snapshots
          1. Creating the original blob
          2. Creating the blob’s snapshot
          3. Listing snapshots
          4. Deleting snapshots
        17. Continuation tokens and blobs
        18. Conclusion
      2. 6. Tables
        1. Table basics
        2. Table storage structure
        3. Table addressing
        4. Entity properties
        5. Entity partitions
          1. PartitionKey
          2. RowKey
          3. Timestamp
          4. Custom properties
          5. Entity Group Transactions
        6. Table and property naming rules
          1. Windows Azure client library table types
        7. Visualizing table entities
        8. Creating tables
        9. The Table service and the Open Data Protocol
        10. Serializing and deserializing entities with <span xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:pls="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:ssml="http://www.w3.org/2001/10/synthesis" xmlns:svg="http://www.w3.org/2000/svg" class="emphasis"><em>CloudTable</em></span>
        11. Data operation options
        12. Table queries
          1. Table queries by primary key
          2. Table queries using the RESTful API
          3. Table queries using the Windows Azure client library
        13. Table entity ordering
        14. Storing multiple entity types in a single table
        15. Selecting good partition keys
        16. Segmented queries and continuation tokens
        17. Cross-table consistency
        18. Table operation concurrency
          1. Optimistic concurrency
          2. Last update wins
          3. Pessimistic concurrency
        19. Conclusion
      3. 7. Queues
        1. Queue storage overview
        2. Business use cases
          1. Availability
          2. Load leveling
          3. Disjointed work
          4. Long-running work
          5. Distributed work
          6. Publish/subscribe messaging
        3. Queue addressing
          1. Creating a message queue
            1. Queue naming rules
          2. Posting a message into a queue
          3. Retrieving messages from a queue
            1. Pop receipts
          4. Peek messages
          5. Retrieving metadata
          6. Deleting messages
          7. Poison messages and handling
        4. Deleting a message queue
        5. Conclusion
    6. III. Analytics
      1. 8. Analytics, logging, and transaction metrics
        1. Request logging
        2. Metrics
          1. Transaction metrics
          2. Capacity metrics
        3. Enabling the analytics services via the REST interface
        4. Conclusion
    7. A. About the author
    8. Index
    9. About the Author
    10. Copyright