MSA는 마이크로서비스 아키텍처로서 각각의 서비스들을 독립적으로 개발하고 배포하는 구조입니다.
이번 글에서는 MSA에 대해서 알아보고자 합니다. 더불어 모놀리틱 구조에 대해서도 알아보며 두 아키텍처의 차이점이 무엇이 있을지에 대해서도 알아보겠습니다.
출처 : https://www.openlegacy.com/hs-fs/hubfs/Picture1.webp?width=889&height=478&name=Picture1.webp
백엔드 개발을 처음 시작하다보면 제일 처음에 많이 사용하는 구조가 아닐까 합니다. 그만큼 처음 프로젝트를 시작하고 만들기가 편한면이 있습니다.
이와 같이 모놀리식 아키텍처는 전통적인 개발 방식으로 하나의 프로젝트에 모든 기능을 함께 포함합니다. 하지만 점차 프로젝트의 규모가 커지고 기능을 포함하게 될수록 개발 및 배포에서 복잡성이 커지게 됩니다.
출처 : https://mozzi-devlog.tistory.com/34
여러 개의 서비스를 빠르게 개발하고, 다양한 요구사항에 대응하기 위해서는 MSA의 도입이 유리합니다. 현재 넷플릭스, 우버, 우아한 형제들 등 많은 회사에서 MSA를 적용하여 개발을 하고 있습니다.
MSA는 서비스의 end-point(접근점)을 API 형태로 외부에 노출하고, 실질적인 세부 사항은 모두 추상화합니다. 내부의 구현 로직, 아키텍처와 프로그래밍 언어, 데이터베이스, 품질 유지 체계와 같은 기술적인 사항들은 서비스 API에 의해 가려지게 됩니다.
또한, 집중화된 관리 체계를 사용하지 않기 때문에 REST 등 가벼운 통신 아키텍처나 Kafka 등을 이용한 message stream을 주로 이용합니다.
출처 : https://mozzi-devlog.tistory.com/34