-
MSA 아키텍쳐란?MSA & 쿠버네티스(Kubernetes) - k8s 2022. 3. 5. 15:59
모놀리식 아키텍처 (Monolithic Architecture)
Monolithic은 사전적 의미로 단단히 짜여 하나로 되어 있는, 돌덩이 하나의 라는 의미를 가집니다.
기존에 우리가 사용하던 전통적인 방식의 개발 방법을 모놀리식 아키텍처라고 불립니다.
아래의 그림처럼 한 덩어리의 구조라고 볼 수 있습니다.
핵심 비즈니스 로직이 하나의 돌덩이처럼 뭉쳐있습니다.
장점
1. 어떤 기능이던지 개발되어있는 환경이 같아서 복잡하지 않습니다.
2. 쉽게 고가용성 서버 환경을 만들 수 있습니다. (같은 애플리케이션을 하나 더 생성)
3. End-to-End 테스트가 용이합니다. ( MSA의 경우 테스트에 필요한 서비스들을 모두 동작시켜야 함)
단점
1. 한 프로젝트가 너무 커지게 되면 애플리케이션의 구동 시간이 증가하고 빌드, 배포 시간도 증가합니다.
2. 특정 기능에 장애가 나면 전체 시스템이 멈추게 됩니다.
3. 특정 기능에 조그마한 수정사항이 있어도 전체를 다시 빌드하고 배포해야 합니다.
4. 기능별로 알맞은 기술, 언어 프레임워크를 선택하기 까다롭습니다.
5. 서버를 Scale-up 할 때 기능 전체가 Scale-up 되기 때문에 사용하지 않는 기능 또한 Scale-up 됩니다.
마이크로 서비스 아키텍처 (MicroServices Archiecture)
Micro의 사전적 의미는 0.000001을 나타내는 접두어로 작은 이라는 뜻을 가진 그리스어로부터 왔습니다.
즉 Micro와 Service가 합쳐서 아주 작은 서비스를 의미합니다.
단일 프로그램을 각 컴포넌트 별로 나누어 작은 서비스의 조합으로 구축하는 방법입니다.
각 서비스들이 API를 통해서 상호작용합니다.
장점
1. 특정 기능이 장애가 나면 전체 시스템이 멈추는 것이 아니라 그 기능만 동작을 멈춘다.
2. 특정 기능에만 트래픽이 몰렸을 때 전체 시스템을 scale-up 하지 않고 특정 기능만 sacle-up 한다.
3. 특정 기능에만 빈번한 배포가 이루어질 때 전체 코드를 계속 배포하는 것보다 특정 기능만 배포할 수 있다.
4. 기능별로 알맞은 기술, 언어 프레임워크를 선택하여 서비스를 구성할 수 있습니다.
단점
1. 서비스가 모두 분산되어 있기 때문에 모놀리식에 비해 상대적으로 많이 복잡합니다.
2. 통합 테스트가 어렵습니다.
3. 서비스 간 호출 시 API를 사용하기 때문에 통신 비용이나 Latency가 증가합니다.
4. 데이터가 여러 서비스에 걸쳐 분산되기 때문에 한 번에 조회하기 어렵습니다.
5. 각 서비스 별로 모니터링을 해야 합니다.
출처
http://clipsoft.co.kr/wp/blog/%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98msa-%EA%B0%9C%EB%85%90/(마이크로서비스 아키텍쳐(MSA) 개념 소개
https://www.youtube.com/watch?v=BnS6343GTkY(배달의 민족 마이크로서비스 여행기)
https://wooaoe.tistory.com/57(MSA란 무엇인가? 개념 이해하기)
'MSA & 쿠버네티스(Kubernetes) - k8s' 카테고리의 다른 글
Message System이란? (0) 2022.03.18 서비스 메시(Service Mesh)란? + API Gateway와 차이점 (0) 2022.03.17 API 게이트웨이(Gateway)란? (0) 2022.03.14 프록시 서버란? (0) 2022.03.13 쿠버네티스(Kubernetes,k8s)란? (0) 2022.03.02