SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

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

La actualidad más candente (20)

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

Destacado

Learn design pattern-1
Learn design pattern-1Learn design pattern-1
Learn design pattern-1Daniel Lim
 
Desing Pattern-2
Desing Pattern-2Desing Pattern-2
Desing Pattern-2Daniel Lim
 
Design pattern 4
Design pattern 4Design pattern 4
Design pattern 4Daniel Lim
 
Team10:TenTen for blackboard
Team10:TenTen for blackboardTeam10:TenTen for blackboard
Team10:TenTen for blackboardJong-hoon Baek
 
Publish Subscriber messaging pattern
Publish Subscriber messaging patternPublish Subscriber messaging pattern
Publish Subscriber messaging patternShirish Bari
 
블랙보드 개발 중인 기능
블랙보드 개발 중인 기능블랙보드 개발 중인 기능
블랙보드 개발 중인 기능미나 최
 
Design pattern study 6 command pattern
Design pattern study 6 command patternDesign pattern study 6 command pattern
Design pattern study 6 command patterndragor0123
 
Design patterns 스터디 - Singleton 패턴
Design patterns 스터디 - Singleton 패턴Design patterns 스터디 - Singleton 패턴
Design patterns 스터디 - Singleton 패턴Hyunho-Cho
 
Observer pattern dragor
Observer pattern dragorObserver pattern dragor
Observer pattern dragordragor0123
 
Api design for c++ pattern
Api design for c++ patternApi design for c++ pattern
Api design for c++ patternjinho park
 
Design Pattern 3
Design Pattern 3Design Pattern 3
Design Pattern 3Daniel Lim
 
Design patterns 스터디 -strategy패턴
Design patterns 스터디 -strategy패턴Design patterns 스터디 -strategy패턴
Design patterns 스터디 -strategy패턴Hyunho-Cho
 
Arquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk ServerArquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk ServerMarkus Christen
 
Publisher subscriber pattern
Publisher subscriber patternPublisher subscriber pattern
Publisher subscriber patternDaeMyung Kang
 
예제로 보는 Pattern 연상법
예제로 보는 Pattern 연상법예제로 보는 Pattern 연상법
예제로 보는 Pattern 연상법hyun soomyung
 
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015NAVER / MusicPlatform
 
Proxy pattern
Proxy patternProxy pattern
Proxy patternscor7910
 

Destacado (19)

Learn design pattern-1
Learn design pattern-1Learn design pattern-1
Learn design pattern-1
 
Desing Pattern-2
Desing Pattern-2Desing Pattern-2
Desing Pattern-2
 
Design pattern 4
Design pattern 4Design pattern 4
Design pattern 4
 
Pattern and EA
Pattern and EAPattern and EA
Pattern and EA
 
Team10:TenTen for blackboard
Team10:TenTen for blackboardTeam10:TenTen for blackboard
Team10:TenTen for blackboard
 
Publish Subscriber messaging pattern
Publish Subscriber messaging patternPublish Subscriber messaging pattern
Publish Subscriber messaging pattern
 
블랙보드 개발 중인 기능
블랙보드 개발 중인 기능블랙보드 개발 중인 기능
블랙보드 개발 중인 기능
 
Design pattern study 6 command pattern
Design pattern study 6 command patternDesign pattern study 6 command pattern
Design pattern study 6 command pattern
 
Design patterns 스터디 - Singleton 패턴
Design patterns 스터디 - Singleton 패턴Design patterns 스터디 - Singleton 패턴
Design patterns 스터디 - Singleton 패턴
 
Observer pattern dragor
Observer pattern dragorObserver pattern dragor
Observer pattern dragor
 
Api design for c++ pattern
Api design for c++ patternApi design for c++ pattern
Api design for c++ pattern
 
Design Pattern 3
Design Pattern 3Design Pattern 3
Design Pattern 3
 
Design patterns 스터디 -strategy패턴
Design patterns 스터디 -strategy패턴Design patterns 스터디 -strategy패턴
Design patterns 스터디 -strategy패턴
 
Arquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk ServerArquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk Server
 
Publisher subscriber pattern
Publisher subscriber patternPublisher subscriber pattern
Publisher subscriber pattern
 
4. publish / subscribe
4. publish / subscribe4. publish / subscribe
4. publish / subscribe
 
예제로 보는 Pattern 연상법
예제로 보는 Pattern 연상법예제로 보는 Pattern 연상법
예제로 보는 Pattern 연상법
 
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
 
Proxy pattern
Proxy patternProxy pattern
Proxy pattern
 

Similar a Scalable system design patterns

