728x90
반응형
마이크로서비스(MSA) 아키텍처 란?
MSA 아키텍처는 하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 형태를 말한다. 작은 레고 블록(microservice) 하나 하나를 붙여 어떠한 큰 결과물을 만드는 레고 놀이를 생각하면 이해하기 쉽다.
마이크로 서비스의 특징
- 각각의 서비스는 그 크기가 작을 뿐, 서비스 자체는 하나의 모놀리식 아키텍처와 유사한 구조를 갖는다.
- 각각의 서비스는 독립적으로 배포가 가능해야 한다.
- 각각의 서비스는 다른 서비스에 대한 의존성이 작아야 한다.
- 각 서비스는 개별 프로세스로 구동되며, REST API와 같은 가벼운 방식으로 통신되어야 함.
마이크로서비스(MSA) 아키텍처 장점
- 배포 관점
- 서비스 별 개별 배포가 가능하다. (배포 시 전체 서비스의 중단이 없음.)
- 독립 배포가 가능하므로 개발자의 자율성이 증가한다. (내가 A 기능 다 만들었고, 다른 사람이 B 기능 못 만들었으면, 나는 그냥 놀아도 됨.)
- 요구 사항을 신속하게 반영하여 빠르게 배포할 수 있다.
- 확장 관점
- 특정 서비스에 대한 확장성이 용이하다.
- 클라우드 사용에 적합하다.
- 장애 관점
- 장애가 전체 서비스로 확장될 가능성이 적다.
- 부분적 장애에 대한 격리가 수월하다.
- 코드 / 유지 보수 관점
- 팀 별로 프로젝트가 분리되어 있으므로 코드의 이해도가 증가하고, 그에 따라 유지 보수하기 쉽다.
- 신기술의 적용이 유연하고, 서비스를 polyglot하게 개발 및 운영할 수 있다.
- polyglot 개발: 여러 프로그래밍 언어, 패러다임 등을 사용
마이크로서비스(MSA) 아키텍처 단점
- 성능 관점
- 서비스 간 호출 시 API를 사용하기 때문에 통신 비용 및 지연 시간이 증가한다.
- 데이터 관리 관점
- 데이터가 여러 서비스에 걸쳐서 분산되므로 한 번에 조회하기 어렵고, 데이터의 정합성 또한 관리하기 어렵다.
- 테스트 / 트랜잭션 관점
- 단위 테스트는 쉽지만, 통합 테스트 및 End-to-End 테스트 단위로 들어가면 여러 서비스의 API를 검증해야 하므로 시간과 비용이 많이 든다.
- 각 서비스 별로 데이터베이스가 있으므로 트랜잭션을 구현하기 까다롭다.
- 아키텍처가 다소 복잡하므로 개발 및 관리가 어렵고, 비용이 많이 든다.
참고 자료 :
https://steady-coding.tistory.com/595
728x90
반응형
'Architecture' 카테고리의 다른 글
서비스 지향 아키텍처(SOA, Service-Oriented Architecture) : 현대 비즈니스를 위한 유연한 아키텍처 솔루션 (0) | 2023.12.18 |
---|---|
도메인 주도 설계(DDD, Domain-Driven Design): 복잡한 시스템 개발의 핵심 (0) | 2023.12.18 |
레이어드 아키텍처(Layered Architecture): 소프트웨어 설계의 클래식한 접근법 (0) | 2023.12.18 |
소프트웨어 아키텍처: 다양한 접근법과 그 종류 (0) | 2023.12.18 |
[정리] 모놀리식 아키텍처 (Monolithic Architecture) (0) | 2022.10.05 |