gdg의 MSA스터디 1주차에 msa-ma 차이점 과 msa를 사용하기 좋은 상황 에 대해 알아보았다.
MSA(MicroService Architecture), MA(Monolithic Architecture) 차이점
5가지 차이를 알아보았다. 구조, 배포, 기술스택, 장애, 확장성
- 구조
- MSA의 각 서비스는 서로 독립적인 형태
- MA의 서비스는 하나의 애플리케이션으로 통합되어 비교적 높은 의존성
- 배포
- MSA는 특정 서비스 단위로 배포가 가능
- MA는 특정 서비스만을 배포할 수 없으며, 배포를 할 시 전체시스템을 배포해야만 한다.
- 기술스택
- MSA의 경우 각각의 서비스에서 서로다른 기술스택을 사용할 수 있음
- MA의 경우엔 모든 서비스에서 동일한 기술스택을 사용해야만 함.
- 장애
- 특정 서비스에서 장애가 날 시, MSA가 MA보다 다른 서비스에 영향을 미칠 확률이 적다.
- 확장성
- MSA는 특정 서비스만을 확장시킬 수 있으나, MA는 전체시스템 자체를 함께 확장해야 한다.
MSA 적용하기 좋은 상황
-
대규모 트래픽 처리가 필요한 경우
트래픽이 몰려 장애가 일어나는 특정 서비스만 확장시키면 되는 경우, 전체를 갈아엎어야 하는 MA보다 비용적 장점을 가짐.
-
여러 기술스택 필요한 경우
각 서비스에 어울리는 가장 최적의 기술스택을 사용할 수 있기에, 높은 개발생산성 챙길 수 있음.
-
빠르고 지속적인 배포 필요한 경우
하나의 서비스만을 독립적으로 배포할 수 있어 비용적으로 높은 효율을 가짐.