http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.

ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons Note: Not all of these need to be present in your http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons application, however, one that does not exhibit any of http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons these characteristics is probably not an ideal t. http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons http://aka.ms/AzPstrScalabilityV1LeftPaneBenefitsAnd3Reasons

PLAN AND DESIGN
A highly scalable application requires the use of speci c patterns and practices. Designing for optimal performance and scale-out is key. Use the patterns below to help you architect your solution and continually re ne your application.

BUILD AND DEPLOY
Cloud Services are built for scalability. Web and worker instances can be increased and decreased at will. Workloads can be distributed using messaging, such as queues or Service Bus Topics. Tables and blobs provide massive storage capacity and SQL Database supplies relational capabilities. Other services such as caching can be easily integrated into a service.

RUN AND TUNE
This phase contains the processes that re ne the application, keep it running, and enable scaling out (and in) as needed. Tuning your application takes time and requires instrumentation and monitoring.   It’s a good practice to continually assess the metrics and balance against running costs.

A key bene t of Windows Azure is creating highly scalable applications using Cloud Services.

Applications can shrink and stretch to accommodate changes in usage, removing the need for expensive on-premises hardware. A key strategy is to design in scale units, which are a base con guration of web and worker role instances with supporting services such as data stores and caching.

http://aka.ms/AzPstrScalabilityV1DesignScaleOut SCALE OUT WITH SCALE UNITS http://aka.ms/AzPstrScalabilityV1DesignScaleOut http://aka.ms/AzPstrScalabilityV1DesignScaleOut http://aka.ms/AzPstrScalabilityV1DesignScaleOut http://aka.ms/AzPstrScalabilityV1DesignScaleOut VS. http://aka.ms/AzPstrScalabilityV1DesignScaleOut http://aka.ms/AzPstrScalabilityV1DesignScaleOut http://aka.ms/AzPstrScalabilityV1DesignScaleOut http://aka.ms/AzPstrScalabilityV1DesignScaleOut Use more instances, not bigger hardware. Scale in http://aka.ms/AzPstrScalabilityV1DesignScaleOut and out using scale units that are easily duplicated http://aka.ms/AzPstrScalabilityV1DesignScaleOut and deployed. Scale units consist of a number of role http://aka.ms/AzPstrScalabilityV1DesignScaleOut instances and their support services. http://aka.ms/AzPstrScalabilityV1DesignScaleOut http://aka.ms/AzPstrScalabilityV1DesignScaleOut For example, a scale unit could be 3 web roles, 2 http://aka.ms/AzPstrScalabilityV1DesignScaleOut worker roles, 1 queue, and 2 SQL Database instances. http://aka.ms/AzPstrScalabilityV1DesignScaleOut http://aka.ms/AzPstrScalabilityV1DesignScaleOut
http://aka.ms/AzPstrScalabilityV1DesignDecoupledComm DECOUPLED COMMUNICATIONS http://aka.ms/AzPstrScalabilityV1DesignDecoupledComm http://aka.ms/AzPstrScalabilityV1DesignDecoupledComm http://aka.ms/AzPstrScalabilityV1DesignDecoupledComm http://aka.ms/AzPstrScalabilityV1DesignDecoupledComm http://aka.ms/AzPstrScalabilityV1DesignDecoupledComm http://aka.ms/AzPstrScalabilityV1DesignDecoupledComm http://aka.ms/AzPstrScalabilityV1DesignDecoupledComm http://aka.ms/AzPstrScalabilityV1DesignDecoupledComm http://aka.ms/AzPstrScalabilityV1DesignDecoupledComm Avoid tying up valuable resources by using an http://aka.ms/AzPstrScalabilityV1DesignDecoupledComm asynchronous decoupled programming method. Web http://aka.ms/AzPstrScalabilityV1DesignDecoupledComm role instances put autonomous messages into a http://aka.ms/AzPstrScalabilityV1DesignDecoupledComm queue for pickup by worker role instances, which http://aka.ms/AzPstrScalabilityV1DesignDecoupledComm continue the work. Throughput is controlled by the http://aka.ms/AzPstrScalabilityV1DesignDecoupledComm http://aka.ms/AzPstrScalabilityV1DesignDecoupledComm number of role instances producing and processing http://aka.ms/AzPstrScalabilityV1DesignDecoupledComm messages. Explore using Windows Azure Service Bus http://aka.ms/AzPstrScalabilityV1DesignDecoupledComm or Storage Queues. http://aka.ms/AzPstrScalabilityV1DesignDecoupledComm http://aka.ms/AzPstrScalabilityV1DesignDecoupledComm http://aka.ms/AzPstrScalabilityV1DesignDecoupledComm

