Edwin Cheung Principal Program Manager China Cloud Innovation Centre Customer Advisory Team Microsoft Asia-Pacific Research and Development Group How to scale Windows Azure Application
4
Value Prop: (On-premise) Value Prop: Roll-your-own HA/DR/scale (IaaS) Value Prop: (PaaS) COST-EFFICIENCY CONTROL
6 DISPERSED USERS & DATA ELASTIC DEMAND SCALE OUT
Red Dog Front End (RDFE) Fabric Controller Windows Azure Networking
Workload driven design Fan-out the application tier to support the workload Loosely couple: asynchronous, but keep close and process fast Use cache for data and content Batch together storage/database operations if possible Partition Azure storage objects across multiple storage accounts if necessary Size appropriate (instance size and number of instances)
Read-only data separated from readwrite data Affinitize application and database as scale unit
Compute Instance CPU (GHz) Memory Storage Bandwidth XSmall 1 768mb 20GB 5 Mbps Small 1.6 1.7GB 225GB 100 Mbps Medium 2 x 1.6 3.5GB 490GB 200 Mbps Large 4 x 1.6 7GB 1000GB 400 Mbps XLarge 8 x 1.6 14Gb 2040GB 800 Mbps
Key Concepts - Indexes Object Key partitioning key Snapshot Time RowKey Time, Message Id Message Visibility,
Key Concepts How are objects stored? Account Name Container Name Blob Name user1 logs 20120612-1030-001.log user1 logs 20120612-1030-002.log user1 logs 20120612-1030-999.log user1 logs 20120612-1031-001.log user2 logs 20120612-1030-001.log Account Name Container Name Blob Name user1 logs 001-20120612-1030.log user1 logs 001-20120612-1031.log user1 logs 999-20120612-1030.log user1 logs 999-20120612-1031.log user2 logs 001-20120612-1030.log
Key Concepts How does storage scale? A A B A C
Key Concepts Scalability Targets
Storage Accounts Best Practices
Common Design & Scalability
Common Design & Scalability Account Name Container Name Blob Name User1 logs 20120612-1030-001.log user1 logs 20120612-1030-002.log user1 logs 20120612-1030-999.log user1 logs 20120612-1031-001.log user1 logs 20120612-1032-999.log
Blob Design & Scalability
Table Design & Scalability
Queue Design & Scalability
http://nuget.org/packages/microsoft.experience.cloudfx 2 6
http://code.msdn.microsoft.com/cloudfx- Samples-60c3a852
Asure Storage
Relational Database as a Service for the Windows Azure Platform Focus on combining the best features of SQL Server running at scale with low friction
SQL Server as core DB engine Shared infrastructure at SQL database and below Request routing, security and isolation Scalable HA technology provides the glue Automatic replication and failover Provisioning, metering and billing infrastructure Provisioning (databases, accounts, roles, ), Metering, and Billing Machine 4 Machine 5 Machine 6 SQL Instance SQL Instance SQL Instance User DB1 User DB2 SQL DB User DB3 User DB4 User DB1 User DB2 SQL DB User DB3 User DB4 User DB1 User DB2 SQL DB User DB3 User DB4 Scalability and Availability: Fabric, Failover, Replication, and Load balancing
Topology Application Internet Azure Cloud Applications use standard SQL client libraries: ODBC, ADO.Net, PHP, JDBC. Security Boundary TDS (tcp) LB Load balancer forwards sticky sessions to TDS protocol tier TDS (tcp) Gateway Gateway Gateway Gateway Gateway Gateway TDS (tcp) Gateway: TDS protocol gateway, enforces AUTHN/AUTHZ policy; proxy to CloudDB SQL SQL SQL SQL SQL SQL Scalability and Availability: Fabric, Failover, Replication, and Load balancing
Account Server Database Each account has zero or more servers Azure wide, provisioned in a common portal Billing instrument Each server has one or more databases Contains metadata about the databases and usage Unit of authentication Unit of Geo-location Generated DNS based name Logical grouping of databases Each database has standard SQL objects Unit of consistency Unit of multi-tenancy Contains Users, Tables, Views, Indices, etc. Most granular unit of billing
A distributed, in-memory, flexible cache for all data types that can be used to speed up Windows Azure applications and reduce database load Basically, caching helps your app become faster.