ソフトウェア
上級

Dapr(ダプル)

Microsoft + CNCF Incubating のクラウドネイティブアプリケーションランタイム。Distributed Application Runtime、サイドカーパターン + Building Blocks で State / Pub-Sub / Bindings / Actors 等を提供、Kubernetes + Edge で活用。

0 回閲覧
0 いいね
2026/5/9 更新
関連タグ
Software
Dapr
Microsoft
CNCF
Sidecar
2019

概要

Dapr(ダプル、Distributed Application Runtime)は、Microsoft が 2019 年 10 月に公開、2021 年に CNCF Incubating プロジェクト昇格したクラウドネイティブアプリケーションランタイムです。「分散アプリケーションを書きやすくする」というビジョンで、Microsoft 元 Azure CTO の Mark Russinovich(マーク・ルシノビッチ)+ Haishi Bai(ハイシ・バイ)が中心に開発を主導しました。

技術アーキテクチャは、(1)サイドカーパターン(Sidecar)・(2)Building Blocks(分散システムの共通機能を抽象化した API)、の 2 つの中核概念で構成されます。サイドカーパターンとは、アプリケーションプロセスと並行して動作するヘルパープロセス(daprd、Dapr ランタイム)が分散システム機能を提供する設計で、アプリ自体は HTTP / gRPC で daprd を呼び出すだけで、複雑な分散ロジックを Dapr に委譲できます。

Building Blocks は 8 種類の API で構成されます。(1)State Management: 分散ステート + キーバリューストア、Redis / Cassandra / Cosmos DB / DynamoDB / etcd / MongoDB / PostgreSQL 等のバックエンド抽象化・(2)Publish & Subscribe: メッセージング Pub/Sub、Kafka / RabbitMQ / Azure Service Bus / Google Pub/Sub / NATS 等・(3)Bindings: 外部システム連携、Twilio / SendGrid / S3 / Cosmos DB / GraphQL / GitHub / 70+ サービス・(4)Service Invocation: サービス間呼出、リトライ + サーキットブレーカー + mTLS 暗号化・(5)Actors: 分散アクターモデル、Erlang / Akka 風・(6)Workflows: 分散ワークフロー、Temporal / Step Functions 風・(7)Secrets: シークレット管理、Vault / Azure Key Vault / AWS Secrets Manager・(8)Observability: 分散トレース(OpenTelemetry)+ メトリクス(Prometheus)、です。

Dapr の最大の利点は言語非依存性です。アプリケーションは HTTP / gRPC で daprd を呼び出すだけで Building Blocks が利用可能で、Java / Python / Go / Node.js / .NET / Rust / PHP / Ruby などほぼあらゆる言語で実装可能です。クラウドベンダー非依存性も重要で、Building Blocks のバックエンドコンポーネント(Redis / Kafka / Vault 等)を YAML 設定で切り替えるだけで、AWS / Azure / GCP / オンプレ間の移行が容易です。

主な利用場面は、(1)マイクロサービスアプリケーション(複雑な分散ロジック簡素化)・(2)Kubernetes クラウドネイティブアプリ・(3)Edge コンピューティング(IoT デバイス + Kubernetes Edge + 軽量 Distributed App)・(4)サーバーレス + Workflow(AWS Step Functions / Azure Logic Apps の代替)・(5)CICD パイプライン(複雑なデプロイメントロジックの抽象化)、などです。

主要採用ユーザーは、Microsoft / Bosch / Roadwork(欧州道路工事)/ Defy.Trade / DeFiAccount / DocuSign / FastPair / Italtel / OroCommerce / Snowfox / Vodafone / Volvo Cars 等の大企業 + スタートアップで、特にマイクロサービス + ハイブリッドクラウド + Edge 環境で採用が広がっています。