http://aka.ms/AzPstrScalabilityV1DesignSaveState http://aka.ms/AzPstrScalabilityV1DesignSaveState SAVING STATE http://aka.ms/AzPstrScalabilityV1DesignSaveState http://aka.ms/AzPstrScalabilityV1DesignSaveState http://aka.ms/AzPstrScalabilityV1DesignSaveState http://aka.ms/AzPstrScalabilityV1DesignSaveState http://aka.ms/AzPstrScalabilityV1DesignSaveState http://aka.ms/AzPstrScalabilityV1DesignSaveState http://aka.ms/AzPstrScalabilityV1DesignSaveState http://aka.ms/AzPstrScalabilityV1DesignSaveState The durability of a web and worker role instance is http://aka.ms/AzPstrScalabilityV1DesignSaveState not assured, therefore its state (customer data, stage http://aka.ms/AzPstrScalabilityV1DesignSaveState in a work ow, etc.) must be saved externally. http://aka.ms/AzPstrScalabilityV1DesignSaveState http://aka.ms/AzPstrScalabilityV1DesignSaveState Save state to durable storage (Table, SQL Database, http://aka.ms/AzPstrScalabilityV1DesignSaveState Blobs), where other instances can resume the work. http://aka.ms/AzPstrScalabilityV1DesignSaveState http://aka.ms/AzPstrScalabilityV1DesignSaveState http://aka.ms/AzPstrScalabilityV1DesignSaveState
http://aka.ms/AzPstrScalabilityV1DesignChunkyNotChatty CHUNKY, NOT CHATTY http://aka.ms/AzPstrScalabilityV1DesignChunkyNotChatty http://aka.ms/AzPstrScalabilityV1DesignChunkyNotChatty http://aka.ms/AzPstrScalabilityV1DesignChunkyNotChatty http://aka.ms/AzPstrScalabilityV1DesignChunkyNotChatty http://aka.ms/AzPstrScalabilityV1DesignChunkyNotChatty http://aka.ms/AzPstrScalabilityV1DesignChunkyNotChatty http://aka.ms/AzPstrScalabilityV1DesignChunkyNotChatty http://aka.ms/AzPstrScalabilityV1DesignChunkyNotChatty http://aka.ms/AzPstrScalabilityV1DesignChunkyNotChatty http://aka.ms/AzPstrScalabilityV1DesignChunkyNotChatty http://aka.ms/AzPstrScalabilityV1DesignChunkyNotChatty http://aka.ms/AzPstrScalabilityV1DesignChunkyNotChatty http://aka.ms/AzPstrScalabilityV1DesignChunkyNotChatty Network calls require overhead for packet framing, http://aka.ms/AzPstrScalabilityV1DesignChunkyNotChatty serialization, processing, and so on. Rather than use http://aka.ms/AzPstrScalabilityV1DesignChunkyNotChatty "chatty" messages, batch them into fewer “chunky” http://aka.ms/AzPstrScalabilityV1DesignChunkyNotChatty http://aka.ms/AzPstrScalabilityV1DesignChunkyNotChatty packages. Note, however, that batching can increase http://aka.ms/AzPstrScalabilityV1DesignChunkyNotChatty latency and exposure to potential data loss. http://aka.ms/AzPstrScalabilityV1DesignChunkyNotChatty http://aka.ms/AzPstrScalabilityV1DesignChunkyNotChatty

Three reasons to create Windows Azure scalable applications:

