MSA 사례 및 사례 별 MSA 적용 절차 정리

2024. 2. 28. 16:31기타

MSA 적용을 위해 MSA 사례를 조사하고 MSA 적용 절차를 정리한 문서입니다. 다양한 추가적으로 조사한 케이스가 생기면 업데이트 될 예정입니다.

사례

  1. NHN Payco
  2. 배달의민족

NHN Payco

참고 자료: https://www.youtube.com/watch?v=l195D5WT_tE

1.  How?

  • Repo 복제(Ctrl + C, V) - 쉽지만 무식한 방법(문제점을 똑같이 안고 감)
  • 배포 시간 줄이기?
  • 섞여있는 소스를 한땀 한땀 발라낸다 - 오래된 기반 프레임워크
  • 시스템 업그레이드의 자유로움?

2. MSA 시작

현재 상황 파악 및 Plan

  • 담당자 선정
  • 비스 분리 범위 지정(어느 범위까지 MSA로 전환할 것인가?
  • 도입 방법은 어떻게 할 것인가?
  • 무엇부터 전환할 것인가?

기술 스택 조사

  • 다른 사례들을 통한 트렌드 및 기술 조사
  • 우리에게 맞는 기술 스택은 무엇인가

3. 사용하고 있는 기능 전수조사

사용하고 있는 기능 전수조사

4. 도메인 결합

  • 이유: 개발 하면서 소스 중복이 생김

도메인 결합


5. 기술 스택

Spring Cloud Netflix

  • API Gateway: Zuul
    • blocking 기반 동작
    • Spring Cloud Gateway와 다른점
      • non-blocking 기반
  • Service Discovery: Eureka
    • 각 서비스의 위치정보 저장
    • 이후 Apache Zookeeper 로 통합
  • Client side load Balncing: Ribbon
  • Circuit Breaker: Histrix

초기 구조

초기 구조

 

Spring Cloud Netflix 사용 기술

Spring Cloud Netflix

Service Discovery 변경

  • 기존에 사용하던 Apache Zookeeper를 재사용

Apache Zookeeper를 재사용


6. 배포 설정 통합

  • MSA는 배포의 자동화가 잘 이루어져 있어야 한다.
  • Spring Cloud Config Server
  • 각 서버들은 설정 파일들이 수정됨에 따라 빌드됨.
    • @RefreshScope를 통해 갱신

CI/CD 자동화

  • Docker Repository: Nexus Repository Manager 3
    • Docker 에서 제공하는 repo 보다 다양한 기능 제공
    • Maven Internal Registry(Private)
    • Docker Internal Registry(Private)
    • Maven Proxy Registry
    • Docker Proxy Registry
    • apt, bower, npm, pypi, yum …
  • Build & Deploy

Build & Deploy

Monitoring

  • nSight(NHN 사내 모니터링 툴)
  • Scouter
  • Grafana
  • Scouter - xlog

최종 아키텍처

2. 배달의 민족

참고 자료: https://www.youtube.com/watch?v=BnS6343GTkY&t=1987s

'기타' 카테고리의 다른 글

Intellij Mybatis Mapper 경고(Warring) 표시 제거  (0) 2024.03.12
Intellij Plugin 정리  (0) 2024.03.12
Airflow DockerCompose Test  (0) 2023.12.13
Chrome version Downgrade  (0) 2023.08.16
Google SearchConsole 등록방법  (0) 2023.07.12