ݺߣ

ݺߣShare a Scribd company logo
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
마이크로서비스 어떻게
디자인 할 것인가?
Philip Youngtae Kim
Pivotal
Agenda
• Domain Driven Design
• AppTx 방법론
• MSA 관련 테크놀로지
• MSA 고려사항
Domain Driven Design
Domain-Driven Design (DDD)
“코드를 변경하는 권한을 가진 모든 사
람들은 코드를 통해 모델을 표현할 수
있도록 교육을 받아야 한다. 모든 개발
자는 필수적으로 현업 담당자와 협의를
해야만 한다.”
- Eric Evans, Domain-Driven Design
“일반적으로 Bounded Context 당 한 팀이 구성이 됩니다. 한 팀은 여러 개의 Bounded Context를 관리할 수 있으나 여러 팀
이 한 개의 Bounded Context를 관리하는 것은 매우 어렵습니다.” - Evans
Bounded Context
Aggregates
AGGREGATES는 단일 단위로
처리되어야 하는 도메인 객체들의
묶음입니다.
● 트랜잭션 영역
● Aggregate Root를 통해서만
외부 연결
Vaughn Vernon, Domain-Driven Design Distilled
이벤트 기반 아키텍처
AppTx 방법론
Event
Storming
2. Event Storm
Thin
Slice
3. “Thin Slice(s)” 선택
OKRs1. 목표 설정 (OKR)
Tested
Code
6. 테스트 완료 및 동작하는 코드 생성
Snap-E
5. Snap-E
API DATA
PUB / SUB EXT
STORIES UI RISKS
SERVICE A
Patterns
7. 재사용 가능한 패턴
Boris
4. “Boris” - 아키텍처 표현
거창하게..
Where to?
Objectives
Key Results
+
-
증가
감소%
#
올바른
방향으로
가고 있나?
AppTx
70 - 80%
OKRs
OKR Monitoring
Monitor by Status and Confidence
Event Storming
Simple Tools
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
할인
Event Storming (영화예매 샘플)
결제
극장
영화
선택
날짜
선택
상영관
선택
좌석
선택
결제
시작
신용카드
입력
결제
처리
결제
완료
예매
완료
!
도메인
이벤트
관련된 비즈니스 이벤트
“좌석 선택”, “티켓 예매 완료”
Aggregate
Brains
액션 수행 / 이벤트 생성
할인코드
입력
할인
처리
?
슬라이스
예매
시작
영화
결제
Bounded Context
예약
Boris Diagram
Service
마이크로서비스
결제 서비스
Queue
메세지 큐
“좌석 요청”
UI External
외부 시스템
연계
Service
Service Service
Service
Service
Ext
Ext
Q
Q
Q
UI
UI
Boris Diagram 샘플
Boris Diagram
아키텍처 표현 이벤트 플로우
마이크로서비스 API
시나리오 모델링 백로그 생성
SnapE
API
Data Source / Storage
UI Risks
Stories
Rabbit
MQ
REST / J
SON
CICS G
W
Other
Purchase H
istory
AdminUI
Dependent
On...
GET /purchases
GET /purchases
GET /purchases
SnapE 샘플
산출물 샘플
Event Storm
Boris
SnapE
Pivotal Tracker
© Copyright 2018 Pivotal Software, Inc. All rights reserved.
SnapE에서 도출된 요건은 Pivotal Tracker에서 관리
가 됩니다.
모든 팀원은 Tracker에 접근이 가능하고 현재 구현중
인 작업 상태를 실시간으로 확인이 가능합니다.
유저 스토리는 사용자에게 가치 있는 작업내용을 기반
으로 세분화된 형태로 만들어집니다.
유저 스토리는 높은 우선순위대로 위부터 차례대로 나
열됩니다.
사용자의 피드백을 자주 반영하기 위해 빈번한 주기로
릴리즈를 합니다.
릴리즈 파이프라인 자동화
코드 변경
빌드, 테스트, 배포 자
동화
바이너리 저장 스테이징 배포, UAT
운영 시스템 무중단 업
그레이드
샘플Tool
Gitlab ArtifactoryConcourse
Pivotal HA Services
(API기반)
가능한 여러 종류의 테스트
를 자동화하는 파이프라인을
빌드
자동화 된 프로세스
에 기반하여 다음 단
계의 환경으로 프로
모션
롤링 방식을 기반으로
무 중단 패치 및 업그
레이드
</>
12 factor를 반영하는 형
태의 코드
마이크로서비스 관련 패턴들
API Gateway, Edge
Server, BFFInverse Conway
Event Shunting
ACL, Context Mapping,
Strangler
Bridge, Router, Proxy,
Facade
Eventual Consistency,
Sagas, ESB >>
microservices
Cookbooks
재사용이 가능한 패턴은 문서화되어
다른 개발자들이 참조할 수 있게
합니다.
많은 기업들이 애플리케이션 변환을
위해 사용한 검증된 Playbooks와
Blueprints를 참조 합니다.
Selected
aggregate
2. To Boris
Selected
user story
3. To Snap-E
User story
breakdown
4. To story breakdown
5. To tested and
working code
Low-level design decisions:
1. Use Kafka as async interface for receiving job
orders
2. Define Job Order Event entity (data received)
3. Define REST API for job order lookup
...
App Nav + Modernization
Flow 1. From E.S.
6. To Cookbook of
Patterns
MSA 관련 테크놀로지
MSA 관련 기술
Microservice Architecture
1. API & API Gateway
2. Traffic / Routing / Discovery
3. Messaging
4. Data / Backing Services
5. Application Monitoring
6. Transactions
7. Security
8. Batch
9. Event Sourcing / CQRS
10. CI/CD
Platform Architecture
1. Platform Monitoring
2. Scaling
3. Patching & Upgrading
4. HA Architecture
5. DR Architecture
MSA 고려사항
국내 프로젝트 개요
● 국내 제조기업의 MES의 마이크로서비스 프로젝트
● Pivotal Application Transformation (AppTx) 서비스를 통한 서비스 도출 및
아키텍처 검증
Oracle DB
WebLogic
Schema
Application
Oracle DB
Pivotal Cloud Foundry
SchemaSchemaSchemaSchemaSchema
SchemaSchemaSchemaSchemaMicroservice
고려사항
● 마이크로서비스 자체가 목표가 아닌 얻고자 하는 Value에 포커스를 맞춰 MSA 디자인
● 지속적인 애플리케이션 업데이트와 배포를 감안
● 개발자들의 Learning Curve를 감안
○ 국내 개발자들은 DB SQL을 이용한 개발에 친숙 (예> Union, join, with, connected by)
○ 이벤트 기반 구현에 대한 개발자들의 생소함
● 마이크로서비스 운영에 대한 고민이 필요
○ DevOps와 플랫폼 필요
○ 마이크로서비스 분산환경에서의 트러블슈팅 노하우 필요
● 마이크로서비스 경험이 있는 마스터 필요
고맙습니다.
Philip Youngtae Kim
philipkim@pivotal.io
Ad