DEMAND PEAKS Your app reaches thousands of users (or more) although usage varies, sometimes greatly. DISTRIBUTED USERS AND DEVICES Your users are spread out, even around the globe.

PARTITIONABLE WORKLOADS Your processes are divided into optimal-size loads of work, since cloud applications scale by adding capacity in chunks.

http://aka.ms/AzPstrScalabilityV1DesignRetryforFaultTol RETRY FOR FAULT TOLERANCE http://aka.ms/AzPstrScalabilityV1DesignRetryforFaultTol http://aka.ms/AzPstrScalabilityV1DesignRetryforFaultTol http://aka.ms/AzPstrScalabilityV1DesignRetryforFaultTol http://aka.ms/AzPstrScalabilityV1DesignRetryforFaultTol http://aka.ms/AzPstrScalabilityV1DesignRetryforFaultTol http://aka.ms/AzPstrScalabilityV1DesignRetryforFaultTol http://aka.ms/AzPstrScalabilityV1DesignRetryforFaultTol http://aka.ms/AzPstrScalabilityV1DesignRetryforFaultTol Transient errors and throttling are unavoidable in http://aka.ms/AzPstrScalabilityV1DesignRetryforFaultTol http://aka.ms/AzPstrScalabilityV1DesignRetryforFaultTol large-scale systems. Instead of simply failing the http://aka.ms/AzPstrScalabilityV1DesignRetryforFaultTol operation, implement a robust retry strategy across http://aka.ms/AzPstrScalabilityV1DesignRetryforFaultTol the application to provide resiliency against failures. http://aka.ms/AzPstrScalabilityV1DesignRetryforFaultTol Too many retries too quickly can add additional load, http://aka.ms/AzPstrScalabilityV1DesignRetryforFaultTol http://aka.ms/AzPstrScalabilityV1DesignRetryforFaultTol so also employ a “backo ” strategy that allows the http://aka.ms/AzPstrScalabilityV1DesignRetryforFaultTol resource to recover by waiting after http://aka.ms/AzPstrScalabilityV1DesignRetryforFaultTol multiple retries. http://aka.ms/AzPstrScalabilityV1DesignRetryforFaultTol http://aka.ms/AzPstrScalabilityV1DesignRetryforFaultTol

http://aka.ms/AzPstrScalabilityV1DesignCaching CACHING http://aka.ms/AzPstrScalabilityV1DesignCaching http://aka.ms/AzPstrScalabilityV1DesignCaching http://aka.ms/AzPstrScalabilityV1DesignCaching http://aka.ms/AzPstrScalabilityV1DesignCaching http://aka.ms/AzPstrScalabilityV1DesignCaching http://aka.ms/AzPstrScalabilityV1DesignCaching http://aka.ms/AzPstrScalabilityV1DesignCaching http://aka.ms/AzPstrScalabilityV1DesignCaching Windows Azure Caching improves performance by http://aka.ms/AzPstrScalabilityV1DesignCaching storing recently used data for immediate reuse. http://aka.ms/AzPstrScalabilityV1DesignCaching http://aka.ms/AzPstrScalabilityV1DesignCaching Application throughput and latency are typically http://aka.ms/AzPstrScalabilityV1DesignCaching bound by how quickly data and context can be http://aka.ms/AzPstrScalabilityV1DesignCaching retrieved, shared, and updated. http://aka.ms/AzPstrScalabilityV1DesignCaching http://aka.ms/AzPstrScalabilityV1DesignCaching http://aka.ms/AzPstrScalabilityV1DesignCaching
http://aka.ms/AzPstrScalabilityV1DesignHorzPartitioning HORIZONTAL PARTITIONING http://aka.ms/AzPstrScalabilityV1DesignHorzPartitioning http://aka.ms/AzPstrScalabilityV1DesignHorzPartitioning http://aka.ms/AzPstrScalabilityV1DesignHorzPartitioning http://aka.ms/AzPstrScalabilityV1DesignHorzPartitioning http://aka.ms/AzPstrScalabilityV1DesignHorzPartitioning http://aka.ms/AzPstrScalabilityV1DesignHorzPartitioning http://aka.ms/AzPstrScalabilityV1DesignHorzPartitioning http://aka.ms/AzPstrScalabilityV1DesignHorzPartitioning http://aka.ms/AzPstrScalabilityV1DesignHorzPartitioning As user data increases, the need for storage increases. http://aka.ms/AzPstrScalabilityV1DesignHorzPartitioning The database must be partitioned. This graphic shows http://aka.ms/AzPstrScalabilityV1DesignHorzPartitioning http://aka.ms/AzPstrScalabilityV1DesignHorzPartitioning a horizontal partition (also known as a shard) where http://aka.ms/AzPstrScalabilityV1DesignHorzPartitioning intact tables are separated into http://aka.ms/AzPstrScalabilityV1DesignHorzPartitioning individual databases. Each user’s data can be http://aka.ms/AzPstrScalabilityV1DesignHorzPartitioning http://aka.ms/AzPstrScalabilityV1DesignHorzPartitioning distributed to particular databases. SQL Database http://aka.ms/AzPstrScalabilityV1DesignHorzPartitioning instances can also be partitioned using federation. http://aka.ms/AzPstrScalabilityV1DesignHorzPartitioning You can create and delete databases very quickly. http://aka.ms/AzPstrScalabilityV1DesignHorzPartitioning

