Infra & Devops/Architecture
마이크로 서비스 아키텍처(MSA, MicroService Architecture) 기본 개념
겸둥이xz
2021. 9. 29. 02:37
반응형
MSA란?
- Microservice는 SOA(Service Oriented Architecture)의 경량화 버전
- 하나의 Monolithic Application을 핵심 기능으로 세분화한 것
- 하나의 큰 어플리케이션을 여러개의 작은 단위로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처
Monolithic의 단점
- 하나의 기능을 추가하거나 수정하면 전체 시스템을 재배포 해야함
- 서비스가 커질수록 빌드, 테스트, 배포 시간이 기하급수적으로 늘어나고, 시스템 구조의 파악이 어려움
- 서비스를 부분적으로 Scale-out하기 힘들다
- 한 부분의 기능에 장애가 발생하면 전체 시스템이 마비됨
MSA의 장점
- 서비스들이 상호 독립적이여서 유지보수 및 배포가 간편함
- 서비스에 장애가 발생하면 각 서비스마다 독립적으로 발생하는 것이기 때문에 전체 시스템이 다운 되지않음
- 확장성이 용이함 : 새로운 기능이 필요하면 새로운 서비스를 만들어 배포
- 개발자는 각자 자신이 편한 언어로 개발가능
MSA로 구성된 전체 서비스가 커지면?
- MSA는 보다 복잡한 아키텍처로, 전체 서비스가 커지면 그 복잡도가 기하급수적으로 늘어남
- 서비스 간 호출 시 API를 사용하기 때문에, 통신 비용이나 Latency가 그만큼 늘어남
- 서비스가 분리되어 있기 때문에 테스트와 트랜잭션의 복잡도가 증가하고, 많은 자원을 필요로함
- 데이터가 여러 서비스에 걸쳐 분산되기 때문에 한번에 조회하기 어렵고, 데이터 정합성 관리가 어려움
반응형