SlideShare a Scribd company logo
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

Don't 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

More Related Content

What's hot (20)

PDF
Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018
Amazon Web Services Korea
 
PDF
Migration to Azure Database for MySQL
rockplace
 
PDF
클라우드 컴퓨팅 AWS(Amazon Web Services) - 글로벌 서비스 구축을 위한
HoChul Lee
 
PPTX
DB Migration to Azure Database for PostgreSQL
rockplace
 
PDF
AWS 활용한 Data Lake 구성하기
Nak Joo Kwon
 
PDF
DB Migration to Azure Database for MySQL
rockplace
 
PDF
Amazon EC2 Deep Dive - 이창수 (AWS 솔루션 아키텍트) : 8월 온라인 세미나
Amazon Web Services Korea
 
PDF
AWS CLOUD 2017 - Amazon Aurora를 통한 고성능 데이터베이스 운용하기 (박선용 솔루션즈 아키텍트)
Amazon Web Services Korea
 
PDF
AWS Innovate: Best Practices for Migrating to Amazon DynamoDB - Sangpil Kim
Amazon Web Services Korea
 
PDF
[오픈소스컨설팅] 2019년 클라우드 생존전략
Ji-Woong Choi
 
PDF
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
Amazon Web Services Korea
 
PDF
2017 AWS DB Day | 개발자가 알아야 할 Amazon DynamoDB 활용법
Amazon Web Services Korea
 
PPTX
10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)
Amazon Web Services Korea
 
PDF
기업 IT 인프라 환경 최적화를 위한 하이브리드 클라우드 적용 방안 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
PDF
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
Amazon Web Services Korea
 
PDF
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)
Amazon Web Services Korea
 
PPTX
Scalable web architecture
Steve Min
 
PDF
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
Amazon Web Services Korea
 
PDF
[Pgday.Seoul 2018] PostgreSQL Authentication with FreeIPA
PgDay.Seoul
 
PDF
관계형 데이터베이스의 새로운 패러다임 Amazon Aurora :: 김상필 :: AWS Summit Seoul 2016
Amazon Web Services Korea
 
Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018
Amazon Web Services Korea
 
Migration to Azure Database for MySQL
rockplace
 
클라우드 컴퓨팅 AWS(Amazon Web Services) - 글로벌 서비스 구축을 위한
HoChul Lee
 
DB Migration to Azure Database for PostgreSQL
rockplace
 
AWS 활용한 Data Lake 구성하기
Nak Joo Kwon
 
DB Migration to Azure Database for MySQL
rockplace
 
Amazon EC2 Deep Dive - 이창수 (AWS 솔루션 아키텍트) : 8월 온라인 세미나
Amazon Web Services Korea
 
AWS CLOUD 2017 - Amazon Aurora를 통한 고성능 데이터베이스 운용하기 (박선용 솔루션즈 아키텍트)
Amazon Web Services Korea
 
AWS Innovate: Best Practices for Migrating to Amazon DynamoDB - Sangpil Kim
Amazon Web Services Korea
 
[오픈소스컨설팅] 2019년 클라우드 생존전략
Ji-Woong Choi
 
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
Amazon Web Services Korea
 
2017 AWS DB Day | 개발자가 알아야 할 Amazon DynamoDB 활용법
Amazon Web Services Korea
 
10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)
Amazon Web Services Korea
 
기업 IT 인프라 환경 최적화를 위한 하이브리드 클라우드 적용 방안 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
Amazon Web Services Korea
 
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)
Amazon Web Services Korea
 
Scalable web architecture
Steve Min
 
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
Amazon Web Services Korea
 
[Pgday.Seoul 2018] PostgreSQL Authentication with FreeIPA
PgDay.Seoul
 
관계형 데이터베이스의 새로운 패러다임 Amazon Aurora :: 김상필 :: AWS Summit Seoul 2016
Amazon Web Services Korea
 

Viewers also liked (19)

PPTX
Learn design pattern-1
Daniel Lim
 
ODP
Desing Pattern-2
Daniel Lim
 
ODP
Design pattern 4
Daniel Lim
 
PDF
Pattern and EA
YoungSu Son
 
PPTX
Team10:TenTen for blackboard
Jong-hoon Baek
 
PPTX
Publish Subscriber messaging pattern
Shirish Bari
 
PPTX
블랙보드 개발 중인 기능
미나 최
 
PPTX
Design pattern study 6 command pattern
dragor0123
 
PDF
Design patterns 스터디 - Singleton 패턴
Hyunho-Cho
 
PPTX
Observer pattern dragor
dragor0123
 
PPTX
Api design for c++ pattern
jinho park
 
ODP
Design Pattern 3
Daniel Lim
 
PDF
Design patterns 스터디 -strategy패턴
Hyunho-Cho
 
PPTX
Arquitetura da plataforma com o Biztalk Server
Markus Christen
 
PDF
Publisher subscriber pattern
DaeMyung Kang
 
PDF
4. publish / subscribe
seung-hyun Park
 
PPTX
예제로 보는 Pattern 연상법
hyun soomyung
 
PDF
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
NAVER / MusicPlatform
 
PPT
Proxy pattern
scor7910
 
Learn design pattern-1
Daniel Lim
 
Desing Pattern-2
Daniel Lim
 
Design pattern 4
Daniel Lim
 
Pattern and EA
YoungSu Son
 
Team10:TenTen for blackboard
Jong-hoon Baek
 
