2023년 7월 11일 화요일

MicroService vs Monolithic Architecture

MicroService 과 Monolithic Architecture 의 간단한 특징 및 차이점을 서술하려고한다.

해당 내용을 정리하는 이유는 Kubernetes 공부 중, Monolithic 의 용어가 등장하여 이를 정리한다 .


Monolithic Architecture 


 https://microservices.io/patterns/monolithic.html  

Pros 

  1.  Easy to develop : 모든 코드가 한곳에 있기에 개발과 디버깅이 비교적 용이
  2.  Easy to test :  마찬가지로 통합 테스트를 수행하는데, MicroService 보다 쉽다.
  3.  East to Deploy : 한 가지 버전만 배포하면 된다.
  4.  Less NetworkOverhead : 모든 기능이 하나의 서비스 내에 위치하므로 네트워크 오버헤드 없이 데이터 교환이 가능하다

Cons

  1.  Hard to maintain : 시간이 지날수록 서비스가 복잡해지기 때문에, 유지보수가 어렵다.
  2.  Hard to extand : 특정 기능을 확장 하려고하여도, 전체 어플리케이션을 확장해야함.
  3.  Dependency : 의존성이 강하여, 한 부분의 문제가 생기면 전체 서비스에 영향을 줌. 


MicroService



https://learn.microsoft.com/en-us/azure/architecture/guide/architecture-styles/microservices

Pros 

  1.  Easy to extand : 개별 서비스를 각각 독립적으로 확장이 가능하다.
  2.  Easy to deal with obstacle :  서비스가 독립적임으로, 한 서비스가 죽더락도, 전체 시스템에 영향이 전파되지는 않음.
  3.  East to Change : 서비스들이 독립적이여서, 기술 스택의 변경이 용이하다.

Cons

  1.  Complicated Network Communication : 각 서비스들이 네트워크를 통해 통신함으로 , 네트워크 지연 및 메시징 처리를 해야한다.
  2.  Maintain Database : 각 서비스들이 자체 DB를 소유할 수 있어, 전체 서비스의 데이터 일관성 유지가 어렵다.
  3.  Overhead for services : 서비스들의 관리를 위해 추가적인 오버헤드가 필요로 하게 되는데, 서비스의 모니터링 및 분석, 중앙 로깅, api 게이트웨이등 추가적인 도구와 인프라가 필요로하게된다.

댓글 없음:

댓글 쓰기