Recommended

PPTX
MSA ( Microservices Architecture ) 발표 자료 다운로드
Opennaru, inc.
PDF
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
VMware Tanzu Korea
PDF
도메인 주도 설계의 본질
Young-Ho Cho
PDF
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
Amazon Web Services Korea
PDF
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
if kakao
PDF
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
Amazon Web Services Korea
PDF
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
YongSung Yoon
PDF
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
VMware Tanzu Korea
PDF
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
Amazon Web Services Korea
PDF
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
Ji-Woong Choi
PDF
[115]쿠팡 서비스 클라우드 마이그레이션 통해 배운것들
NAVER D2
PPTX
4. 대용량 아키텍쳐 설계 패턴
Terry Cho
PDF
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드
SangIn Choung
PDF
도메인 주도 설계 (Domain Driven Design)
Ashal aka JOKER
PDF
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Steve Pember
PDF
역삼역, 이마트 AI_v최종.pdf
DeukJin Jeon
PPT
Introduction to the Web API
Brad Genereaux
PDF
[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기
NHN FORWARD
PPTX
1. 아키텍쳐 설계 프로세스
Terry Cho
PDF
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
Amazon Web Services Korea
PPTX
[112]rest에서 graph ql과 relay로 갈아타기 이정우
NAVER D2
PDF
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
Amazon Web Services Korea
PPTX
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
Terry Cho
PDF
이벤트 기반 분산 시스템을 향한 여정
Arawn Park
PPTX
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
Terry Cho
PDF
PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...
Amazon Web Services Korea
PDF
Can Apache Kafka Replace a Database?
Kai Wähner
PDF
Event Storming and Saga
Araf Karsh Hamid
PDF
꿀밋업2탄_도메인 모델에 따른 데이터 분리 저장과 API 연결
VMware Tanzu Korea
PDF
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
Amazon Web Services Korea

More Related Content

What's hot (20)

PDF
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
Amazon Web Services Korea
PDF
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
Ji-Woong Choi
PDF
[115]쿠팡 서비스 클라우드 마이그레이션 통해 배운것들
NAVER D2
PPTX
4. 대용량 아키텍쳐 설계 패턴
Terry Cho
PDF
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드
SangIn Choung
PDF
도메인 주도 설계 (Domain Driven Design)
Ashal aka JOKER
PDF
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Steve Pember
PDF
역삼역, 이마트 AI_v최종.pdf
DeukJin Jeon
PPT
Introduction to the Web API
Brad Genereaux
PDF
[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기
NHN FORWARD
PPTX
1. 아키텍쳐 설계 프로세스
Terry Cho
PDF
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
Amazon Web Services Korea
PPTX
[112]rest에서 graph ql과 relay로 갈아타기 이정우
NAVER D2
PDF
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
Amazon Web Services Korea
PPTX
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
Terry Cho
PDF
이벤트 기반 분산 시스템을 향한 여정
Arawn Park
PPTX
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
Terry Cho
PDF
PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...
Amazon Web Services Korea
PDF
Can Apache Kafka Replace a Database?
Kai Wähner
PDF
Event Storming and Saga
Araf Karsh Hamid
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
Amazon Web Services Korea
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
Ji-Woong Choi
[115]쿠팡 서비스 클라우드 마이그레이션 통해 배운것들
NAVER D2
4. 대용량 아키텍쳐 설계 패턴
Terry Cho
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드
SangIn Choung
도메인 주도 설계 (Domain Driven Design)
Ashal aka JOKER
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Steve Pember
역삼역, 이마트 AI_v최종.pdf
DeukJin Jeon
Introduction to the Web API
Brad Genereaux
[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기
NHN FORWARD
1. 아키텍쳐 설계 프로세스
Terry Cho
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
Amazon Web Services Korea
[112]rest에서 graph ql과 relay로 갈아타기 이정우
NAVER D2
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
Amazon Web Services Korea
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
Terry Cho
이벤트 기반 분산 시스템을 향한 여정
Arawn Park
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
Terry Cho
PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...
Amazon Web Services Korea
Can Apache Kafka Replace a Database?
Kai Wähner
Event Storming and Saga
Araf Karsh Hamid

Similar to MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가? (20)

PDF
꿀밋업2탄_도메인 모델에 따른 데이터 분리 저장과 API 연결
VMware Tanzu Korea
PDF
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
Amazon Web Services Korea
PDF
Openshift 활용을 위한 Application의 준비, Cloud Native
rockplace
PDF
Microservice Architecture
Yoonsung Jung
PDF
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
Open Source Consulting
PPTX
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
uEngine Solutions
PPTX
애플리케이션 최적화를 위한 컨테이너 인프라 구축
rockplace
PDF
Event storming based msa training commerce example add_handson_v3
uEngine Solutions
PDF
Private PaaS with Docker, spring cloud and mesos
uEngine Solutions
PDF
Cloud life seminar open shift,이준영(배포용)
Software in Life
PDF
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
NAVER D2
PDF
Sencha ExtJS를 활용한 Big Data Platform 개발 사례
미래웹기술연구소 (MIRAE WEB)
PDF
Pivotal 101세미나 발표자료 (PAS,PKS)
VMware Tanzu Korea
PPTX
Open standard open cloud engine (3)
uEngine Solutions
PDF
DevOps를 위한 AWS 서비스 및 개발도구 -김상필 솔루션아키텍트 :: AWS 파트너 테크시프트 세미나
Amazon Web Services Korea
PDF
Microservices
영기 김
PPTX
Open standard open cloud engine for digital business process
uEngine Solutions
PPTX
Micro Service Architecture의 이해
Terry Cho
PDF
Intro to hpe helion stackato_paa_s
Seong-Bok Lee
PDF
AWS CLOUD 2017 - AWS 신규 서비스를 통해 본 클라우드의 미래 (김봉환 솔루션즈 아키텍트)
Amazon Web Services Korea
꿀밋업2탄_도메인 모델에 따른 데이터 분리 저장과 API 연결
VMware Tanzu Korea
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
Amazon Web Services Korea
Openshift 활용을 위한 Application의 준비, Cloud Native
rockplace
Microservice Architecture
Yoonsung Jung
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
Open Source Consulting
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
uEngine Solutions
애플리케이션 최적화를 위한 컨테이너 인프라 구축
rockplace
Event storming based msa training commerce example add_handson_v3
uEngine Solutions
Private PaaS with Docker, spring cloud and mesos
uEngine Solutions
Cloud life seminar open shift,이준영(배포용)
Software in Life
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
NAVER D2
Sencha ExtJS를 활용한 Big Data Platform 개발 사례
미래웹기술연구소 (MIRAE WEB)
Pivotal 101세미나 발표자료 (PAS,PKS)
VMware Tanzu Korea
Open standard open cloud engine (3)
uEngine Solutions
DevOps를 위한 AWS 서비스 및 개발도구 -김상필 솔루션아키텍트 :: AWS 파트너 테크시프트 세미나
Amazon Web Services Korea
Microservices
영기 김
Open standard open cloud engine for digital business process
uEngine Solutions
Micro Service Architecture의 이해
Terry Cho
Intro to hpe helion stackato_paa_s
Seong-Bok Lee
AWS CLOUD 2017 - AWS 신규 서비스를 통해 본 클라우드의 미래 (김봉환 솔루션즈 아키텍트)
Amazon Web Services Korea
Ad

More from VMware Tanzu Korea (20)

PDF
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)
VMware Tanzu Korea
PDF
꿶밋업1탄_왜_마이크로서비스인갶
VMware Tanzu Korea
PDF
2018 Pivotal DevOps Day_DevOps 플랫폼 소개 및 데모 (Pivotal Application Service, Pivo...
VMware Tanzu Korea
PDF
2018 Pivotal DevOps Day_DevOps 플랫폼 팀 육성/운영 사례
VMware Tanzu Korea
PDF
2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례
VMware Tanzu Korea
PDF
2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개
VMware Tanzu Korea
PDF
Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...
VMware Tanzu Korea
PDF
숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인
VMware Tanzu Korea
PDF
클라우드 네이티브 플랫폼의 미래 - Kubernetes 기반의 PCF 로드맵
VMware Tanzu Korea
PDF
굿 소프트웨어 컴퍼니로의 여정(Journey To Be a Good Software Company)
VMware Tanzu Korea
PDF
Pivotal Labs 고객사례 - Coinone
VMware Tanzu Korea
PPTX
Spring Project와 최신 Pivotal Cloud Foundry 업데이트
VMware Tanzu Korea
PPTX
Netflix MSA and Pivotal
VMware Tanzu Korea
PDF
클라우드 네이티브로의 전환을 위한 여정
VMware Tanzu Korea
PDF
Cloud native enterprise
VMware Tanzu Korea
PDF
gp text roadmap presentation
VMware Tanzu Korea
PDF
GPCloud ( GP on PKS)
VMware Tanzu Korea
PDF
Gemfire Introduction
VMware Tanzu Korea
PDF
Greenplum User Case
VMware Tanzu Korea
PDF
Greenplum Roadmap
VMware Tanzu Korea
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)
VMware Tanzu Korea
꿶밋업1탄_왜_마이크로서비스인갶
VMware Tanzu Korea
2018 Pivotal DevOps Day_DevOps 플랫폼 소개 및 데모 (Pivotal Application Service, Pivo...
VMware Tanzu Korea
2018 Pivotal DevOps Day_DevOps 플랫폼 팀 육성/운영 사례
VMware Tanzu Korea
2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례
VMware Tanzu Korea
2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개
VMware Tanzu Korea
Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...
VMware Tanzu Korea
숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인
VMware Tanzu Korea
클라우드 네이티브 플랫폼의 미래 - Kubernetes 기반의 PCF 로드맵
VMware Tanzu Korea
굿 소프트웨어 컴퍼니로의 여정(Journey To Be a Good Software Company)
VMware Tanzu Korea
Pivotal Labs 고객사례 - Coinone
VMware Tanzu Korea
Spring Project와 최신 Pivotal Cloud Foundry 업데이트
VMware Tanzu Korea
Netflix MSA and Pivotal
VMware Tanzu Korea
클라우드 네이티브로의 전환을 위한 여정
VMware Tanzu Korea
Cloud native enterprise
VMware Tanzu Korea
gp text roadmap presentation
VMware Tanzu Korea
GPCloud ( GP on PKS)
VMware Tanzu Korea
Gemfire Introduction
VMware Tanzu Korea
Greenplum User Case
VMware Tanzu Korea
Greenplum Roadmap
VMware Tanzu Korea
Ad

MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?

  • 2. 마이크로서비스 어떻게 디자인 할 것인가? Philip Youngtae Kim Pivotal
  • 3. Agenda • Domain Driven Design • AppTx 방법론 • MSA 관련 테크놀로지 • MSA 고려사항
  • 5. Domain-Driven Design (DDD) “코드를 변경하는 권한을 가진 모든 사 람들은 코드를 통해 모델을 표현할 수 있도록 교육을 받아야 한다. 모든 개발 자는 필수적으로 현업 담당자와 협의를 해야만 한다.” - Eric Evans, Domain-Driven Design
  • 6. “일반적으로 Bounded Context 당 한 팀이 구성이 됩니다. 한 팀은 여러 개의 Bounded Context를 관리할 수 있으나 여러 팀 이 한 개의 Bounded Context를 관리하는 것은 매우 어렵습니다.” - Evans Bounded Context
  • 7. Aggregates AGGREGATES는 단일 단위로 처리되어야 하는 도메인 객체들의 묶음입니다. ● 트랜잭션 영역 ● Aggregate Root를 통해서만 외부 연결
  • 8. Vaughn Vernon, Domain-Driven Design Distilled 이벤트 기반 아키텍처
  • 10. Event Storming 2. Event Storm Thin Slice 3. “Thin Slice(s)” 선택 OKRs1. 목표 설정 (OKR) Tested Code 6. 테스트 완료 및 동작하는 코드 생성 Snap-E 5. Snap-E API DATA PUB / SUB EXT STORIES UI RISKS SERVICE A Patterns 7. 재사용 가능한 패턴 Boris 4. “Boris” - 아키텍처 표현
  • 12. OKR Monitoring Monitor by Status and Confidence
  • 15. 할인 Event Storming (영화예매 샘플) 결제 극장 영화 선택 날짜 선택 상영관 선택 좌석 선택 결제 시작 신용카드 입력 결제 처리 결제 완료 예매 완료 ! 도메인 이벤트 관련된 비즈니스 이벤트 “좌석 선택”, “티켓 예매 완료” Aggregate Brains 액션 수행 / 이벤트 생성 할인코드 입력 할인 처리 ? 슬라이스 예매 시작 영화 결제 Bounded Context 예약
  • 16. Boris Diagram Service 마이크로서비스 결제 서비스 Queue 메세지 큐 “좌석 요청” UI External 외부 시스템 연계 Service Service Service Service Service Ext Ext Q Q Q UI UI
  • 18. Boris Diagram 아키텍처 표현 이벤트 플로우 마이크로서비스 API 시나리오 모델링 백로그 생성
  • 19. SnapE API Data Source / Storage UI Risks Stories Rabbit MQ REST / J SON CICS G W Other Purchase H istory AdminUI Dependent On... GET /purchases GET /purchases GET /purchases
  • 22. Pivotal Tracker © Copyright 2018 Pivotal Software, Inc. All rights reserved. SnapE에서 도출된 요건은 Pivotal Tracker에서 관리 가 됩니다. 모든 팀원은 Tracker에 접근이 가능하고 현재 구현중 인 작업 상태를 실시간으로 확인이 가능합니다. 유저 스토리는 사용자에게 가치 있는 작업내용을 기반 으로 세분화된 형태로 만들어집니다. 유저 스토리는 높은 우선순위대로 위부터 차례대로 나 열됩니다. 사용자의 피드백을 자주 반영하기 위해 빈번한 주기로 릴리즈를 합니다.
  • 23. 릴리즈 파이프라인 자동화 코드 변경 빌드, 테스트, 배포 자 동화 바이너리 저장 스테이징 배포, UAT 운영 시스템 무중단 업 그레이드 샘플Tool Gitlab ArtifactoryConcourse Pivotal HA Services (API기반) 가능한 여러 종류의 테스트 를 자동화하는 파이프라인을 빌드 자동화 된 프로세스 에 기반하여 다음 단 계의 환경으로 프로 모션 롤링 방식을 기반으로 무 중단 패치 및 업그 레이드 </> 12 factor를 반영하는 형 태의 코드
  • 24. 마이크로서비스 관련 패턴들 API Gateway, Edge Server, BFFInverse Conway Event Shunting ACL, Context Mapping, Strangler Bridge, Router, Proxy, Facade Eventual Consistency, Sagas, ESB >> microservices
  • 25. Cookbooks 재사용이 가능한 패턴은 문서화되어 다른 개발자들이 참조할 수 있게 합니다. 많은 기업들이 애플리케이션 변환을 위해 사용한 검증된 Playbooks와 Blueprints를 참조 합니다.
  • 26. Selected aggregate 2. To Boris Selected user story 3. To Snap-E User story breakdown 4. To story breakdown 5. To tested and working code Low-level design decisions: 1. Use Kafka as async interface for receiving job orders 2. Define Job Order Event entity (data received) 3. Define REST API for job order lookup ... App Nav + Modernization Flow 1. From E.S. 6. To Cookbook of Patterns
  • 28. MSA 관련 기술 Microservice Architecture 1. API & API Gateway 2. Traffic / Routing / Discovery 3. Messaging 4. Data / Backing Services 5. Application Monitoring 6. Transactions 7. Security 8. Batch 9. Event Sourcing / CQRS 10. CI/CD Platform Architecture 1. Platform Monitoring 2. Scaling 3. Patching & Upgrading 4. HA Architecture 5. DR Architecture
  • 30. 국내 프로젝트 개요 ● 국내 제조기업의 MES의 마이크로서비스 프로젝트 ● Pivotal Application Transformation (AppTx) 서비스를 통한 서비스 도출 및 아키텍처 검증 Oracle DB WebLogic Schema Application Oracle DB Pivotal Cloud Foundry SchemaSchemaSchemaSchemaSchema SchemaSchemaSchemaSchemaMicroservice
  • 31. 고려사항 ● 마이크로서비스 자체가 목표가 아닌 얻고자 하는 Value에 포커스를 맞춰 MSA 디자인 ● 지속적인 애플리케이션 업데이트와 배포를 감안 ● 개발자들의 Learning Curve를 감안 ○ 국내 개발자들은 DB SQL을 이용한 개발에 친숙 (예> Union, join, with, connected by) ○ 이벤트 기반 구현에 대한 개발자들의 생소함 ● 마이크로서비스 운영에 대한 고민이 필요 ○ DevOps와 플랫폼 필요 ○ 마이크로서비스 분산환경에서의 트러블슈팅 노하우 필요 ● 마이크로서비스 경험이 있는 마스터 필요