Dick Dowdell's The Problem with Microservices 내용 정리

Jae·2024년 12월 29일
0
post-thumbnail

Dick Dowdell의 The Problem with Microservices를 읽고 정리한 글입니다.

MSA를 도입해야하는 경우

  • 시스템간의 결속력이 너무 높은 경우
  • 결합이 유연하지 못하고 확장성이 떨어지는 경우

서비스 경계 사항 : 결속력이 높은 경우

  • 보안 취약
  • 결합도 높음
  • 변경시 비용이 많이 든다.

대안 : DDD

  • DDD란, 서비스를 제한된 컨텍스트와 컨텍스트의 집합체로 모델링한 것을 의미한다.

제한된 컨텍스트

  • 애플리케이션 내에 특정 도메인을 둘러싼 명확한 경계를 정의한 것을 의미
  • 캡슐화를 통해 상호적이고 약속아래에 관리될 수 있도록 사용할 수 있다.

서비스 구성 및 연결 : 동적 구성

  • 기존의 정적이고 종속성이 높은 형태는 유연성이 떨어져서 서비스 변경시에 재구성, 재배치에 제한이 생긴다.

개선 : 바인딩 가능한 인터페이스를 사용

  • REST API와 같은 프로토콜을 사용하여 커뮤니케이션을 통일화하면 서비스와 런타임시 동적 연결 및 확장에 용이하다.

분리된 커뮤니케이션을 위한 메시징 모델

기존

  • 병목 현상이 발생하고, 확장성 제한이 발생할 수 있는 긴밀하게 결합된 동기식 메시징 형태

중개를 이용

  • 중개를 통해 대상의 서비스 및 런타임 조건에 따라 메세지를 통적으로 라우팅하여 개선할 수 있다.

메시징 종류

동기식 메시징

  • 즉각적인 요청 및 응답이 필요한 경우

비동기식 메시징

  • 발신자와 수신자가 독립적으로 작동하는 경우

이벤트 기반 커뮤니케이션

  • 서비스가 이벤트를 개시하고 관심있는 구독자가 이벤트 메시지를 받을 것이라는 이해를 바탕으로 작동하는 것

중개자란

  • 인스턴스 사용불가 상태 또는 응답시간이 너무 저하되었을 경우 다른 인스턴스로 라우터 또는 나중에 메세지를 전달하기 위해 대기열에 넣음으로써 서비스를 장애를 유연하게 대비할 수 있다.
  • 중개자를 거치기 때문에, 검증이나 서명, 암호화가 가능하기 때문에 보안 강화도 할 수 있다.

참고

https://medium.com/nerd-for-tech/the-problem-with-microservices-0b721c40bf47

0개의 댓글