마이크로서비스 정의

  1. 빠르게 개발해 지속적으로 배포할 수 있는 것
  2. 수동 혹은 자동으로 쉽게 스케일링할 수 있는 것 : 독립 컴포넌트

독립 컴포넌트 기준

  1. 아무것도 공유하지 않는 아키텍처 유지
  2. 명확한 인터페이스 사용, 문서화 필요 : 동기 서비스 / API 메시징 방식
  3. 개별 런타임 프로세스 배포
  4. 마이크로서비스 인스턴스는 stateless이므로 모든 인스턴스가 요청 처리 가능
    * stateless는 과거 트랜잭션 정보/참조가 저장되지 않아 처음부터 시작하는 것을 말합니다.

마이크로서비스 문제

  1. 동기식 통신 사용시 컴포넌트 간 연쇄 장애가 발생할 수 있다.
  2. 많은 수의 컴포넌트를 최신 상태로 유지하는 것은 어렵다.
  3. 많은 컴포넌트가 처리에 관여하는 요청은 로그 분산으로 인해 추적하기 어렵다.
  4. 컴포넌트 수준의 HW 자원 사용량 분석이 어렵다.
  5. 컴포넌트를 수동으로 구성/관리하는 건 비용이 많이 들고 오류 발생이 쉽다.

+ Recent posts