Architecture

MSA 특징

Aslan0 2025. 10. 1. 17:26
반응형

작은 서비스

  • 독립된 비즈니스 -> 독립된 서비스
  • Eric Evands "Domain Driven Design"(DDD)
    • Bounded Context : 하나의 서비스에 담을 수 있는 기능들의 그룹, 서비스 수준의 경계
    • Ubiquitous Language : 같은 업무를 하는 사람들은 업무상 같은 단어와 용어를 사용

독립된 서비스

  • 독립적 실행, 다른서비스 결합이 없는 서비스
  • 구현, 배포 실행, 장애에 대한 영향 받지 않음
    • Ex) "고객 관리 서비스"중 고객등록 기능에 문제가 생겨도, 이와 관계없이 예약 가능

응집된 서비스

  • 하나의 서비스는 기능적으로 응집
  • 서비스의 역할이 한 가지 일을 위해 묶여야 함 -> 단순 명확, 오류 최소화
    • ex) 수강 신청 시스템

자율적 서비스

  • 서비스의 기획, 개발, 테스트, 배포 및 서비스의 운영까지 담당 조직이 독립적으로 의사 결정 -> Ownership

Microservice 기획

  1. 도메인 이해 / 요구분석 / 조직 분석
    • 사용자, 업무 흐름, 핵심 업무, 업무 우선 순위
  2. 마이크로 서비스 원칙 수립
    • 마이크로서비스 경계, 분할, 크기
      • 하향식 접근 : 서비스에 따라 업무의 중요도(핵심, 부가)와 형태(온라인, 배치), 팀 크기)등을 고려하여 서비스 분할
      • 상향식 접근 : 데이터 연관성과 Ownership에 따라서 서비스를 위로 접근하며접근
      • 서비스 일부 분리 : 기존 시스템에서 서비스 기능을 따로 분리하여 점진적으로 접근
  3. 상관 분석
    • 사용자, 업무, 데이터 간 상관관계
  4. 서비스 식별
    • 서비스와 데이터 관계 : 데이터간의 스키마를 나눌수있는단위로 나눔
    • 서비스 간의 종속성 : 사용 관계에 따라서 나눔
    • 데이터간 종속성 : 데이터간의 종속성이 있을경우 스키마를 나눠서 관리하는것도 방법임
    • 마이크로 서비스에서 각 2개의 독립적인 스키마를 가진다면 같은 속성을 가지게하여(중복되게) 중복을 인정하도록 설계하는 방법도 하나의 방법임
    • 서비스 중간중간 동기화가 맞지 않을 수 있지만 최종적으로는 마지막에는 동기화가 맞는다. "Eventual Consistency"
      • 최종적인 일관성을 가진다.
  •  

 

 

반응형