Monolithic vs MSA

Adam·2022년 2월 5일
0

KubernetesAdvanced

목록 보기
1/4

Monolithic Architecture

Monolithic의 사전적 의미는 "formed of a single large block of stone." 즉 한개의 큰 돌로 만들어진 건축물을 지칭한다.
대표적인 monolithic한 건축물은 영국의 스톤헨지라고 한다.

CS에서도 비슷하게 monolithic한 프로젝트는 건축에서와 비슷하게 하나의 프로젝트에서 하나의 어플리케이션이 수행되는 구조라고 보면 된다.

Monolithic Architecture의 장점

  • 배포가 간편
  • 테스트가 수월

Monolithic Architecture의 단점

  • 스케일링 시 불필요한 서비스까지 복제
  • 종속적인 라이브러리 충돌 발생 가능
  • 유지 보수가 어렵다

Micro Service Architecture

Monolithic Architecture과 다르게 서비스 단위 별로 어플리케이션을 조립하고 이 개별의 어플리케이션들이 연결이 되어 하나의 프로젝트를 이루게 되는 구조이다.

MSA 장점

  • 서비스 단위 빠른 개발
  • Scale-out하는 것이 효율적
  • 라이브러리 종속성 문제가 없다

MSA 단점

  • 네트워크를 많이 타게 된다
  • 다양한 서비스들을 테스트하고 관리하기 힘들다

하드웨어적는 지속적으로 발전을 하고 있기 때문에 네트워크 관련 된 부분은 지속적으로 좋아지고 있다.
하지만 대형 서비스들은 수천개의 마이크로 서비스를 운영하는 케이스들도 있으며 이를 관리하는 것은 매우 어렵다.
그렇기 때문에 이런 마이크로 서비스들을 보다 쉽게 관리하기 위해서 등장한 기술이 컨테이너 오케스트레이션 기술이며, 이 컨테이너 오케스트레이션 기술 중 가장 대표적인 것이 쿠버네티스이다.

profile
Keep going하는 개발자

0개의 댓글