http://aka.ms/AzPstrScalabilityV1DesignFanOutQuery FAN-OUT QUERIES http://aka.ms/AzPstrScalabilityV1DesignFanOutQuery http://aka.ms/AzPstrScalabilityV1DesignFanOutQuery http://aka.ms/AzPstrScalabilityV1DesignFanOutQuery http://aka.ms/AzPstrScalabilityV1DesignFanOutQuery http://aka.ms/AzPstrScalabilityV1DesignFanOutQuery http://aka.ms/AzPstrScalabilityV1DesignFanOutQuery http://aka.ms/AzPstrScalabilityV1DesignFanOutQuery http://aka.ms/AzPstrScalabilityV1DesignFanOutQuery http://aka.ms/AzPstrScalabilityV1DesignFanOutQuery http://aka.ms/AzPstrScalabilityV1DesignFanOutQuery http://aka.ms/AzPstrScalabilityV1DesignFanOutQuery http://aka.ms/AzPstrScalabilityV1DesignFanOutQuery http://aka.ms/AzPstrScalabilityV1DesignFanOutQuery Database lookup logic is placed in a cloud service. To http://aka.ms/AzPstrScalabilityV1DesignFanOutQuery nd data, that cloud service determines the http://aka.ms/AzPstrScalabilityV1DesignFanOutQuery databases to query. The query is then fanned out to http://aka.ms/AzPstrScalabilityV1DesignFanOutQuery those databases. http://aka.ms/AzPstrScalabilityV1DesignFanOutQuery

Plan & Design Run & Tune

Build & Deploy

http://aka.ms/AzPstrScalabilityV1DesignVertAffinity VERTICAL AFFINITY http://aka.ms/AzPstrScalabilityV1DesignVertAffinity http://aka.ms/AzPstrScalabilityV1DesignVertAffinity http://aka.ms/AzPstrScalabilityV1DesignVertAffinity When many users access data simultaneously, tra c http://aka.ms/AzPstrScalabilityV1DesignVertAffinity becomes a problem as scale increases. Design your http://aka.ms/AzPstrScalabilityV1DesignVertAffinity processes to access exclusive partitions to minimize tra c and resource usage. http://aka.ms/AzPstrScalabilityV1DesignVertAffinity For example, assume databases are partitioned by http://aka.ms/AzPstrScalabilityV1DesignVertAffinity user. Ideally all operations that access a single user's data are routed to a speci c set of service instances. http://aka.ms/AzPstrScalabilityV1DesignVertAffinity Those instances access a single database partition holding all the user's data. http://aka.ms/AzPstrScalabilityV1DesignVertAffinity http://aka.ms/AzPstrScalabilityV1DesignVertAffinity

