post architecture 와 framework - kosta.or.kr · 9 . 제. 8. 회. 2015 . 한국 소프트웨어...

21
2015. 07. 16 LG CNS 김은정 총괄 I. Post Architecture? II. 분산 아키텍처 적용 방안 III. 분산 아키텍처 Framework 2015(8) 한국 소프트웨어 아키텍트 대회 Post Architecture 분산 Framework

Upload: others

Post on 23-Sep-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

2015. 07. 16 LG CNS 김은정 총괄

I. Post Architecture? II. 분산 아키텍처 적용 방안 III. 분산 아키텍처 Framework

2015(제8회) 한국 소프트웨어 아키텍트 대회

Post Architecture와 분산 Framework

Chapter I Post Architecture란?

3 제8회 2015 한국 소프트웨어 아키텍트 대회

1.1 Post Architecture 정의 1. Post Architecture란?

빠르게 변화하는 비즈니스 요구에 적합한 저비용/고효율의 확장 가능한 아키텍처로 클라우드化

4 제8회 2015 한국 소프트웨어 아키텍트 대회

1. Post Architecture란? 1.2 Post Architecture 구현 Image

Infra뿐만 아니라 Application 구조를 포함한 전체 Architecture구조 변화가 필요함

상용 S/W

대용량 Unix Server

통합 Application

통합 Database

대용량 High End Storage

Chapter II 분산 아키텍처 적용 방안

1. 분산 아키텍처 개요 2. 서비스 분산 방안 3. 데이터 분산 방안 4. 분산 아키텍처 고려 사항

6 제8회 2015 한국 소프트웨어 아키텍트 대회

어플리케이션이 복잡하여 전체 구조 파악 어려우며

변경 시 장애 발생

DB서버의 용량 부족으로 Scale Up 필요

특정 Table에 병목 발생

1. 분산 아키텍처 개요

어플리케이션과 데이터를 관리 가능하도록 작게 분할함

7 제8회 2015 한국 소프트웨어 아키텍트 대회

2. 서비스 분산 방안

서비스 분산은 UX와 업무 분리로 민첩성과 Core 단위 분리로 재활용성을 확보함

복 사

신규 서비스 구축 기간 증가 중복된 업무 많고 일관성 유지 어려움 변경 발생 시 유지보수 비용 높음 인터페이스 복잡

접근 계층

서비스 조합 계층

서비스 계층

UX를 분리 → 민첩성 확보

Core 업무 분리 서비스화 → 재활용성 확보

서비스간 API 통신

인터페이스

인터페이스

1

2

3

1

2

3

■ 기존 시스템 현황 ■ 서비스 분리 방안

8 제8회 2015 한국 소프트웨어 아키텍트 대회

3. 데이터 분산 방안

1단계는 DB부하를 분산 방향으로 접근 필요하며 어플리케이션 변경 발생함

1단계 : DB 부하를 감소 방향으로 설계

최근 Data와 과거 Data 분리 - 現 시스템 구조 변경 없이 분산 가능

- 비용 대비 가장 효과적

- 80% 이상 Data 분리 가능

- 과거 Data 조회 Application 필요

조회 부하 분산 - 읽기전용 - 데이터 복제를 통한 조회 전용 서버

. 특정 데이터 복제

. 전체 데이터베이스 복제

- Read/Write 업무 분리 필요

■ 분리 기준 및 방향 ■ 데이터 분리 방안

Plan

A

Plan

B

Application Application

전체 Data

(6개월 or 1년)

과거 Data 최 신

고객 상품

협력사 물류 기타

주문 고객 상품

협력사 물류 기타

주문 고객 상품

협력사 물류 기타

주문

Application

Read/Write Read

Data Sync

Application

과거 조회 최신 조회

9 제8회 2015 한국 소프트웨어 아키텍트 대회

3. 데이터 분산 방안

1단계는 DB부하를 분산 방향으로 접근 필요하며 어플리케이션 변경 발생함

1단계 : DB 부하를 감소 방향으로 설계

■ 분리 기준 및 방향 ■ 데이터 분리 방안

조회 부하 분산 - Cache - 메모리를 활용한 Cache 서버

- 자주 조회되는 데이터는 Cache

- DB 서버 부하 감소 및 응답 시간 향상

- 어플리케이션 flow 변경

(평상 시 cache조회, 장애 시 DB조회)

Plan

C

캐시(메모리)

Application Application

읽기 요청 데이터 변경

Update 고객 상품

협력사 물류 기타

주문 고객 상품

협력사 물류 기타

주문

10 제8회 2015 한국 소프트웨어 아키텍트 대회

3. 데이터 분산 방안

