2024. 5. 22. 23:50ㆍ기타
MSA란 MicroService Architecture의 줄임말 입니다.
마이크로서비스란 작고, 독립적으로 배포 가능한 각각의 기능을 수행하는 서비스로 구성된 프레임워크라고 합니다.
마이크로서비스는 완전히 독립적으로 배포가 가능하고,
다른 기술 스택(개발언어, 데이터베이스 등)이 사용 가능한 단일 사업 영역에 초점을 준다.
마이크로서비스의 등장배경
Monolithic Architecture는 소프트웨어의 모든 구성요소가 한 프로젝트에 통합되어 있는 형태입니다.
하지만 일전 규모 이상의 서비스, 혹은 수백명 이상의 개발자가 투입되는 프로젝트에서 Monolithic Architecture는 한계를 보였습니다.
- 부분 장애가 전체 서비스의 장애로 확대될 수 있다.
- 부분적인 여러 서버로 나누어 일을 처리하는 방식이 어렵습니다.
- 서비스의 변경이 업렵고, 수정 시 장애의 영향도 파악이 힘들다.
- 배포 시간이 오래 걸린다.
- 한 프레임워크와 언어에 종속적입니다.
이러한 Monolithic Architecture의 문제점들을 보완하기 위해 MSA가 등장하게 되었다.
MSA 의 특징
MSA는 API를 통해서만 상호작용을 할 수 있다.
-마이크로 서비스는 서비스의 end-point를 API 형태로 외부에 노출하고, 실질적인 세부 사항은 모두 추상화 합니다.
내부의 구현로직, 아키텍처와 프로그래밍 언어, 데이터베이스, 품질 유지 체계와 같은 기술적인 사항들은
API에 의해 철저하게 가려진다
- 제대로 설계 된 마이크로서비스는 하나의 비즈니스 범위에 맞춰 만들어지므로 하나의 기능만 수행합니다.
- 어플리케이션은 항상 기술 중립적 프로토콜을 사용해 통신하므로 서비스 구현 기술과는 무관하다.
- 마이크로서비스 기반의 어플리케이션을 다향한 언어와 기술로 구축할 수 있다는 것을 의미한다.
- 마이크로서비스는 SOA에서 사용된 관리 체계를 사용하지 않는다.
MSA의 장점
- 각각의 서비스는 모듈화가 되어있으며 이러한 모듈끼리는 RPC 또는 message-driven API등을 이용하여 통신한다.
- 이러한 MSA는 각각 개별의 서비스 개발을 빠르게 하며, 유지보수도 쉽게 가능합니다
- 팀 단위로 적절한 수준에서 기술 스택을 다르게 가져갈 수 있다.
- 마이크로서비스는 서비스별로 독립적 배포가 가능합니다.
- 마이크로서비스는 각각 서비스의 부하에 따라 개별적으로 scale-out이 가능합니다 .
- 메모리, CPU적으로 상당부분 이득이 된다.
MSA 단점
- MSA는 모놀리식( Monolithic Architecture )에 비해 상대적으로 많이 복잡합니다.
- 모놀리식에서는 단일 트랜잭션을 유지하면 됐지만 MSA에서는 비즈니스에 대한 DB를 가지고 있는 서비스도 각기다르 고, 서비스의 연결을 위해서는 통신이 포함되기 때문에 트랜잭션을 유지하는게 어렵다.
- 통합 테스트가 어렵다.
- 실제 운영 환경에 대한 배포가 쉽지않다.
[MSA] MSA란 무엇인가? 개념 이해하기
MSA가 무엇인지 자세하게 알고싶어 개인적으로 정리하는 포스팅입니다. MSA? MicroService Architecture의 줄임말 👉🏻 마이크로서비스 아키텍처에 대한 정확한 정의는 없다. 하지만 마이크로서비스란
wooaoe.tistory.com
'기타' 카테고리의 다른 글
React의 가상돔 (0) | 2024.05.02 |
---|---|
컴포넌트 (5) | 2024.04.29 |
JavaScript Immutability (0) | 2024.04.15 |
인치의 불변성 (0) | 2024.04.15 |
자바스크립트 객체, 구조분해할당 (0) | 2024.04.03 |