MSA란 무엇인가
마이크로서비스 개념
- 마이크로서비스(microservice)는 애플리케이션을 느슨하게 결합된 서비스의 모임으로
- 구조화하는 서비스 지향 아키텍처(SOA) 스타일의 일종인 소프트웨어 개발 기법이다
- 마이크로서비스 아키텍처에서 서비스들은 섬세(fine-grained)하고 프로토콜은 가벼운 편이다.
마이크로서비스 특징
- 자율성 : 각 구성 요소 서비스는 다른 서비스의 기능에 영향을 주지 않으면서 개발, 배포, 운영하고 확장 가능
- 전문성 : 각 서비스는 일련의 기능을 위해 설계되며 특정 문제를 해결하는 데 중점을 둔다
마이크로서비스의 기술적 특징
- 각각의 서비스는 그 크기가 작을 뿐, 서비스 자체는 하나의 모노리식 아키텍처와 유사한 구조를 갖는다
- 각각의 서비스는 독립적으로 배포가 가능해야 한다
- 각각의 서비스는 다른 서비스에 대한 의존성이 작아야 한다
- 각 서비스는 개별 프로세스로 구동되며, REST API와 같은 가벼운 방식으로 통신되어야 한다
마이크로서비스 이점
- 민첩성 : 소규모 컨텍스트 내에서 활동하며 더 독립적이면서 신속하게 업무를 수행할 수 있다
- 유연한 확장성 : 서비스가 지원하는 애플리케이션을 기능의 수요를 충족하도록 해당 서비스를 독립적으로 확장할 수 있다
- 손쉬운 배포
마이크로서비스를 위한 조건
- 비용
- 개발 생산성
- 운영 인프라
- 배포 주기