Publish Subscriber messaging pattern
Shirish Bari
 
블랙보드 개발 중인 기능
미나 최
 
Design pattern study 6 command pattern
dragor0123
 
Design patterns 스터디 - Singleton 패턴
Hyunho-Cho
 
Observer pattern dragor
dragor0123
 
Api design for c++ pattern
jinho park
 
Design Pattern 3
Daniel Lim
 
Design patterns 스터디 -strategy패턴
Hyunho-Cho
 
Arquitetura da plataforma com o Biztalk Server
Markus Christen
 
Publisher subscriber pattern
DaeMyung Kang
 
4. publish / subscribe
seung-hyun Park
 
예제로 보는 Pattern 연상법
hyun soomyung
 
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
NAVER / MusicPlatform
 
Proxy pattern
scor7910
 
Ad

Similar to Scalable system design patterns (20)

PPTX
4. 대용량 아키텍쳐 설계 패턴
Terry Cho
 
PDF
Reactive programming vs reactive systems
Jinhyuck Kim
 
PPTX
분석과 설계
Haeil Yi
 
PDF
빅데이터 처리기술의 이해
paul lee
 
PPTX
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴
Terry Cho
 
PDF
[전득진_22년4월] AI_ML담당_Tech_seminar-emart.pdf
DeukJin Jeon
 
PDF
SK planet Streaming system
용휘 김
 
PDF
대규모 서비스를 가능하게 하는 기술
Hyungseok Shim
 
PDF
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
VMware Tanzu Korea
 
PDF
2012.04.11 미래사회와 빅 데이터(big data) 기술 nipa
영진 박
 
PPTX
Scalable web architecture and distributed systems
eva
 
PPTX
클라우드컴퓨팅
승완 김
 
PPTX
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
uEngine Solutions
 
PDF
(책 소개) 가상 면접 사례로 배우는 대규모 시스템 설계 기초
Jay Park
 
PPTX
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
Terry Cho
 
PPTX
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
Gruter
 
PDF
201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개
Gruter
 
PDF
[아꿈사/110903] 도메인주도설계 4장
sung ki choi
 
PDF
디자인 패턴과 고객 사례로 살펴보는 현대적 어플리케이션 개발 – 배영부, 강성일, AWS애플리케이션 아키텍트:: AWS Summit On...
Amazon Web Services Korea
 
PDF
Design Pattern Introduction
Bill Kim
 
4. 대용량 아키텍쳐 설계 패턴
Terry Cho
 
Reactive programming vs reactive systems
Jinhyuck Kim
 
분석과 설계
Haeil Yi
 
빅데이터 처리기술의 이해
paul lee
 
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴
Terry Cho
 
[전득진_22년4월] AI_ML담당_Tech_seminar-emart.pdf
DeukJin Jeon
 
SK planet Streaming system
용휘 김
 
대규모 서비스를 가능하게 하는 기술
Hyungseok Shim
 
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
VMware Tanzu Korea
 
2012.04.11 미래사회와 빅 데이터(big data) 기술 nipa
영진 박
 
Scalable web architecture and distributed systems
eva
 
클라우드컴퓨팅
승완 김
 
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
uEngine Solutions
 
(책 소개) 가상 면접 사례로 배우는 대규모 시스템 설계 기초
Jay Park
 
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
Terry Cho
 
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
Gruter
 
201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개
Gruter
 
[아꿈사/110903] 도메인주도설계 4장
sung ki choi
 
디자인 패턴과 고객 사례로 살펴보는 현대적 어플리케이션 개발 – 배영부, 강성일, AWS애플리케이션 아키텍트:: AWS Summit On...
Amazon Web Services Korea
 
Design Pattern Introduction
Bill Kim
 
Ad

More from Steve Min (14)

PDF
Apache Spark Overview part2 (20161117)
Steve Min
 
PDF
Apache Spark Overview part1 (20161107)
Steve Min
 
PDF
Apache Htrace overview (20160520)
Steve Min
 
PDF
Apache hbase overview (20160427)
Steve Min
 
PDF
[SSA] 04.sql on hadoop(2014.02.05)
Steve Min
 
PDF
[SSA] 03.newsql database (2014.02.05)
Steve Min
 
PDF
[SSA] 01.bigdata database technology (2014.02.05)
Steve Min
 
PDF
Google guava overview
Steve Min
 
PDF
Scala overview
Steve Min
 
PDF
NewSQL Database Overview
Steve Min
 
PDF
NoSQL Database
Steve Min
 
PPTX
Cloud Computing v1.0
Steve Min
 
PPTX
Cloud Music v1.0
Steve Min
 
PPTX
Html5 video
Steve Min
 
Apache Spark Overview part2 (20161117)
Steve Min
 
Apache Spark Overview part1 (20161107)
Steve Min
 
Apache Htrace overview (20160520)
Steve Min
 
Apache hbase overview (20160427)
Steve Min
 
[SSA] 04.sql on hadoop(2014.02.05)
Steve Min
 
[SSA] 03.newsql database (2014.02.05)
Steve Min
 
[SSA] 01.bigdata database technology (2014.02.05)
Steve Min
 
Google guava overview
Steve Min
 
Scala overview
Steve Min
 
NewSQL Database Overview
Steve Min
 
NoSQL Database
Steve Min
 
Cloud Computing v1.0
Steve Min
 
Cloud Music v1.0
Steve Min
 
Html5 video
Steve Min
 

Scalable system design patterns

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