MSA 장단점

topics 400-인프라 & 아키텍처 404 마이크로서비스(MSA)
types 이론
tags #msa #architecture

MSA 장단점

장점

  • 독립적인 배포
    • 각 서비스를 독립적으로 배포 가능
    • 전체 시스템을 재배포할 필요 없음
    • 무중단 배포 가능
  • 기술 스택의 자유
    • 각 서비스별로 다른 언어, 프레임워크 사용 가능
    • 서비스 특성에 맞는 최적의 기술 선택 가능
  • 확장성
    • 서비스별로 독립적인 스케일링 가능
    • 트래픽이 많은 서비스만 확장 가능
    • 리소스 효율적 사용
  • 장애 격리
    • 한 서비스의 장애가 전체 시스템에 영향을 주지 않음
    • 장애 발생 시 해당 서비스만 복구하면 됨

단점

  • 복잡도 증가

    • 분산 시스템의 복잡도
    • 서비스 간 통신 오버헤드
    • 트랜잭션 관리의 어려움
  • 운영 부담

    • 많은 수의 서비스 모니터링 필요
    • 로그 관리의 어려움
    • 배포 파이프라인 복잡
  • 데이터 일관성

    • 분산 트랜잭션 처리의 어려움
    • 데이터 불일치 가능성
    • 최종 일관성 보장 필요
  • 초기 비용

    • 인프라 구축 비용
    • 러닝 커브
    • 개발 및 운영 인력 필요

언제 사용할까

  • 서비스 규모가 크고 변경이 잦은 경우
  • 팀이 여러 개로 나뉘어 독립적으로 개발하는 경우
  • 서비스별로 다른 확장 요구사항이 있는 경우

But, 작은 규모의 서비스나 빠른 MVP 개발이 필요한 경우는 모노리스가 더 적합할 수 있다.