主な特徴・仕組み

  • 公開: Microsoft 2019 年 10 月、CNCF Incubating 2021 年。
  • 開発主導: Mark Russinovich(MS Azure CTO)、Haishi Bai。
  • アーキテクチャ: サイドカーパターン + Building Blocks。
  • 実装言語: Go(daprd ランタイム)、Apache 2.0 ライセンス。
  • API: HTTP + gRPC、言語非依存。
  • Building Blocks: State / Pub-Sub / Bindings / Service Invocation / Actors / Workflows / Secrets / Observability。
  • バックエンド: Redis / Kafka / Vault / Cosmos DB / S3 / 100+ コンポーネント。
  • 対応言語: Java / Python / Go / Node.js / .NET / Rust / PHP / Ruby ほぼ全。
  • 対応プラットフォーム: Kubernetes / Self-Hosted / Edge / IoT。
  • セキュリティ: mTLS 暗号化 + RBAC + ポリシー。
  • 主要採用: Microsoft / Bosch / Volvo / Vodafone / DocuSign。
  • バージョン: 現在 v1.13+(2024-2026)。

Dapr / 競合分散ランタイム比較

ランタイム提供設計思想
DaprMicrosoft / CNCFサイドカー + Building Blocks
AkkaLightbendアクターモデル + JVM
Erlang OTPEricssonアクターモデル + Erlang VM
Cloud Native Workflow(Temporal)Temporal Inc.ワークフロー専用
AWS Step FunctionsAWSクラウド SaaS ワークフロー
Azure Durable FunctionsMicrosoftクラウド SaaS Workflow

自作PCユーザー向けの注意点

Dapr は通常のコンシューマ自作 PC で必要になる技術ではありませんが、ホビーホームラボ + マイクロサービス開発学習 + 自宅 Kubernetes 環境の上級者には極めて有用です。Docker Compose / Kubernetes 環境で dapr init だけで簡単に起動可能で、HTTP API 経由で State / Pub-Sub / Service Invocation 等の機能をすぐに試せます。

Java / Python / Go / Node.js / .NET 等のあらゆる言語で Dapr SDK を活用したマイクロサービス開発の学習が可能で、業務 Kubernetes + マイクロサービス + クラウドネイティブ開発スキルの習得に役立ちます。Dapr Quickstart + Tutorial も豊富で、Microsoft + CNCF コミュニティが活発で初学者にも優しい環境です。

関連用語との違い

  • Envoy: ネットワークプロキシ、Dapr は分散ランタイム。
  • Istio: Service Mesh、Dapr は Building Blocks 抽象化。
  • Knative: Serverless Platform、Dapr は分散アプリ全般。
  • Akka: アクターモデル、Dapr の Actors Building Block と類似機能。
  • Temporal: ワークフロー専用、Dapr Workflows と機能重複。

よくある質問(FAQ)

Q1: Dapr と Service Mesh(Istio / Linkerd)の違いは? A: Service Mesh は L4-L7 ネットワーク機能(LB + 暗号化 + 観測性)を提供、Dapr はアプリケーション機能(State + Pub-Sub + Workflow + Actors)を抽象化します。両者は補完関係で、Service Mesh + Dapr を組み合わせて利用するケースも多いです。

Q2: 言語非依存とは具体的にどういうことですか? A: Java / Python / Go / Node.js / .NET / Rust 等の各言語で Dapr SDK が提供されますが、すべて HTTP / gRPC で daprd ランタイムを呼び出すだけです。例えば、Python アプリで Dapr State を保存 + Java アプリで読出、というクロス言語マイクロサービスが Dapr Building Blocks で簡単に実現できます。

Q3: 自宅で Dapr を試す方法は? A: dapr init(無料)で Self-Hosted モードで起動可能、Docker 不要でローカル PC でも動作します。Quickstart Tutorial(GitHub: dapr/quickstarts)で 8 つの Building Blocks を実際にコード書いて学習できます。Kubernetes 環境では Helm Chart + 1 コマンドデプロイで本番運用級環境構築も容易です。

まとめ

  • Microsoft 2019 公開 + CNCF Incubating 2021
  • サイドカー + 8 つの Building Blocks
  • 言語非依存 + クラウド非依存 + バックエンド抽象化
  • マイクロサービス + Kubernetes + Edge で採用拡大
この記事について
カテゴリーソフトウェア
難易度上級
作成日2026/5/9