클라우드 서비스운영 플랫폼 가루다
클라우드 서비스운영 플랫폼 가루다클라우드 서비스운영 플랫폼 가루다
클라우드 서비스운영 플랫폼 가루다상욱 송
 
클라우드 서비스운영 플랫폼 가루다 Open cloudengine_패스트캣_cto 송상욱
클라우드 서비스운영 플랫폼 가루다 Open cloudengine_패스트캣_cto 송상욱클라우드 서비스운영 플랫폼 가루다 Open cloudengine_패스트캣_cto 송상욱
클라우드 서비스운영 플랫폼 가루다 Open cloudengine_패스트캣_cto 송상욱uEngine Solutions
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례Gruter
 
Open standard open cloud engine (3)
Open standard open cloud engine (3)Open standard open cloud engine (3)
Open standard open cloud engine (3)uEngine Solutions
 
High performance networking in chrome
High performance networking in chromeHigh performance networking in chrome
High performance networking in chromeJi Hun Kim
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴Terry Cho
 
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...Taekyu Lim
 
Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Steve Min
 
Hadoop Introduction (1.0)
Hadoop Introduction (1.0)Hadoop Introduction (1.0)
Hadoop Introduction (1.0)Keeyong Han
 
Scalable web architecture and distributed systems
Scalable web architecture and distributed systemsScalable web architecture and distributed systems
Scalable web architecture and distributed systemseva
 
01.표준프레임워크개요
01.표준프레임워크개요01.표준프레임워크개요
01.표준프레임워크개요Hankyo
 
