MSA 장단점
| topics | 400-인프라 & 아키텍처 404 마이크로서비스(MSA) |
| types | 이론 |
| tags | #msa #architecture |
MSA 장단점
장점
- 독립적인 배포
- 각 서비스를 독립적으로 배포 가능
- 전체 시스템을 재배포할 필요 없음
- 무중단 배포 가능
- 기술 스택의 자유
- 각 서비스별로 다른 언어, 프레임워크 사용 가능
- 서비스 특성에 맞는 최적의 기술 선택 가능
- 확장성
- 서비스별로 독립적인 스케일링 가능
- 트래픽이 많은 서비스만 확장 가능
- 리소스 효율적 사용
- 장애 격리
- 한 서비스의 장애가 전체 시스템에 영향을 주지 않음
- 장애 발생 시 해당 서비스만 복구하면 됨
단점
복잡도 증가
- 분산 시스템의 복잡도
- 서비스 간 통신 오버헤드
- 트랜잭션 관리의 어려움
운영 부담
- 많은 수의 서비스 모니터링 필요
- 로그 관리의 어려움
- 배포 파이프라인 복잡
데이터 일관성
- 분산 트랜잭션 처리의 어려움
- 데이터 불일치 가능성
- 최종 일관성 보장 필요
초기 비용
- 인프라 구축 비용
- 러닝 커브
- 개발 및 운영 인력 필요
언제 사용할까
- 서비스 규모가 크고 변경이 잦은 경우
- 팀이 여러 개로 나뉘어 독립적으로 개발하는 경우
- 서비스별로 다른 확장 요구사항이 있는 경우
But, 작은 규모의 서비스나 빠른 MVP 개발이 필요한 경우는 모노리스가 더 적합할 수 있다.