You are previewing Microsoft Azure: Enterprise Application Development.
O'Reilly logo
Microsoft Azure: Enterprise Application Development

Book Description

Straight talking advice on how to design and build enterprise applications for the cloud

  • Build scalable enterprise applications using Microsoft Azure

  • The perfect fast-paced case study for developers and architects wanting to enhance core business processes

  • Packed with examples to illustrate concepts

  • Written in the context of building an online portal for the case-study application

  • In Detail

    Microsoft's Azure platform has proved itself to be a highly scalable and highly available platform for enterprise applications. Despite a familiar development model, there is a difference between developing for Azure and moving applications and data into the cloud. You need to be aware of how to technically implement large-scale elastic applications. In this book, the authors develop an Azure application and discuss architectural considerations and important decision points for hosting an application on Azure.

    This book is a fast-paced introduction to all the major features of Azure, with considerations for enterprise developers. It starts with an overview of cloud computing in general, followed by an overview of Microsoft's Azure platform, and covers Windows Azure, SQL Azure, and AppFabric, discussing them with the help of a case-study.

    The book guides you through setting up the tools needed for Azure development, and outlines the sample application that will be built in the later chapters. Each subsequent chapter focuses on one aspect of the Azure platform—web roles, queue storage, SQL Azure, and so on—discussing the feature in greater detail and then providing a programming example by building parts of the sample application. Important architectural and security considerations are discussed with each Azure feature.

    The authors cover topics that are important to enterprise development, such as transferring data from an on-premises database to SQL Azure using SSIS, securing an application using AppFabric access control, blob and table storage, and asynchronous messaging using Queue Storage. Readers will learn to leverage the use of queues and worker roles for the separation of responsibilities between web and worker roles, enabling linear scale out of an Azure application through the use of additional instances. A truly "elastic" application is one that can be scaled up or down quickly to match resources to demand as well as control costs; with the practices in this book you will achieve application elasticity.

    Develop large scale elastic applications on the Microsoft cloud platform

    Table of Contents

    1. Microsoft Azure: Enterprise Application Development
      1. Microsoft Azure: Enterprise Application Development
      2. Credits
      3. About the Authors
      4. Acknowledgement
      5. Acknowledgement
      6. About the Reviewer
      7. Preface
        1. What this book covers
        2. What you need for this book
        3. Who this book is for
        4. Conventions
        5. Reader feedback
        6. Customer support
          1. Errata
          2. Piracy
          3. Questions
      8. 1. Introduction to Cloud Computing
        1. What is an enterprise application?
        2. What is cloud computing?
        3. Some benefits of cloud computing
        4. Some downsides of cloud computing
        5. Cloud computing infrastructure
        6. Cloudy skies ahead
        7. Is cloud computing "enterprisey" enough?
        8. Summary
      9. 2. The Nickel Tour of Azure
        1. Explaining Azure to the managers
        2. Windows Azure
          1. Compute service
          2. Storage service
            1. Blob Storage
            2. Table Storage
            3. Queue Storage
          3. Azure Fabric Agent and Controller
        3. SQL Azure
        4. Windows Azure platform: AppFabric
        5. Codename Dallas
        6. Development Fabric
        7. Considerations for the ASP.NET developer
        8. How are Azure costs calculated?
          1. Calculating Windows Azure pricing
          2. Calculating SQL Azure pricing
          3. Calculating AppFabric pricing
        9. Summary
      10. 3. Setting Up for Development
        1. Downloading the tools
        2. Configuring the local machine for development
        3. Installing Windows Azure tools and SDK
        4. Summary
      11. 4. Designing our Sample Application
        1. Project design
        2. Integrating application with cloud features
        3. Creating an Azure account
        4. Summary
      12. 5. Introduction to SQL Azure
        1. Overview of SQL Azure
          1. Manageability
            1. Managing SQL Azure
              1. Similarities
              2. Differences
          2. High availability
          3. Scalability
          4. Relational data model
          5. Familiar development model
          6. What's the same in SQL Azure?
            1. Data types
            2. Database objects
            3. Fully supported T-SQL commands
            4. Partially supported T-SQL commands
            5. SQL Server built-in functions
            6. Multiple active result sets
          7. What's different in SQL Azure?
            1. Number of databases
            2. Database objects
            3. Service Broker, SQL Browser, and DTC
            4. T-SQL commands
            5. System functions
            6. Data synchronization
        2. Security
        3. Development considerations
          1. Managing maximum size
        4. Management tools
          1. SQL Azure portal
          2. SSMS 2008 R2
          3. Project Houston
          4. Access 2010
        5. Managing databases, logins, and roles in SQL Azure
        6. Migrating schema and data
          1. Manually scripting objects and data
          2. SQL Azure Migration Wizard
          3. SQL Server Integration Services (SSIS)
            1. SQL Server Import and Export Wizard
            2. Creating packages from scratch
            3. DAC Packs
          4. BCP
        7. The Jupiter Motor's ERP system database and the Dealer Orders database
          1. SQL Azure portal
        8. Creating our database
        9. Summary
      13. 6. Azure Blob Storage
        1. Blobs in the Azure ecosystem
        2. Creating Blob Storage
        3. Windows Azure Content Delivery Network
        4. Blob Storage Data Model
        5. Blob Storage
          1. Representational State Transfer
          2. The Blob Storage API
          3. Working with containers using the REST interface
          4. Working with containers using the StorageClient library
          5. Working with blobs
        6. Summary
      14. 7. Azure Table Storage
        1. Table Storage versus database tables
        2. Some of the good stuff
        3. Limitations of Table Storage
        4. Adding Table Storage to an Azure account
        5. Accessing Table Storage
          1. Working with tables
          2. Working with entities
            1. Entity Group Transactions
        6. Choosing a PartitionKey
        7. Exception handling
          1. Retry on exceptions
          2. Exceptions on retry
          3. Concurrency conflicts
          4. Table errors and HTTP response codes
        8. Summary
      15. 8. Queue Storage
        1. The ins and outs of queues
          1. Reasons to use a queue
          2. Invisibility time and failover
          3. Special handling for binary data
        2. Working with queues
          1. Listing queues
            1. REST API
            2. Client library
          2. Creating queues
            1. REST API
            2. Client library
          3. Deleting queues
            1. REST API
            2. Client library
          4. Setting metadata
            1. REST API
            2. Client library
          5. Getting metadata
            1. REST API
            2. Client library
        3. Working with messages
        4. Summary
      16. 9. Web Role
        1. The role of the web
        2. Web roles, déjà vu, and ASP.NET
          1. Creating the solution and web role project
        3. Application diagnostics and logging in the cloud
        4. Jupiter Motors web role
          1. How do we get there? Here's our code!
            1. Additional stored procedures used by the web role
        5. Summary
      17. 10. Web Services and Azure
        1. Web services and WCF
        2. Securing WCF
        3. Jupiter Motors web service
        4. Creating a new WCF service web role
        5. Our WCF web services
          1. ERP service interface — IERPService.vb
            1. Service Contract
            2. Operation Contract
            3. Data Contract
            4. Using ADO.NET datasets
          2. ERP service implementation — ERPService.svc.vb
            1. LoadStartupData service function
            2. GetOrderStatusForOrder service function
            3. AddOrderStatusUpdateToQueue service function
            4. GetOrdersNotComplete, GetOrderStatuses, and CreateDataSetFromDataReader class functions
        6. DataTable "gotcha"
        7. Web Service Definition Language (WSDL) "gotcha"
        8. Summary
      18. 11. Worker Roles
        1. Worker role internals
        2. Uses of worker roles
          1. Externally facing worker roles
          2. Thread-pool pattern
        3. Managing worker roles
          1. Best practices
        4. The Jupiter Motors worker role
          1. Building the Jupiter Motors worker role
        5. Summary
      19. 12. Local Application for Updates
        1. Brief overview of the application
        2. JupiterMotorsERP local application
          1. Adding App.config code
        3. Testing our application
        4. Summary
      20. 13. Azure AppFabric
        1. Introduction to Azure AppFabric
        2. Access Control
          1. Authentication versus authorization
          2. Basics of Access Control configuration
          3. Requests and Simple Web Tokens
          4. Configuring Access Control for Jupiter Motors
            1. Configuring Azure AppFabric Portal
            2. Configuration tools
            3. Creating a Token Policy
            4. Configuring a Scope
            5. Configuring an Issuer
            6. Configuring a Rule
            7. Configuring a client application for Access Control
              1. Requesting the Token
            8. Using Access Control in a web service
        3. Service Bus
          1. Service Bus as message relay
          2. Service Bus as connection broker
        4. Summary
      21. 14. Azure Monitoring and Diagnostics
        1. Azure Diagnostics­ under the hood
        2. Enabling diagnostic logging
          1. Changing the location of the logging configuration
        3. Logging config data in our application
        4. Transferring and persisting diagnostic data
        5. Accessing stored data
        6. Summary
      22. 15. Deploying to Windows Azure
        1. Setting up hosted service in Windows Azure
          1. Setting Hosted Service identifiers
          2. Affinity Groups — geographically grouping services
        2. Preparation application for deployment
        3. Ready for deployment
        4. Changing live configuration
        5. Upgrading the deployment
        6. Running the deployment
        7. Summary
        8. Conclusion