PLAN AND DESIGN                                                                                                           ...
Upcoming SlideShare
Loading in …5

Windows azure scalability


Published on

Great Poster looking at the power of Windows Azure Cloud Service perfect for your teaching labs

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Windows azure scalability

  1. 1. PLAN AND DESIGN BUILD AND DEPLOY RUN AND TUNE A highly scalable application requires the use of specific patterns and practices. Cloud Services are built for scalability. Web and worker instances can be increased and This phase contains the processes that refine the application, keep it running, and Designing for optimal performance and scale-out is key. Use the patterns below to decreased at will. Workloads can be distributed using messaging, such as queues or enable scaling out (and in) as needed. Tuning your application takes time and requiresA key benefit of Windows help you architect your solution and continually refine your application. Service Bus Topics. instrumentation and monitoring.  Azure is creating highly 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. It’s a good practice to continually assess the metrics and balance against running costs.scalable applications usingCloud Services.Applications can shrink and SCALE OUT WITH SCALE UNITS SAVING STATEstretch to accommodatechanges in usage, removing VS.the need for expensive CLIENTS VISIBILITY & MONITORINGon-premises hardware. Use more instances, not bigger hardware. Scale in and out using scale units that are easily duplicated The durability of a web and worker role instance is not assured, therefore its state (customer data, Strategically instrument the app to monitor potential and deployed. Scale units consist of a number of stage in a workflow, etc.) must be saved externally. bottlenecks. There are two kinds of monitoring:A key strategy is to design role instances and their support services. Save state to durable storage (Table, SQL Database, INTERNAL: Monitoring processes inside the For example, a scale unit could be 3 web roles, 2 Blobs), where other instances can resume the scale units, which are a worker roles, 1 queue, and 2 SQL Database instances. system is essential to determine when additional scale-out is needed.base configuration of web EXTERNAL: Monitor the performance from outside DECOUPLED COMMUNICATIONS CHUNKY, NOT CHATTY the application to ensure service performance isand worker role instances within acceptable ranges.with supporting servicessuch as data stores and LOAD BALANCERcaching. Avoid tying up valuable resources by using an asynchronous decoupled programming method. Web role instances put autonomous messages into a queue for pickup by worker role instances, which Network calls require overhead for packet framing, continue the work. Throughput is controlled by the serialization, processing, and so on. Rather than use SCALE: BIGGER, BETTER, FASTER WEB WORKER STORAGE number of role instances producing and processing "chatty" messages, batch them into fewer “chunky” ROLE(S) ROLE(S) With visibility into the app, you can control scale messages. Explore using Windows Azure Service Bus packages. Note, however, that batching can WEB ROLE with more precision. To automate, a separate or Storage Queues. increase latency and exposure to potential data loss. INSTANCES process monitors the systems vital signs. When a threshold is crossed a new scale unit is deployed.Three reasons to create RETRY FOR FAULT TOLERANCE CACHING When a lower threshold is crossed, a scale unit can be removed.Windows Azure scalableapplications:DEMAND PEAKS Transient errors and throttling are unavoidable inYour app reaches thousands of users (or more) large-scale systems. Instead of simply failing the Windows Azure Caching improves performance byalthough usage varies, sometimes greatly. operation, implement a robust retry strategy across storing recently used data for immediate reuse. the application to provide resiliency against failures. Application throughput and latency are typicallyDISTRIBUTED USERS AND DEVICES Too many retries too quickly can add additional bound by how quickly data and context can be load, so also employ a “backoff” strategy that retrieved, shared, and updated. MESSAGINGYour users are spread out, even around the allows the resource to recover by waiting after AUTOMATION: SCRIPT FOR SUCCESSglobe. multiple retries. Maintaining a running, highly scaled applicationPARTITIONABLE WORKLOADS involves repeating operations on a regular basis.Your processes are divided into optimal-size FAN-OUT QUERIES HORIZONTAL PARTITIONING Concurrently develop a library of scripts that canloads of work, since cloud applications scale be run on multiple deployments when adding capacity in chunks. You can manage Windows Azure services with the WORKER ROLE WORKER ROLE WORKER ROLE Service Management API. Note: Not all of these need to be present in your application, however, one that does not exhibit any of these characteristics is probably not an ideal fit. WORKER ROLES As user data increases, the need for storage TYPE: X TYPE: Y TYPE: CACHE increases. The database must be partitioned. This graphic shows a horizontal partition (also known as a shard) where intact tables are separated into Database lookup logic is placed in a cloud service. individual databases. Each user’s data can be To find data, that cloud service determines the distributed to particular databases. SQL Database databases to query. The query is then fanned out to instances can also be partitioned using federation. ! those databases. You can create and delete databases very quickly. LOAD TESTING: GETTING LOADED Load test the system with both stress tests and by VERTICAL AFFINITY simulating real-life usage. Vary the load size to Plan & Design avoid surprises! Ensure that responsiveness meets user requirements, and that the entire system is resilient. Build & Deploy When many users access data simultaneously, traffic Run & Tune becomes a problem as scale increases. Design your processes to access exclusive partitions to minimize STORAGE traffic and resource usage. For example, assume databases are partitioned by user. Ideally all operations that access a single users data are routed to a specific set of service instances. Those instances access a single database partition holding all the users data. SQL DATABASE TABLE STORAGE BLOB STORAGE Scaling Applications Using Windows Azure Cloud Services Like it? Get it. © 2013 Microsoft Corporation. All rights reserved. Created by the Windows Azure Team Email: Part no. 098-117613