구현 전략 - TheOpenCloudEngine/uEngine-cloud GitHub Wiki

  1. 세부 마이크로 서비스 소개
    1. 도메인 서비스들
      1. Customer Service (고객 정보 서비스) 고객의 신상정보, 구매정보, 포인트 정보 등을 관리한다. 주문 서비스에 따라, 고객의 총 포인트가 갱신된다. 이후 고객의 선호 물품 정보에 따른 추천 서비스에 활용된다.
      2. Order Service (주문 서비스) 고객의 물품 주문 정보를 관리한다. 주문번호에 따라 배송 추적을 할 수 있다. 주문이 이루어지면 각 제품(Item Service) 에 대한 재고량을 확인하여 주문을 받는다.
      3. Item Service 제품에 대한 가격, 재고량, 포인트 정보를 관리한다.
    2. 일반 서비스들
      1. Semantic-Entity 챗봇 시나리오를 위하여 입력된 자연어의 의도를 적절히 이해할 수 있도록 해주는 번역 서비스
      2. Event Queue 여러 마이크로 서비스들 간에 즉시적인 연동이 어려운 경우, 이를 큐에 담아 전송시키는 서비스 (Kafka를 이용)
    3. 환경 서비스들
      1. API Gateway (Zuul) API Gateway 는 각 도메인 서비스들에 대한 접근 통제 (토큰 인증), DDOS 공격등에 대한 방어, 접근 URL 단일화 등 ㄱ. 보안처리, ㄴ. 성능, ㄷ. 시스템 통합에 대한 기능을 수행하기 때문에 꼭 필요하다. 이것이 없으면 도메인 서비스들은 외부 공격에 바로 노출 될 수 있고, 프론트엔드로 접근하여 사용하는 것도 어려워 진다.
      2. Service Registry 언급된 도메인 서비스들을 키값으로 등록하여 쉽게 찾을 수 있는 등록소. 이것이 있어야 서비스별로 재구동 되어도, 기존 서비스들이 새로이 올라온 서비스와 동적으로 연동될 수 있다.
      3. IAM (통합 인증토큰 발행 서비스) OAuth2.0 기반의 써드파티 인증을 포함한 여러 도메인 서비스들의 인증을 처리한다.
  2. 컨슈머
    1. 프론트엔드 Web UI 와 모바일 UI. REST 로 노출된 도메인 서비스들을 유저들이 활용할 수 있게 한다. API Gateway 를 경유해서만 접근한다. Web UI 는 MVVM 사상을 가진 VueJS 를 기본 추천하여 개발한다.
    2. BPM (Business Process Management) BPM 을 사용하면 프로그래밍을 하지않고도 쉽게 REST 서비스들을 연동한 서비스를 만들고 변경도 용이하다. 또한 이렇게 BPM으로 개발한 프로세스 자체를 하나의 도메인 서비스로 만들 수도 있다. 기존 REST 서비스 자산들을 다양한 조합으로 재생산하여 시나리오에서 제시할 "프로모션", "배송추적", "재고조회" 등의 업무 프로세스를 구현한다.
    3. 3rd-party 외부 비즈니스 파트너들이 도메인 서비스를 사용할 수 있도록 한다.