2단계는 대용량 테이블을 중심으로 분산 필요하며 어플리케이션 변경 발생함

2단계 : 대용량 테이블을 중심으로 설계

■ 분리 기준 및 방향 ■ 데이터 분리 방안

증가 속도가 높은 테이블을

중심으로 설계 - 변경이 많이 발생하는 업무 분산

- 쓰기는 여러DB에 분산되고,

조회는 단일DB에서 수행하도록 분산

- Ex) 날짜/순번 X, 고객번호 O

2단계

Application

고객 상품

협력사 물류 기타

주문 주문 고객 상품

협력사 물류 기타

주문 서비스 Application

주문 주문

상품 주문 고객

백만(건) 천만(건) 억(건) Data Sync

기타 기타 기타

11 제8회 2015 한국 소프트웨어 아키텍트 대회

3. 데이터 분산 방안

2단계 데이터 분산은 개발 초기부터 데이터 성격에 따라 분류하고 모델링되어야 함

통합 테이블 분산 테이블 복제 테이블

• 마스터 또는 기준정보 테

이블과 같이 업무상 전체

목록을 제공해야 하는 테

이블

• 기본 정보에 대한 상세 내

역이나 트랜잭션 성격의

정보를 관리하며 대용량이

예상되는 테이블

• 분산된 테이블간 조인없이

독립적으로 처리가 가능한

테이블

• 공통코드 테이블과 같이

분산된 데이터와 조인이

필요한 테이블

통합 Shard1 Shard2 Shard3 Shard4

고객 정보 한국 지역

공통 코드 공통 코드

Application

중국 지역

공통 코드

미주 지역

공통 코드

유럽 지역

공통 코드

Shard 기준 ex) 지역, 고객ID 등

Report DB

전체 지역

공통 코드

Report 테이블

• 요약 테이블과 같이 분산

된 데이터의 통합 뷰 및

분석 정보를 관리하는 테

이블

12 제8회 2015 한국 소프트웨어 아키텍트 대회

4. 분산 아키텍처 고려 사항

분산 아키텍처의 복잡성을 보완하기 위해 서비스 추적성과 데이터 처리를 Framework화 필요

서비스A 서비스B

서비스C

서비스D 서비스E

복잡한 흐름간 서비스 추적성 확보 필요

Shard1 Shard2 Shard0

Shard 단위 처리

지정된 DB 단일 처리

Shard 통합 조회

Shard된 데이터 Merge

Shard Routing

Biz Biz Biz

DAO DAO DAO

Shard1 Shard2 Shard0

요청

Query Query Query

Parallel Execute

Merge Result

요청

Chapter III 분산 아키텍처 Framework

1. 분산 아키텍처 Framework 2. Service Discovery 3. Data Shard 4. Async Processing 5. Data Aggregation 6. Service Trace 7. 적용 사례

14 제8회 2015 한국 소프트웨어 아키텍트 대회

(고객 마스터)

(상품 마스터)

(주문1)

(주문n)

1. 분산 아키텍처 Framework

분산 아키텍처를 효율적으로 구현하기 위해 Service Trace, Shard & Aggregation 등의 기능 필요함

15 제8회 2015 한국 소프트웨어 아키텍트 대회

2. Service Discovery

Service Discovery는 복잡한 서비스 관계를 관리하고 호출을 라우팅함

(고객,상품)

(주문)

(주문)

(주문)

16 제8회 2015 한국 소프트웨어 아키텍트 대회

3. Data Shard

Data Shard는 응용 프로그램을 위해 분산된 데이터에 대한 라우팅 기능 제공함 (Shard Rule 활용)

(고객,상품)

(주문)

(주문)

(주문)

17 제8회 2015 한국 소프트웨어 아키텍트 대회

4. Async Processing

Async Processing은 분산된 서비스 간에 데이터 정합성을 보장함

(고객,상품)

(주문)

(주문)

(주문)

18 제8회 2015 한국 소프트웨어 아키텍트 대회

5. Data Aggregation

Data Aggregation은 분산된 데이터에 병렬 쿼리 질의 수행 및 데이터 병합 기능 제공함

(고객,상품)

(주문)

(주문)

(주문)

19 제8회 2015 한국 소프트웨어 아키텍트 대회

(주문)

(주문)

6. Service Trace

Service Trace는 TunA 도구를 통해 분산된 서비스 호출을 추적함

서비스간 의존성 통계 분석

(고객,상품)

수집서버 성능 모니터링

20 제8회 2015 한국 소프트웨어 아키텍트 대회

6. Service Trace

Service Trace는 TunA 도구를 통해 분산된 서비스 호출을 추적함

감사합니다.