[Ankus Open Source Conference 2013] Introduction to ankus integration tool (f...
[Ankus Open Source Conference 2013] Introduction to ankus integration tool (f...[Ankus Open Source Conference 2013] Introduction to ankus integration tool (f...
[Ankus Open Source Conference 2013] Introduction to ankus integration tool (f...SuHyun Jeon
 
Docker기반 분산 플랫폼
Docker기반 분산 플랫폼Docker기반 분산 플랫폼
Docker기반 분산 플랫폼SeongHyun Jeong
 
[경북] I'mcloud information
[경북] I'mcloud information[경북] I'mcloud information
[경북] I'mcloud informationstartupkorea
 
JMI Techtalk : Backend.AI
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AILablup Inc.
 
Reactive programming vs reactive systems
Reactive programming vs reactive systemsReactive programming vs reactive systems
Reactive programming vs reactive systemsJinhyuck Kim
 
SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo,  and application case of SK TelecomSQL-on-Hadoop with Apache Tajo,  and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo, and application case of SK TelecomGruter
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제NAVER D2
 
201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개
201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개
201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개Gruter
 

Similar a Scalable system design patterns (20)

클라우드 서비스운영 플랫폼 가루다
클라우드 서비스운영 플랫폼 가루다클라우드 서비스운영 플랫폼 가루다
클라우드 서비스운영 플랫폼 가루다
 
클라우드 서비스운영 플랫폼 가루다 Open cloudengine_패스트캣_cto 송상욱
클라우드 서비스운영 플랫폼 가루다 Open cloudengine_패스트캣_cto 송상욱클라우드 서비스운영 플랫폼 가루다 Open cloudengine_패스트캣_cto 송상욱
클라우드 서비스운영 플랫폼 가루다 Open cloudengine_패스트캣_cto 송상욱
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
 
Open standard open cloud engine (3)
Open standard open cloud engine (3)Open standard open cloud engine (3)
Open standard open cloud engine (3)
 
High performance networking in chrome
High performance networking in chromeHigh performance networking in chrome
High performance networking in chrome
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴
 
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
 
Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Apache Htrace overview (20160520)
Apache Htrace overview (20160520)
 
Hadoop Introduction (1.0)
Hadoop Introduction (1.0)Hadoop Introduction (1.0)
Hadoop Introduction (1.0)
 
Scalable web architecture and distributed systems
Scalable web architecture and distributed systemsScalable web architecture and distributed systems
Scalable web architecture and distributed systems
 
01.표준프레임워크개요
01.표준프레임워크개요01.표준프레임워크개요
01.표준프레임워크개요
 
[Ankus Open Source Conference 2013] Introduction to ankus integration tool (f...
[Ankus Open Source Conference 2013] Introduction to ankus integration tool (f...[Ankus Open Source Conference 2013] Introduction to ankus integration tool (f...
[Ankus Open Source Conference 2013] Introduction to ankus integration tool (f...
 
Docker기반 분산 플랫폼
Docker기반 분산 플랫폼Docker기반 분산 플랫폼
Docker기반 분산 플랫폼
 
Sencha ExtJS를 활용한 Big Data Platform 개발 사례
Sencha ExtJS를 활용한 Big Data Platform 개발 사례 Sencha ExtJS를 활용한 Big Data Platform 개발 사례
Sencha ExtJS를 활용한 Big Data Platform 개발 사례
 
[경북] I'mcloud information
[경북] I'mcloud information[경북] I'mcloud information
[경북] I'mcloud information
 
JMI Techtalk : Backend.AI
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AI
 
Reactive programming vs reactive systems
Reactive programming vs reactive systemsReactive programming vs reactive systems
Reactive programming vs reactive systems
 
SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo,  and application case of SK TelecomSQL-on-Hadoop with Apache Tajo,  and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
 
201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개
201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개
201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개
 

Más de Steve Min

Apache Spark Overview part2 (20161117)
Apache Spark Overview part2 (20161117)Apache Spark Overview part2 (20161117)
Apache Spark Overview part2 (20161117)Steve Min
 
Apache Spark Overview part1 (20161107)
Apache Spark Overview part1 (20161107)Apache Spark Overview part1 (20161107)
Apache Spark Overview part1 (20161107)Steve Min
 
Apache hbase overview (20160427)
Apache hbase overview (20160427)Apache hbase overview (20160427)
Apache hbase overview (20160427)Steve Min
 
[SSA] 04.sql on hadoop(2014.02.05)
[SSA] 04.sql on hadoop(2014.02.05)[SSA] 04.sql on hadoop(2014.02.05)
[SSA] 04.sql on hadoop(2014.02.05)Steve Min
 
[SSA] 03.newsql database (2014.02.05)
[SSA] 03.newsql database (2014.02.05)[SSA] 03.newsql database (2014.02.05)
[SSA] 03.newsql database (2014.02.05)Steve Min
 
[SSA] 01.bigdata database technology (2014.02.05)
[SSA] 01.bigdata database technology (2014.02.05)[SSA] 01.bigdata database technology (2014.02.05)
[SSA] 01.bigdata database technology (2014.02.05)Steve Min
 
Google guava overview
Google guava overviewGoogle guava overview
Google guava overviewSteve Min
 
Scala overview
Scala overviewScala overview
Scala overviewSteve Min
 
NewSQL Database Overview
NewSQL Database OverviewNewSQL Database Overview
NewSQL Database OverviewSteve Min
 
NoSQL Database
NoSQL DatabaseNoSQL Database
NoSQL DatabaseSteve Min
 
Cloud Computing v1.0
Cloud Computing v1.0Cloud Computing v1.0
Cloud Computing v1.0Steve Min
 
Cloud Music v1.0
Cloud Music v1.0Cloud Music v1.0
Cloud Music v1.0Steve Min
 

Más de Steve Min (13)

Apache Spark Overview part2 (20161117)
Apache Spark Overview part2 (20161117)Apache Spark Overview part2 (20161117)
Apache Spark Overview part2 (20161117)
 
Apache Spark Overview part1 (20161107)
Apache Spark Overview part1 (20161107)Apache Spark Overview part1 (20161107)
Apache Spark Overview part1 (20161107)
 
Apache hbase overview (20160427)
Apache hbase overview (20160427)Apache hbase overview (20160427)
Apache hbase overview (20160427)
 
[SSA] 04.sql on hadoop(2014.02.05)
[SSA] 04.sql on hadoop(2014.02.05)[SSA] 04.sql on hadoop(2014.02.05)
[SSA] 04.sql on hadoop(2014.02.05)
 
[SSA] 03.newsql database (2014.02.05)
[SSA] 03.newsql database (2014.02.05)[SSA] 03.newsql database (2014.02.05)
[SSA] 03.newsql database (2014.02.05)
 
[SSA] 01.bigdata database technology (2014.02.05)
[SSA] 01.bigdata database technology (2014.02.05)[SSA] 01.bigdata database technology (2014.02.05)
[SSA] 01.bigdata database technology (2014.02.05)
 
Google guava overview
Google guava overviewGoogle guava overview
Google guava overview
 
Scala overview
Scala overviewScala overview
Scala overview
 
NewSQL Database Overview
NewSQL Database OverviewNewSQL Database Overview
NewSQL Database Overview
 
NoSQL Database
NoSQL DatabaseNoSQL Database
NoSQL Database
 
Cloud Computing v1.0
Cloud Computing v1.0Cloud Computing v1.0
Cloud Computing v1.0
 
Cloud Music v1.0
Cloud Music v1.0Cloud Music v1.0
Cloud Music v1.0
 
Html5 video
Html5 videoHtml5 video
Html5 video
 

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