Operation/System Architecture

MSA(Microservices Architecture)의 장단점

JaeHoney 2022. 8. 8. 12:29

장점

  • 각 서비스를 독립적으로 배포가 가능하다.
    • 유연한 확장
  • 코드 관리가 편리하다. (git conflict 가능성 감소)
  • 책임이 명확하게 분리된다.
  • 장애 범위가 축소된다.
    • 광고 서비스가 장애나도 전체 범위로 확산되지 않음
  • 팀별 코드 이해도 증가
  • 생산성 증가
  • 출시 시간 단축

 

단점

  • 구현 난이도 상승
  • API 사용 범위 파악이 어려움
    • 해당 API 스펙을 변경하면 예상 치 못한 서비스에서 장애가 날 수 있음
  • 리소스 비용이 크다.
    • 서버가 많이 필요
    • 배포가 훨씬 더 많고 잦음
  • 트랜잭션 관리가 복잡함
    • 분산 서비스마다 트랜잭션 관리를 처리해야 함
    • 메시징 시스템이 필요할 수 있음
  • 통합 테스트가 어려움