728x90
Microservices
- 소프트웨어가 잘 정의된 API를 통해 통신하는 소규모의 독립적인 서비스로 구성
- 구성 : Container, Funcations, API Gateway 등
MSA 등장배경
- 모놀리식 아키텍처에 한계점으로 인해 등장함
- 모놀리식의 경우 서비스 변경이 어려움 (여러 컴포넌트가 하나의 서비스에 강하게 결합되어 있어, 수정시 영향도가 큼)
- 모놀리식은 모든 구성요소가 한프로젝트에 통합되어 있는 형태라 규모가 커질 수록 작은 변경에도 높은 테스트 비용이 발생하며, 하나의 시스템을 개발하여 배포하기 때문에 배포시 비용이 큼
- 모놀리식 아키텍처에서 부분 서비스 장애시, 전체 서비스의 장애로 확대될 가능성이 큼
MSA 특징
- 애플리케이션 로직을 각자 책임이 명확한 작은 컴포넌트 들로 분해하고 이들을 조합한 솔루션을 제공
- 각 컴포넌트는 작은 책임 영역을 담당하고 완전히 상호 독립적으로 배포됨, 마이크로서비스는 비즈니스 영역의 한부분에서만 책임을 담당, 여러 애플리케이션에서 재사용이 가능해야함
- 마이크로서비스는 몇가지 기본 원칙에 기반을 둠, 서비스 소비자와 서비스 제공자 사이의 데이터 교환을 위해 HTTP / JSON과 같은 경량 통신 프로토콜을 사용
- MSA는 API를 통해서만 상호작용 할 수 있음, end-point를 API형태로 외부에 노출하고, 실질적인 세부 사항을 모두 추상화 (내부 구현로직, 아키텍처 프로그랭언어, 데이터베이스 등 철저하게 가려짐)
- 작고 독립적이라서 분산된 마이크로서비스 특징을 살려 명확하게 정의된 책임 영역을 담당하는 소규모 팀을 구성할 수 있음
'OTHER' 카테고리의 다른 글
[OTHER] Semantic Versioning (0) | 2022.04.07 |
---|---|
[OTHER] TDD (테스트 주도 개발론) (0) | 2021.11.14 |
[OTHER] 모놀리식 아키텍처 (0) | 2021.07.12 |
[NETWORK] Polling / Long Polling / Streaming (0) | 2021.06.10 |
[OTHER] 블록킹 / 논블록킹과 동기 / 비동기 (0) | 2021.06.07 |