Dapr

Dapr(분산 애플리케이션 런타임)은 간단하고 이식 가능하며 복원력이 뛰어나며 보안이 유지되는 마이크로 서비스를 작성하고 구현하는 데 도움이 되는 API를 제공합니다. 애플리케이션과 함께 사이드카 프로세스로 실행되는 Dapr API는 다음과 같이 분산 애플리케이션을 빌드할 때 발생할 수 있는 일반적인 복잡성을 추상화합니다.

  • 서비스 검색
  • 메시지 브로커 통합
  • 암호화
  • 가시성
  • 비밀 관리

Dapr은 점진적으로 채택할 수 있습니다. 필요에 따라 API 빌딩 블록을 사용할 수 있습니다.

Diagram showing how many different code frameworks can interface with the various building blocks of Dapr via HTTP or gRPC.

기능 및 특징

Dapr은 AKS에서 마이크로 서비스 개발에 도움이 되는 다음과 같은 기능 집합을 제공합니다.

  • 클러스터 확장을 통해 AKS에서 Dapr을 쉽게 프로비 전합니다.
  • 기본 기술을 추상화한 HTTP 및 gRPC API를 통해 이식성 사용
  • HTTP 및 gRPC API를 통한 안정적이고 안전하며 복원력 있는 서비스 간 호출
  • CloudEvent 필터링 및 메시지 배달을 위한 "최소 한 번" 의미 체계를 지원하여 쉽게 만든 메시지 게시 및 구독
  • Open Telemetry API 수집기를 통한 플러그형 가시성 및 모니터링
  • 언어와 무관하게 작동하며 언어별 SDK도 제공합니다
  • Dapr 확장을 통해 VS Code 통합
  • 분산 응용 프로그램 문제를 해결하기 위한 추가 API

자주 묻는 질문

Dapr 및 서비스 메시는 어떻게 비교하나요?

A: 서비스 메시가 네트워킹 서비스 메시로 정의된 경우 Dapr은 서비스 메시가 아닙니다. Dapr 및 서비스 메시는 몇 가지 겹치는 기능을 제공하지만, 서비스 메시는 네트워킹 문제에 중점을 두지만, Dapr은 개발자가 애플리케이션을 마이크로 서비스로 쉽게 빌드할 수 있도록 하는 구성 요소를 제공하는 데 중점을 줍니다. Dapr은 개발자 중심이지만 서비스 메시는 인프라 중심입니다.

Dapr이 서비스 메시와 공유하는 몇 가지 일반적인 기능은 다음과 같습니다.

  • mTLS 암호화를 사용하여 서비스 간 통신 보호
  • 서비스 간 메트릭 컬렉션
  • 서비스 간 분산 추적
  • 재시도를 통한 복원력

또한 Dapr은 상태 관리, pub/sub 메시지, 작업자 등을 위한 다른 애플리케이션 수준 구성 요소를 제공합니다. 그러나 Dapr은 라우팅 또는 트래픽 분할과 같은 트래픽 동작에 대한 기능을 제공하지 않습니다. 솔루션이 서비스 메시에서 제공하는 트래픽 분할을 활용하는 경우 Open Service Mesh를 사용하는 것이 좋습니다.

Dapr 및 서비스 메시에 대한 자세한 내용과 함께 사용할 수 있는 방법은 Dapr 설명서를 참조하세요.

Dapr 비밀 API는 비밀 저장소 CSI 드라이버와 어떻게 비교됩니까?

Dapr 비밀 API와 관리되는 비밀 저장소 CSI 드라이버는 모두 외부 저장소에 보관된 비밀을 통합하여 애플리케이션 코드에서 비밀 저장소 기술을 추상화할 수 있습니다. 비밀 저장소 CSI 드라이버는 애플리케이션에서 사용할 수 있는 CSI 볼륨으로 Azure Key Vault에 보관된 비밀을 탑재합니다. Dapr은 애플리케이션 코드에서 호출할 수 있고 다양한 비밀 저장소로 구성할 수 있는 RESTful API를 통해 비밀을 노출합니다. 다음 표에서는 각 제품의 기능을 나열합니다.

Dapr 비밀 API 비밀 저장소 CSI 드라이버
지원되는 비밀 저장소 로컬 환경 변수(개발용); 로컬 파일(개발용); Kubernetes 비밀; AWS 비밀 관리자; Azure Key Vault 비밀 저장소; Kubernetes에서 관리 ID가 있는 Azure Key Vault; GCP 비밀 관리자; HashiCorp 자격 증명 모음 Azure Key Vault 비밀 저장소
애플리케이션 코드에서 비밀 액세스 Dapr 비밀 API 호출 탑재된 볼륨에 액세스하거나 탑재된 콘텐츠를 Kubernetes 비밀로 동기화하고 환경 변수를 설정합니다
비밀 회전 새 API 호출은 업데이트된 비밀을 가져옵니다 비밀을 폴링하고 구성 가능한 간격으로 탑재를 업데이트합니다
로깅 및 메트릭 Dapr 사이드카는 Azure Monitor와 같은 수집기를 사용하여 구성할 수 있는 로그를 생성하고, Prometheus를 통해 메트릭을 내보내고, 상태 검사를 위해 HTTP 엔드포인트를 노출합니다 Prometheus를 통해 드라이버 및 Azure Key Vault 공급자 메트릭 내보내기

Dapr의 비밀 관리에 대한 자세한 내용은 비밀 관리 구성 요소 개요를 참조하세요.

비밀 저장소 CSI 드라이버 및 Azure Key Vault 공급자에 대한 자세한 내용은 비밀 저장소 CSI 드라이버 개요를 참조하세요.

관리되는 Dapr 클러스터 확장은 오픈 소스 Dapr 제품과 어떻게 비교됩니까?

관리되는 Dapr 클러스터 확장은 AKS 클러스터에서 Dapr을 프로비전하는 가장 쉬운 방법입니다. 확장을 사용하면 자동 업그레이드를 옵트인하여 Dapr 런타임 버전의 관리를 오프로드할 수 있습니다. 또한 확장은 스마트 기본값을 사용하여 Dapr을 설치합니다(예: 고가용성 모드에서 Dapr 컨트롤 플레인 프로비전).

Helm 또는 Dapr CLI를 통해 Dapr OSS를 설치할 때 런타임 버전 및 구성 옵션은 개발자와 클러스터 유지 관리자의 책임입니다.

마지막으로 Dapr 확장은 AKS의 확장이므로 다른 AKS 기능과 동일한 지원 정책을 기대할 수 있습니다.

Dapr OSS에서 AKS용 Dapr 확장으로 마이그레이션하는 방법에 대해 자세히 알아봅니다.

관리 ID를 사용하여 Microsoft Entra ID에서 Dapr 구성 요소를 인증하려면 어떻게 해야 하나요?

Helm과 같은 메서드를 통해 Dapr을 이미 설치한 경우 Dapr 확장을 사용하도록 전환하려면 어떻게 해야 하나요?

권장 지침은 AKS 클러스터에서 Dapr을 완전히 제거하고 클러스터 확장을 통해 다시 설치하는 것입니다.

AKS 확장을 통해 Dapr을 설치하는 경우 Dapr CLI 대신 Dapr의 향후 관리를 위해 확장을 계속 사용하는 것이 좋습니다. 두 도구를 결합하면 충돌이 발생하고 원치 않는 동작이 발생할 수 있습니다.

다음 단계

Dapr 및 해결되는 몇 가지 과제에 대해 학습한 후 Dapr 클러스터 확장을 사용하여 애플리케이션을 배포해 보세요.