http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy CLIENTS http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy LOAD BALANCER http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy WEB ROLE INSTANCES http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy MESSAGING http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy WORKER ROLES http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy STORAGE http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy http://aka.ms/AzPstrScalabilityV1BuildAndDeploy SQL DATABASE TABLE STORAGE BLOB STORAGE
WORKER ROLE WORKER ROLE WORKER ROLE TYPE: X TYPE: Y TYPE: CACHE

http://aka.ms/AzPstrScalabilityV1RunVisibility http://aka.ms/AzPstrScalabilityV1RunVisibility http://aka.ms/AzPstrScalabilityV1RunVisibility VISIBILITY & MONITORING http://aka.ms/AzPstrScalabilityV1RunVisibility http://aka.ms/AzPstrScalabilityV1RunVisibility Strategically instrument the app to monitor potential bottlenecks. There are two kinds of monitoring: http://aka.ms/AzPstrScalabilityV1RunVisibility http://aka.ms/AzPstrScalabilityV1RunVisibility INTERNAL: Monitoring processes inside the system is essential to determine when additional scale-out is http://aka.ms/AzPstrScalabilityV1RunVisibility needed. http://aka.ms/AzPstrScalabilityV1RunVisibility EXTERNAL: Monitor the performance from outside the http://aka.ms/AzPstrScalabilityV1RunVisibility application to ensure service performance is within http://aka.ms/AzPstrScalabilityV1RunVisibility acceptable ranges.

http://aka.ms/AzPstrScalabilityV1RunScale http://aka.ms/AzPstrScalabilityV1RunScale http://aka.ms/AzPstrScalabilityV1RunScale SCALE: BIGGER, BETTER, FASTER http://aka.ms/AzPstrScalabilityV1RunScale With visibility into the app, you can control scale with more precision. To automate, a separate prohttp://aka.ms/AzPstrScalabilityV1RunScale cess monitors the system's vital signs. When a http://aka.ms/AzPstrScalabilityV1RunScale threshold is crossed a new scale unit is deployed. When a lower threshold is crossed, a scale unit can http://aka.ms/AzPstrScalabilityV1RunScale be removed. http://aka.ms/AzPstrScalabilityV1RunScale http://aka.ms/AzPstrScalabilityV1RunScale http://aka.ms/AzPstrScalabilityV1RunScale
WEB ROLE(S) WORKER ROLE(S) STORAGE

http://aka.ms/AzPstrScalabilityV1RunAutomation http://aka.ms/AzPstrScalabilityV1RunAutomation AUTOMATION: SCRIPT FOR SUCCESS http://aka.ms/AzPstrScalabilityV1RunAutomation Maintaining a running, highly scaled application http://aka.ms/AzPstrScalabilityV1RunAutomation involves repeating operations on a regular basis. http://aka.ms/AzPstrScalabilityV1RunAutomation Concurrently develop a library of scripts that can be http://aka.ms/AzPstrScalabilityV1RunAutomation run on multiple deployments when needed. You can manage Windows Azure services with the Service http://aka.ms/AzPstrScalabilityV1RunAutomation Management API. http://aka.ms/AzPstrScalabilityV1RunAutomation

http://aka.ms/AzPstrScalabilityV1RunLoadTest LOAD TESTING: GETTING LOADED http://aka.ms/AzPstrScalabilityV1RunLoadTest Load test the system with both stress tests and by http://aka.ms/AzPstrScalabilityV1RunLoadTest simulating real-life usage. Vary the load size to http://aka.ms/AzPstrScalabilityV1RunLoadTest avoid surprises! Ensure that responsiveness meets http://aka.ms/AzPstrScalabilityV1RunLoadTest user requirements, and that the entire system is resilient. http://aka.ms/AzPstrScalabilityV1RunLoadTest http://aka.ms/AzPstrScalabilityV1RunLoadTest http://aka.ms/AzPstrScalabilityV1RunLoadTest

!

http://aka.ms/AzPstrScalabilityV1Title Scaling Applications Using Windows Azure Cloud Services
© 2013 Microsoft Corporation. All rights reserved. Created by the Windows Azure Team Email: AzurePoster@microsoft.com Part no. 098-117613

Like it? Get it. http://gettag.mobi