MSA Architecture

MSA

Micro Service Architecture는 위 그림과 같이 하나의 서버를 여러 개의 마이크로 서버로 쪼개서 운영하는 방식이다.

하나의 서버를 여러 개로 나눠서 관리하는 것에 초기 비용이 들어가기 때문에 큰 규모의 프로젝트에 적합하다.

 

장점

  • 각각의 서비스가 독립적이기 때문에 빌드 및 테스트, 배포 시간이 단축된다.
  • 장애 발생 시 확산 범위가 작다.
  • 새로운 서비스를 확장하기 좋다.
  • 각각의 서비스가 독립적이기 때문에 서비스마다 다양한 언어와 프레임워크를 적용할 수 있다.

 

단점

  • 배포해야할 서비스의 수가 많아진다.
  • 서비스 간 통신을 추가로 구현해야하며, 이로 인해 트래픽 양이 증가하게 된다.
  • 모든 서비스를 한 눈에 모니터링하기 어렵다. 즉, 통합 관리가 어렵다.
  • 빌드 테스트 횟수도 서비스 개수 만큼 늘어난다.
  • Monolithic 방식 보다 보안을 유지하기가 더 어렵다.

 

 

Monolithic

하나의 덩어리를 뜻하며, Monolithic는 MSA와 반대로 하나의 서버에 모든 기능을 구현하는 방식이다.

 

장점

  • 하나의 프로젝트에 전부 구현하므로 심플하다.
  • 관리 대상이 하나이다.

 

단점

  • 부분 장애가 서비스 전체로 확대될 수 있다.
  • 프로젝트 규모가 커질 수록 구조 파악, 문제 파악이 힘들기 때문에 유지 보수가 어렵다. 
  • 하나의 프레임워크와 언어에 종속적이다.
  • 확장이 어렵다.

'DevOps > Architecture' 카테고리의 다른 글

[Design Pattern] 싱글톤 패턴  (0) 2023.03.29
[Design Pattern] 템플릿 메소드 패턴  (0) 2023.03.29