Windows Azure Architecture I think, therefore I am Fernando Machado Píriz Enterprise Architect, Microsoft @netconfuy @fmachadopiriz >57% >250k Fortune 500 using Azure >20 >2 TRILLION storage objects MILLION requests/sec Active websites >300 >13 MILLION AD users BILLION authentication/wk Greater than 1,000,000 SQL Databases in Azure >1 MILLION Developers registered with Visual Studio Online Compute Compute Compute t t Compute Compute Compute Inactivity period t t t t Cloud attributes Pooled and shared resources Metered Cheaper Elasticity Pay as you go New scenarios Traditional World New, Innovative World Pooled and shared resources Pooled and shared resources Metered Metered Cheaper Cheaper Elasticity Pay as you go New scenarios Traditional World New, Innovative World Many features Reliability and agility over features Mean time to failure Mean time to resolution Slow update pace Continuous updates Development lifecycle Continuous development Unknown consumption habits Detailed usage patterns On time, on budget Up and running at appropriate costs Agility over features Run Mean time to resolution Build Continuous updates Test Deploy Continuous integration Continuous development Up and running at appropriate costs Continuous deployment Automation Source control PowerShell API Visual Studio Online Team Foundation Server Visual Studio Git support Reliability over features Run Mean time to resolution Build Detailed usage patterns Test Deploy Instrumentation Up and running at appropriate costs Telemetry AppDynamics New Relic Dynatrace MetricsHub Microsoft System Center Microsoft Application Insights for Visual Studio Online Reliability over features Health check Up and running at appropriate costs CDN| Port 80 (http) or 443 (https) endpoint Agent CDN Application … On-premises, cloud-hosted, or third_party service 200 (Ok) Response time: 50ms Storage: 5ms Database: 20ms … Storage Storage Database Service A Service B … Application Health Endpoint Monitoring Database Reliability over features Web development Mean time to resolution Stateless web servers No session state; or distributed caching Continuous updates Content distribution networks Up and running at appropriate costs Default to async Websites Virtual Machines CDN Reliability over features Caching Continuous updates Up and running at appropriate costs Web roles, worker roles, virtual machines 24 GB Distributed Cache 12 GB Redis Cache Managed Cache Service In−Role Cache 12 GB Memcached Cloud Storage Reliability over features ACID vs BASE Up and running at appropriate costs Azure SQL Database Azure Blob Storage Relational Key/Value Azure SQL SQL Database Compact SQL Server SQLite Oracle Postgres MySQL Azure Blob Storage Azure Table Storage PaaS (managed services) Azure Table Azure Cache Colum Family Azure Cache Cassandra Redis HBase Memcached Riak IaaS (virtual machines) Document DB Document HDInsight (Hadoop) Graph DocumentDB Neo4J MongoDB RavenDB CouchDB Resiliency Reliability over features Up and running at appropriate costs 1 Application 500 Hosted service 2 500 3 200 Retry Resiliency Reliability over features Up and running at appropriate costs Success count threshold reached Closed entry / reset failure do / if operation succeeds return result else increment failure count return failure Half-open entry / reset success counter do / if operation succeeds increment success counter return result else return failure Timeout timer expired Operation failed Failure threshold reached Open entry / start timeout timer do / return failure Circuit breaker Resiliency Reliability over features Resource utilization Up and running at appropriate costs Feature B is suspended to allow sufficient resources for applications to use Feature A and C Maximum capacity Soft limit of resource utilization Feature C Feature B Feature A T1 Throttling T2 Time Resiliency Reliability over features Resource utilization Up and running at appropriate costs Throttling is relaxed when autoscaling completes Autoscaling starts at this point Maximum capacity after autoscaling Maximum capacity before autoscaling Soft limit of resource utilization All applications System is throttled while autoscaling occurs T1 Throttling T2 Time Resiliency Reliability over features Up and running at appropriate costs Book seat on flight 1 Book seat on flight 2 Cancel seat on flight 1 Compensating logic Book seat on flight 3 Cancel seat on flight 1 Compensating logic Reserve room at hotel 1 Cancel seat on flight 1 Compensating logic Cancel room on hotel 1 Compensating logic Compensating transactions Reserve room at hotel 2 Compensating logic Reliability over features Default to async Up and running at appropriate costs private async Task MyTaskAsync(SomeType param) { var result = await object.ProcessMessagesAsync(param); } Default to async Reliability over features Up and running at appropriate costs Sender Receiver Message queue Storage Queue BizTalk Services Service Bus Service Bus Queue Service Bus Relay Asynchronous Messaging Primer Service Bus Topic Default to async Reliability over features Up and running at appropriate costs Receivers Senders Shared message queue Asynchronous Messaging Primer Default to async Reliability over features Up and running at appropriate costs Tasks Service Message queue Requests received at a variable rate Queue-Based Load Leveling Messages processed at a more constant rate Default to async Reliability over features Up and running at appropriate costs Presentation Cart created Cart Cart Item Item 1 added Item 2 added Item 1 added Shipping info added Event store ~ External systems and applications Cart ID Date Customer Address … Cart ID Item Key Item Name Quantity … Materialized View Published events Replayed events Event sourcing Query for current state of entities ~ Questions? Thanks! Fernando Machado Píriz Enterprise Architect, Microsoft @netconfuy @fmachadopiriz
© Copyright 2024