Mission-critical 101 Resiliency Performance Fault Scalability - - PDF document

mission critical 101
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

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

slide-2
SLIDE 2

2

Agenda

  • Mission-critical 101 (just seen)
  • Scalability
  • Failover
  • Performance
  • Application health
  • Fault-tolerance mindsets

s c a l e u p throughput $$ 10,000 5,000 2,000 1,000

Scalability

Scaling up, out

slide-3
SLIDE 3

3

Scalability

Scaling up, out

s c a l e u p throughput $$ 10,000 5,000 2,000 1,000 scale up comfort area

Scalability

Scaling out. Redundant approach

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

slide-4
SLIDE 4

4

Scalability

Scaling out. Partitioned approach

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

Scalability Aftermath

Impact on resiliency and performance

DEAD END?

stateful server stateless server

Performance Resiliency

slide-5
SLIDE 5

5

  • Server-side

– In memory – Database – Distributed caching

  • Client-side

– Managed desktops – Unmanaged desktops

Resiliency

Server failover and state management

stateful server stateless server

State Management for Failover

Keeping state in the client-side

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

slide-6
SLIDE 6

6

State Management for Failover

Keeping state in a managed client-side

database service 1 service p B2B managed desktop server tier back ends server 1 server 2 server n load balancer

Scalability

State Management for Failover

Keeping state in a managed client-side

database service 1 service p B2B managed desktop server tier back ends server 1 server 2 server n load balancer

Scalability

slide-7
SLIDE 7

7

State Management for Failover

Keeping state in an unmanaged client-side

database service 1 service p B2B unmanaged desktop server tier back ends server 1 server 2 server n load balancer

Scalability

DEAD END?

Scalability Aftermath

Impact on performance

slide-8
SLIDE 8

8

  • Asynchronous

execution

  • Event-driven

Architectures (EDA)

  • Parallel execution

HIGHWAY ENTRANCE Scalability Aftermath

Impact on performance

Performance

Asynchronous execution (pull model)

Invoker

Collaborator 2

Worker

Collaborator 1

[1..n]

Scalability Performance

slide-9
SLIDE 9

9

Performance

Asynchronous execution (push model)

Invoker

Collaborator 2

Worker

Collaborator 1

Scalability Performance

Performance

Event-driven Architecture (EDA)

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

slide-10
SLIDE 10

10

Performance

Event-driven Architecture (EDA)

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

Performance

Event-driven Architecture (EDA)

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

slide-11
SLIDE 11

11

Performance

Parallelism: shared memory model

Process A Process B Process C Process D Memory I/O ports

Bus

Performance

Parallelism: distributed memory model

Interconnection Network

Process A Process B Process C Process D Process E Process F

slide-12
SLIDE 12

12

Performance

Parallelism: task/channel model

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

Health and Instrumentation

Stopping issues before they stop us

slide-13
SLIDE 13

13

Fault-Tolerance Thank You!!

slide-14
SLIDE 14

14

References

  • Application Architecture Guidelines 2nd Edition, Chapter 5 “Deployment Patterns”, J.D. Meier et al. (2009)
  • Application Architecture Guidelines 2nd Edition, Chapter 7 “Quality Attributes”, J.D. Meier et al. (2009)
  • Performance Testing Guidance for Web Applications, J.D. Meier (2007)
  • Distributed Caching: Microsoft Project Code Named “Velocity”
  • Selecting the Right Virtualization Technology (2008)
  • Backup and Disaster Recovery for Server Virtualization, Adam Fazio (2008)
  • Asynchronous Programming Design Patterns (2007)
  • Multithreaded Programming with the Event-based Asynchronous Pattern (2007)
  • Using Events in Highly Distributed Architectures, David Chou (2008)
  • MSDN Magazine on Parallel Execution (2008)
  • Developing Parallel Programs, Ranjan Sen, PhD (2008)
  • Design for Operations
  • Design Guidelines for Exceptions (2007)
  • Exceptions and Performance (2007)