Monolithic과 Microservice

margarin·2022년 2월 19일
0

MSA

목록 보기
1/2

해당 내용은 인프런 강의를 듣고 정리한 내용입니다.
출처: Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Monolithic

어플리케이션 개발하는데 있어 필요한 요소를 하나의 어플리케이션 형태로 패키지되어 서비스

장점

하나의 공간에 코드가 있기 때문에 어플리케이션 하나만 실행하면 되서 간편하다.

단점

시스템의 일부만 수정하더라도 시스템 전체를 빌드하고 배포해야 한다.

Microservice

Small autonomous services that work together - Sam Newman

어플리케이션 구성 요소들을 분리하여 서비스

그럼 얼마나 작게 분리해야하는가?

어플리케이션 도메인 지식에 따라 서비스 경계를 구분하여야 한다.

Microservice 도입 하기 전에 생각해보자

  1. 어느정도의 공수를 고려해야 하는가?
  2. 독립적인 라이프 사이클
  3. 독립적인 확장성을 가지는가?
  4. 격리된 오류
  5. 외부 종속성과의 상호 작용을 단순화
  6. Polyglot(패러다임을 달리 하는 여러 개발 언어를 자유롭게 구사하는 것)을 지원하는가

장점

  • 서비스가 분리되어 있기 때문에 다른 서비스에 영향을 주지 않는다.
  • 최소한의 배포를 하므로 유지보수에 용이하다.

단점

  • 마이크로 서비스가 배포되는 환경을 각각 구성해야하기 때문에 개발 생산성이 떨어질 수 있다.
  • 서비스가 분산되어 있기 때문에 디버깅하기 어렵다.
  • DB에 대한 서비스도 분산되어 있고, 서비스의 연결을 위해서는 통신이 필요하기 때문에 데이터 transaction을 유지하기 어렵다.

참고
https://henriquesd.medium.com/monolithic-microservices-architecture-239e8799d3e1

profile
화이팅 🥹

0개의 댓글