1
Architecting for Highly Available, Scalable, and Reliable Mission- Critical Applications
Diego Dagum Microsoft Corp.
Mission-critical 101
Availability
Disaster Recovery Scalability Resiliency
Reliability
Maintainability
Fault Tolerance
Performance
Mission-critical 101 Resiliency Performance Fault Scalability - - PDF document
Architecting for Highly Available, Scalable, and Reliable Mission- Critical Applications Diego Dagum Microsoft Corp. Mission-critical 101 Resiliency Performance Fault Scalability Tolerance Disaster Maintainability Recovery Availability
Availability
Disaster Recovery Scalability Resiliency
Reliability
Maintainability
Fault Tolerance
Performance
s c a l e u p throughput $$ 10,000 5,000 2,000 1,000
s c a l e u p throughput $$ 10,000 5,000 2,000 1,000 scale up comfort area
W/ Session Affinity Resiliency Performance
database service 1 service p server 1 server 2 server n load balancer client tier
W/O Session Affinity Resiliency Performance
server tier back ends
database service 1 service m server 1 server 2 server n load balancer web tier back ends client tier server 1 server 2 server p load balancer business tier
Performance
stateful server stateless server
Performance Resiliency
stateful server stateless server
database service 1 service p B2B managed desktop server tier back ends server 1 server 2 server n load balancer managed desktop DMZ unmanaged desktop VPN
database service 1 service p B2B managed desktop server tier back ends server 1 server 2 server n load balancer
Scalability
database service 1 service p B2B managed desktop server tier back ends server 1 server 2 server n load balancer
Scalability
database service 1 service p B2B unmanaged desktop server tier back ends server 1 server 2 server n load balancer
Scalability
Invoker
Collaborator 2
Worker
Collaborator 1
[1..n]
Scalability Performance
Invoker
Collaborator 2
Worker
Collaborator 1
Scalability Performance
Process A Process B Process C Process D Process E Process F Process G Process H Process I
1 2 5 3 4 6 7 9 8
request-response approach
Process A Process B Process C Process D Process E Process F Process G Process H Process I
event-driven approach
1 2 3 1 2 1 2 1 3
Process A Process B Process C Process D Process E Process F Process G Process H Process I
hybrid request, event-driven approach
2 3 2 3 4 1 1 1 1
Process A Process B Process C Process D Memory I/O ports
Bus
Interconnection Network
Process A Process B Process C Process D Process E Process F
1 1 2 3 4 2
// Show Rectangles that are the selected colors. foreach (string color in args.AddedItems) { if (GetRectangle(color) == null) { Rectangle aRect = new Rectangle(); aRect.Fill = (Brush) ConvertFrom(color); aRect.Tag = color; rectanglesPanel.Children.Add(aRect); } } <StackPanel Margin="10"> <Button Content=“Select" /> <Button Content=“Select all" /> <Button Content="Unselect" /> <Button Content=“Unselect all" /> </StackPanel>
Scenario Test Environment Requirement Goal Home page Perf Environment #1 2s 1.5s Search results page – 10 results Perf Environment #1 3s 2s Checkout complete Perf Environment #1 5s 4s
E#1 Machine CPU RAM Disk Network Client
Dell WS 650 1P 2.2 Ghz 1GB 7.5k eSata (100 GB) 600kb
App Server
Dell PE 6650 4P 2.2 Ghz 4GB 2x15k RPM SCSI 1Gb
Database
HP DT 9250 8P 2.6 Ghz 16GB 3 x 7.2 K SATA (480 GB) 15 x 7.2 k SATA2 (3 TB) 1Gb
Application Data Size
1,000 restaurants, 50,000 menu items, 1,500 orders
Work load
1,000 virtual users
Throughput
100 home pages/sec 50 searches/sec 2 checkouts/sec