You are previewing Developing Applications for the Cloud on the Microsoft® Windows Azure™ Platform.
O'Reilly logo
Developing Applications for the Cloud on the Microsoft® Windows Azure™ Platform

Book Description

This book demonstrates how you can create from scratch a multi-tenant, Software as a Service (SaaS) application to run in the cloud by using the latest versions of the Windows Azure tools and the latest features of the Windows Azure platform.

Table of Contents

  1. Developing Applications for the Cloud on the Microsoft® Windows Azure™ Platform
  2. Foreword
  3. Preface
    1. Who This Book Is For
    2. Why This Book Is Pertinent Now
    3. How This Book Is Structured
    4. What You Need to Use the Code
    5. Who’s Who
  4. 1. The Tailspin Scenario
    1. The Tailspin Company
      1. Tailspin’s strategy
      2. The Surveys Application
      3. Tailspin’s Goals and Concerns
    2. The Surveys Application Architecture
  5. 2. Hosting a Multi-Tenant Application on Windows Azure
    1. Single-Tenant vs. Multi-Tenant
    2. Multi-Tenancy Architecture in Azure
    3. Selecting a Single-Tenant or Multi-Tenant Architecture
      1. Architectural Considerations
        1. Application Stability
        2. Making the Application Scalable
        3. Service Level Agreements
        4. The Legal and Regulatory Environment
        5. Handling Authentication and Authorization
      2. Application Life Cycle Management Considerations
        1. Maintaining the Code Base
        2. Handling Application Upgrades
        3. Monitoring the Application
        4. Using .NET Providers and Third-Party Components
        5. Provisioning for Trials and New Customers
      3. Customizing the Application
        1. URLs to Access the Application
        2. Customizing the Application by Tenant
      4. Multi-Tenant Data Architecture
        1. Protecting Data from Other Tenants
        2. Data Architecture Extensibility
        3. Data Architecture Scalability
      5. Financial Considerations
        1. Billing Customers
        2. Managing Application Costs
  6. 3. Accessing the Surveys Application
    1. DNS Names, Certificates, and SSL in the Surveys Application
      1. Web Roles in the Surveys Application
        1. Goals and Requirements
        2. Overview of the Solution
        3. https://tailspin.cloudapp.net
        4. http://tailspin.cloudapp.net
        5. Inside the Implementation
    2. Geo-Location
      1. Goals and Requirements
      2. Overview of the Solution
    3. Authentication and Authorization
      1. Goals and Requirements
      2. Overview of the Solution
      3. Inside the Implementation
      4. Protecting Session Tokens in Windows Azure
    4. Content Delivery Network
      1. The Solution
        1. Setting the Access Control for the BLOB Containers
        2. Configuring the CDN and Storing the Content
        3. Configuring URLs to Access the Content
        4. Setting the Caching Policy
    5. More Information
  7. 4. Building a Scalable, Multi-Tenant Application for Windows Azure
    1. Partitioning the Application
      1. The Solution
      2. Inside the Implementation
    2. On-Boarding for Trials and New Customers
      1. Basic Subscription Information
      2. Authentication and Authorization Information
        1. Provisioning a Trust Relationship with the Subscriber’s Identity Provider
        2. Provisioning Authentication and Authorization for Basic Subscribers
        3. Provisioning Authentication and Authorization for Individual Subscribers
      3. Geo Location Information
      4. Database Information
    3. Billing Customers
    4. Customizing the User Interface
    5. Scaling Applications by Using Worker Roles
      1. Example Scenarios for Worker Roles
        1. Triggers for Background Tasks
        2. Execution Model
        3. The MapReduce Algorithm
    6. Scaling the Surveys Application
      1. Goals and Requirements
      2. The Solution
      3. Inside the Implementation
        1. Using a Worker Role to Calculate the Summary Statistics
        2. The Worker Role “Plumbing” Code
        3. Testing the Worker Role
    7. References and Resources
  8. 5. Working with Data in the Surveys Application
    1. A Data Model for a Multi-Tenant Application
      1. Storing Survey Definitions
      2. Storing Tenant Data
      3. Storing Survey Answers
      4. Storing Survey Answer Summaries
      5. The Store Classes
        1. SurveyStore Class
        2. SurveyAnswerStore Class
        3. SurveyAnswersSummaryStore Class
        4. SurveySqlStore Class
        5. SurveyTransferStore Class
        6. TenantStore Class
    2. Testing and Windows Azure Storage
      1. Goals and Requirements
      2. The Solution
      3. Inside the Implementation
    3. Saving Survey Response Data
      1. Goals and Requirements
      2. The Solution
        1. Solution 1: The Delayed Write Pattern
        2. Solution 2: Writing Directly to BLOB Storage
        3. Comparing the Solutions
      3. Inside the Implementation
        1. Saving the Survey Response Data to a Temporary Blob
    4. Displaying Data
      1. Paging through Survey Results
        1. Goals and Requirements
        2. The Solution
          1. Paging with Table Storage
          2. Paging with Blob Storage
          3. Comparing the Solutions
        3. Inside the Implementation
          1. Maintaining the Ordered List of Survey Responses
          2. Implementing the Paging
      2. Session Data Storage
        1. Goals and Requirements
        2. The Solution
          1. Simplicity
          2. Cost
          3. Performance
          4. Scalability
          5. Robustness
          6. User Experience
          7. Security
        3. Inside the Implementation
      3. Displaying Questions
      4. Displaying the Summary Statistics
    5. Using SQL Azure
      1. Goals and Requirements
      2. The Solution
      3. Inside the Implementation
    6. References and Resources
  9. A. Updating a Windows Azure Service
    1. Options for Updating a Windows Azure Service
      1. Limitations When Updating a Windows Azure Service
        1. Updating Only the Configuration of a Service
        2. Redeploying a Service without Incurring Downtime
      2. Design Considerations for Maximizing Upgradability
      3. About Upgrade Domains and Fault Domains
        1. Fault Domains
        2. Upgrade Domains
      4. Using Upgrade Domains for In-Place Upgrades
      5. Using the Windows Azure Service Management API
        1. Accessing the Windows Azure Service Management API
        2. Performing Service Upgrades Using the Service Management API
        3. Using the Windows Azure Service Management API to Manage Scaling
  10. B. Debugging and Troubleshooting Windows Azure Applications
    1. Dependencies for Azure Applications and Projects
    2. Debugging Azure Applications Locally During Development
    3. Common Setup and Deployment Errors with Windows Azure
    4. Using Intellitrace with Applications Deployed to Windows Azure
    5. Using Windows Azure Diagnostics
      1. About Windows Azure Diagnostics
      2. Limitations of Windows Azure Diagnostics
      3. Using a Custom Tracing, and Debugging Agent
      4. Tools for Working with Windows Azure Diagnostics
      5. Configuring Diagnostics Using Configuration Files
      6. Using the Diagnostics API in a Windows Azure Application
        1. Configuring Diagnostics Using the API
        2. Activating Monitoring
        3. Generating Diagnostics Data Within the Application
        4. Transferring Diagnostics Data to Storage
    6. Resolving Permission Issues in Partial Trust Mode
    7. More Information
  11. Index
  12. About the Authors
  13. Copyright