[정의]
단일 애플리케이션, 즉 모노리스 애플리케이션을 작은 서비스 단위로 개발하는 방법
복잡한 응용프로그램을 설계하기 위한 아키텍처로 애플리케이션을 분해하여 서비스를 제공
[특징]
기능별로 나뉘어 있기 때문에
쉬운 배포와 복구
높은 확장성과 개방성
개발 주기의 단축
클라우드 네이티브 아키텍처에서 반드시 필요함
서비스를 개발하는 팀의 구조를 아키텍처에 맞는 구조로 만드는 것이 중요함
이렇게 개발된 시스템을 직접 배포하고 운영하는 플랫폼을 만들기 위해서는 밴더에 종속적이지 않고 개발자가 쉽게 운영할 수 있는 인프라 관리 기술이 필요함
도커 컨테이너
확장성과 표준성을 특징으로 하는 도커는 MSA의 유연하고 탄력적인 배포에 매우 적합하다
Guest 운영체제가 설치되지 않고 프로세스Lv의 분리가 가능한 컨테이너를 사용하는 경량화된 가상화 방식인 도커를 사용하는 것이 MSA를 구성하는데 장점으로 작용함
[MSA 도입의 단점]
모든 기능적 특성이 개별 서비스로 전체 서비스가 커짐에 따라 복잡성이 증가할 수 있다.