• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Scalable system design patterns
 

Scalable system design patterns

on

  • 1,244 views

Scalable system design patterns

Scalable system design patterns

Statistics

Views

Total Views
1,244
Views on SlideShare
1,244
Embed Views
0

Actions

Likes
2
Downloads
6
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Scalable system design patterns Scalable system design patterns Presentation Transcript

    • Scalable System Design Patterns 2010.12. DM본부 기술개발담당 1
    • index 1.General Principles 2.Common Techniques 3.Scalable System Design Patterns 2
    • General Principles"Scalability" is not equivalent to "Raw Performance"Understand environmental workload conditionsUnderstand who is your priority customersScale out and Not scale upKeep your code modular and simpleDont guess the bottleneck, Measure itPlan for growth 3
    • Common TechniquesServer Farm (real time access)Data PartitioningMap / Reduce (Batch Parallel Processing)Content Delivery Network (Static Cache)Cache Engine (Dynamic Cache)Resources PoolCalculate an approximate resultFiltering at the sourceAsynchronous ProcessingImplementation design considerations 4
    • Scalable System Design PatternsLoad BalancerScatter and GatherResult CacheShared SpacePipe and FilterMap ReduceBulk Synchronous ParallelExecution Orchestrator 5
    • Load Balancer 설명  디스패처가 매 요청마다 리퀘스트를 처리할 워커를 선택함  다른 정책에 기반한 요청을 처리할 수 있음 어플리케이션은 어떤 워커도 요청을 처리할 수 있도록 “stateless“가 권장됨 대부분의 대용량 웹사이트에서 사용되는 패턴 메시징에서는 Point to Point 방식에 해당출처: http://architects.dzone.com/news/scalable-system-design 6
    • Scatter and Gather 설명  이 모델은 디스패처가 풀의 모든 워커에 요청을 multicast 함  각 워커는 로컬결과를 계산하고 디스패처로 결과를 전송함  디스패처는 클라이언트에 각 워커의 결과를 조립해서 전송함 대부분의 검색엔진에서 사용됨 (구글, 야후 등) 메시징에서는 Pub-Sub방식에 해당됨출처: http://architects.dzone.com/news/scalable-system-design 7
    • Result Cache 설명  이 모델은 디스패처가 처음에 요청이 저장됐는지 lookup함  만약에 결과가 있는 경우에는 이전 결과를 돌려줌 캐싱 중에서는 sideline cache에 해당함출처: http://architects.dzone.com/news/scalable-system-design 8
    • Shared Space 이 모델은 “Blackboard”로 알려짐 모든 워커는 shared space에서 정보를 모니터하고, 부분지식을 blackboard에 돌려줌 정보는 솔루션이 도착할때까지 지속적으로 풍푸해짐 이 패턴은 JavaSpace와 GigaSpace에서 사용됨출처: http://architects.dzone.com/news/scalable-system-design 9
    • Pipe and Filter 이 모델은 "Data Flow Programming“으로 알려져 있음 모든 워커는 데이터 플로우가 흐르도록 파이프를 통해 연결되어있다. 이 패턴은 일반적인 EAI pattern이다.출처: http://architects.dzone.com/news/scalable-system-design 10
    • Map Reduce 이 모델은 디스크 IO가 큰 병목인 경우에 사용되는 배치작업이다. 분산파일시스템에서 디스크 IO가 병렬로 실행될 수 있다. 이 패턴은 많은 구글의 내부 어플리케이션에서 사용되고, 하둡 프레임웍에서도 채택됨출처: http://architects.dzone.com/news/scalable-system-design 11
    • Bulk Synchronous Parallel 이 모델은 모든 워커에 걸쳐 lock-step 실행에 기반을 두고 마스터에 의해 조작된다. 각 워커는 종료조건에 도달할 때까지 다음 스텝을 반복한다.  각 워커는 인풋큐로부터 데이터를 읽는다.  각 워커는 읽은 데이터로부터 로컬 프로세싱을 수행한다.  각 워커는 로컬 결과를 직접 연결된 곳에 푸시한다. 구글 Pregel graph processing model 에서 사용되었고, 아파치 하마 프로젝트에서도 사용됨출처: http://architects.dzone.com/news/scalable-system-design 12
    • Execution Orchestrator 설명  dependency에 기반한 태스크 실행  각 태스크에서 워커를 호출함  오케스트레이터는 워커의 실행결과를 받아 다음 태스크를 실행함 이 모델은 intelligent scheduler에서 사용됨  Job Scheduler  BPM  ESB출처: http://architects.dzone.com/news/scalable-system-design 13