마이크로서비스 디자인 패턴

Azure Cloud Services

마이크로 서비스의 목표는 애플리케이션을 독립적으로 배포할 수 있는 작은 자율 서비스로 분해하여 애플리케이션 릴리스의 속도를 높이는 것입니다. 마이크로 서비스 아키텍처는 또한 몇 가지 문제를 야기합니다. 여기에 표시된 디자인 패턴은 이러한 문제를 완화하는 데 도움이 될 수 있습니다.

Microservices design patterns

Ambassador는 모니터링, 로깅, 라우팅, 보안(예: TLS)과 같은 일반적인 클라이언트 연결 작업을 언어에 구애받지 않는 방식으로 오프로드하는 데 사용할 수 있습니다. Ambassador 서비스는 종종 사이드카로 배포됩니다(아래 참조).

손상 방지 계층은 새 애플리케이션의 디자인이 레거시 시스템에 대한 종속성에 의해 제한되지 않도록 하기 위해 신규 애플리케이션과 레거시 애플리케이션 사이의 외관을 구현합니다.

프런트 엔드용 백 엔드는 데스크톱 및 모바일과 같은 다양한 형식의 클라이언트에 대해 별도의 백 엔드 서비스를 만듭니다. 이렇게 하면 단일 백 엔드 서비스가 다양한 클라이언트 유형의 충돌하는 요구 사항을 처리할 필요가 없습니다. 이 패턴은 클라이언트별 문제를 분리하여 각 마이크로 서비스를 단순하게 유지하는 데 도움이 될 수 있습니다.

격벽은 각 워크로드 또는 서비스에 대해 연결 풀, 메모리, CPU와 같은 중요한 리소스를 격리합니다. 격벽을 사용하면 단일 워크로드(또는 서비스)가 모든 리소스를 소비할 수 없어 다른 리소스가 고갈될 수 있습니다. 이 패턴은 하나의 서비스로 인해 발생하는 계단식 오류를 방지하여 시스템의 복원력을 높입니다.

게이트웨이 집계는 여러 개별 마이크로 서비스에 대한 요청을 단일 요청으로 집계하여 소비자와 서비스 간의 대화를 줄입니다.

게이트웨이 오프로딩을 사용하면 각 마이크로 서비스가 SSL 인증서 사용과 같은 공유 서비스 기능을 API 게이트웨이로 오프로드할 수 있습니다.

게이트웨이 라우팅은 단일 엔드포인트를 사용하여 요청을 여러 마이크로 서비스로 라우팅하므로 소비자는 많은 개별 엔드포인트를 관리할 필요가 없습니다.

메시징 브리지 는 서로 다른 메시징 인프라로 빌드된 서로 다른 시스템을 통합합니다.

사이드카는 애플리케이션의 도우미 구성 요소를 별도의 컨테이너 또는 프로세스로 배포하여 격리 및 캡슐화를 제공합니다.

스트랭글러 그림은 특정 기능을 새로운 서비스로 점진적으로 바꿔 애플리케이션의 증분 리팩터링을 지원합니다.

Azure 아키텍처 센터의 전체 클라우드 디자인 패턴 카탈로그는 클라우드 디자인 패턴을 참조하세요.

다음 단계