post architecture 와 framework - kosta.or.kr · 9 . 제. 8. 회. 2015 . 한국 소프트웨어...
TRANSCRIPT
2015. 07. 16 LG CNS 김은정 총괄
I. Post Architecture? II. 분산 아키텍처 적용 방안 III. 분산 아키텍처 Framework
2015(제8회) 한국 소프트웨어 아키텍트 대회
Post Architecture와 분산 Framework
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
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 도구를 통해 분산된 서비스 호출을 추적함
서비스간 의존성 통계 분석
(고객,상품)
수집서버 성능 모니터링