Dapr과 Azure Container Apps의 통합 탐색

완료됨

Dapr(Distributed Apps Runtime)은 마이크로 서비스 기반 분산 애플리케이션의 작성을 간소화하는 증분 채택 가능한 기능 집합입니다. Dapr은 게시/구독을 통한 메시징 또는 안정적이고 안전한 서비스 간 호출을 통해 애플리케이션 상호 통신을 사용하도록 설정하는 기능을 제공합니다.

Dapr은 오픈 소스 CNCF(Cloud Native Computing Foundation) 프로젝트입니다. CNCF는 Linux Foundation의 일부이며 빠르게 성장하는 클라우드 네이티브 프로젝트를 지원하고 감독하며 나아갈 방향을 제시합니다. Dapr OSS 프로젝트를 직접 배포하고 관리하는 대안인 Container Apps 플랫폼은 다음과 같습니다.

  • 관리되고 지원되는 Dapr을 통합합니다.
  • Dapr 버전 업그레이드를 원활하게 처리합니다.
  • 개발자 생산성을 높이기 위해 간소화된 Dapr 상호 작용 모델을 노출합니다.

Dapr API

장식의 스크린샷.

Dapr API Description
서비스 간 호출 자동 mTLS 인증 및 암호화를 사용하여 서비스를 검색하고 안정적이고 직접적인 서비스 간 호출을 수행합니다.
상태 관리 트랜잭션 및 CRUD 작업에 대한 상태 관리 기능을 제공합니다.
게시/구독 게시자 및 구독자 컨테이너 앱에서 중간 메시지 broker를 통해 상호 통신할 수 있도록 허용합니다.
바인딩 이벤트에 따라 애플리케이션 트리거
행위자 Dapr 작업자는 신속하게 확장하도록 설계된 메시지 기반의 단일 스레드 작업 단위입니다. 예를 들어 버스트가 많은 워크로드 상황에 해당합니다.
가시성 추적 정보를 Application Insights 백 엔드에 보냅니다.
비밀 애플리케이션 코드에서 비밀에 액세스하거나 Dapr 구성 요소에서 보안 값을 참조합니다.
Configuration 지원되는 구성 저장소에 대한 애플리케이션 구성 항목을 검색하고 구독합니다.

참고 항목

위의 표에서 설명하는 Dapr API는 안정적입니다. 알파 API 및 기능 사용에 대한 자세한 내용은 제한 사항을 참조하세요.

Dapr 핵심 개념

Pub/sub API를 기반으로 하는 다음 예제는 Azure Container Apps의 Dapr과 관련된 핵심 개념을 설명하는 데 사용됩니다.

Dapr 게시/구독 API와 API가 Container Apps에서 어떻게 사용되는지 나타낸 다이어그램입니다.

레이블 Dapr 설정 Description
1 Dapr이 사용하도록 설정된 Container Apps Dapr 인수 집합을 구성하여 컨테이너 앱 수준에서 Dapr을 사용하도록 설정합니다. 이러한 값은 여러 수정 모드에서 실행할 때 지정된 컨테이너 앱의 모든 수정 버전에 적용됩니다.
2 Dapr 완전 관리형 Dapr API는 Dapr 사이드카를 통해 각 컨테이너 앱에 노출됩니다. Dapr API는 HTTP 또는 gRPC를 통해 컨테이너 앱에서 호출할 수 있습니다. Dapr 사이드카는 HTTP 포트 3500 및 gRPC 포트 50001에서 실행됩니다.
3 Dapr 구성 요소 구성 Dapr은 기능이 구성 요소로 제공되는 모듈식 디자인을 사용합니다. Dapr 구성 요소는 여러 컨테이너 앱에서 공유할 수 있습니다. 범위 배열에 제공된 Dapr 앱 식별자는 런타임에 지정된 구성 요소를 로드할 dapr 사용 컨테이너 앱을 지정합니다.

Dapr 사용

런타임 컨텍스트에 따라 다양한 인수 및 주석을 사용하여 Dapr을 구성할 수 있습니다. Azure Container Apps는 Dapr을 구성할 수 있는 세 가지 채널을 제공합니다.

  • Container Apps CLI
  • Bicep 또는 ARM(Azure Resource Manager) 템플릿과 같은 IaC(Infrastructure as Code) 템플릿
  • Azure Portal

Dapr 구성 요소 및 범위

Dapr은 기능이 구성 요소로 제공되는 모듈식 디자인을 사용합니다. Dapr 구성 요소의 사용은 선택 사항이며 애플리케이션의 요구 사항에 의해서만 결정됩니다.

컨테이너 앱의 Dapr 구성 요소는 다음과 같은 환경 수준 리소스입니다.

  • 지원되는 외부 서비스에 연결하기 위한 플러그형 추상화 모델을 제공할 수 있습니다.
  • 컨테이너 앱 간에 공유하거나 특정 컨테이너 앱으로 범위를 지정할 수 있습니다.
  • Dapr 비밀을 사용하여 구성 메타데이터를 안전하게 검색할 수 있습니다.

기본적으로 동일한 환경 내의 모든 Dapr 사용 컨테이너 앱은 배포된 구성 요소의 전체 세트를 로드합니다. 적절한 컨테이너 앱에서만 구성 요소가 런타임에 로드되도록 하려면 애플리케이션 범위를 사용해야 합니다.