마이크로서비스 아키텍쳐
3단계 프로세스
1단계는 요청을 추출, 요청에 대해서 추상적으로 관찰 해야 합니다.
2단계는 어떻게 서비스로 분해할지 결정 해야 합니다.
3단계는 서비스별 API를 정의하고 서비스에 역할 배정 및 서비스간 협동에 대해서 정의를 해야 합니다.
#
1단계. 시스템 작업 식별
시스템 작업을 기술하기 위한 고수준 도메인 모델을 생성한다.
위 그림을 통하면 이는 Order, Delivery, Restaurant 로 추출할 수 있다.
고수준의 도메인 모델로 나누기 위해서는 시나리오 작성을 통해서 하는 방법이 있다.
전제 (Given)
- 소비자가 있다.
- 음식점이 있다.
- 음식점은 소비자의 주소로 음식을 배달 한다.
- 주문 총액은 최소 주문량 조건에 부합해야 한다.
조건 (When)
- 소비자가 음식점에 주문을 할 때
결과 (Then)
- 소비자의 신용카드가 승인 되고
- 주문은 음식점 승인 대기로 생성
- 생성된 주문은 소비자와 연관
- 생성된 주문은 음식점과 연관
주문 생성 시나리오를 통해서 Consumer, Order, Restraunt, CreditCard, MenuItem 등의 클래스(명사)를 알 수 있다.
전제 (Given)
- 현재 주문은 음식점 승인 대기 상태
- 음식점에 배달원이 있다.
조건 (When)
- 음식점은 언제까지 음식을 준비할 수 있다고 승인 한다.
결과 (Then)
- 주문은 음식점 승인으로 변경
- 주문의 약속 시간이 업데이트
- 주문은 배달원 배정
주문 승인 시나리오에서 Courier(배달원), Delievery, Address등의 클래스(명사)를 알 수 있다.
시나리오 확인 후에는 클래스를 정리한다.
Consumer : 주문을 하는 소비자
Order : 소비자가 한 주문 및 상태 추적
OderLineItem : Order 품목
DeliveryInfo : 주문 배달할 시간과 장소 등
Restaruant : 음식점
Courier : 주문을 배달하는 배달원 가용성 및 현재 위치 추적
Address : 소바자와 음식점의 주소
Location : 주소의 위치(위도,경도)
작업정의
작업 식별 후에는 작업에 대한 더 추상화 정의를 한다.
소비자
주문 생성 - createOrder()
- 주문을 생성한다.
음식점
주문 접수 - accecptOrder()
- 음식점에 주문정보를 접수하고 준비할 수 있도록 한다.
주문 픽업 - notifyOrderIsReadyForPickup()
- 주문 음식이 준비 되었다고 알린다.
배달원
위치 업데이트 - updateLocation()
- 배달원의 현재 위치를 업데이트.
배달 픽업 - notifyDeliveryPickUp()
- 주문 음식이 배달원이 픽업 했음을 알린다.
주문 배달 완료 - notifyDeliveryIsDone()
- 주문음식을 배달원이 소비자에게 배달 했음을 알린다.
#
2단계. 서비스 식별
비지니스(조직의 하는 업무 및 능력)을 분석 합니다.
공급자 관리
배달원 관리 : 배달 정보 관리
음식점 정보 관리 : 음식점 메뉴, 위치, 영업 시간, 기타 정보
소비자 관리
소비자에 관한 정보 관리
주문 접수 및 이행
주문 관리 : 음식점과 소비자가 주문을 생성/관리
배달원 가용성 : 배달원의 배달 가능 유무 실시간 관리
배달 관리 : 주문을 소비자에게 배달
회계
소비자, 음식점, 배달원 회계
이후에 더 정교하게 발전할 것이다. 처음에는 서비스들을 어떻게 협동 구현하는지 살피는 과정이 중요하다.
'IT > Micro Service Architecture' 카테고리의 다른 글
Micro Service Architecture - 6. IPC 2 (0) | 2021.09.27 |
---|---|
Micro Service Architecture - 6. IPC (0) | 2021.09.27 |
Micro Service Architecture - 4.분해전략 (0) | 2021.09.27 |
Micro Service Architecture - 3.패턴 (0) | 2021.09.07 |
Micro Service Architecture - 2.FTGO 예시 (0) | 2021.09.06 |