Microsoft は、Kubernetes のアプリケーション開発を簡素化するビルディング ブロックを提供することを目的とした、Distributed Application Runtime (Dapr) のバージョン 1.0 をリリースしました。
Daprは、KubernetesをめぐるMicrosoftが支援するオープンソースプロジェクトの1つであり、おそらく最も即効性のあるプロジェクトと言えるでしょう。他には、Istioと同様にEnvoyを使用しながらもLinkerdのように軽量なOpen Service Mesh (OSM)や、Red Hatと提携しKubernetes上でサーバーレスかつイベントドリブンなコンテナをサポートするKEDAなどがあります。Daprは2019年10月に初めて発表され、GitHub上で開発されてきました。
Daprの目的は、HTTPまたはgRPC経由でアクセスでき、あらゆるアプリケーションから呼び出し可能なサービスを提供することです。これらのサービスは、実装が困難な一般的な要件を満たすことができます。具体的には、Daprは以下の機能を提供します。
- サービス間呼び出し
- 状態管理: Redis、CosmosDB、SQL Server、PostgreSQL などのさまざまなストアからキー/値のペアを保存および取得します。
- 公開と購読
- リソースバインディング: イベントの送信、受信、応答
- 仮想アクター: ステートレスオブジェクトとステートフルオブジェクトにアクターパターンを使用する
- 分散トレース: W3C トレースコンテキスト標準を使用して、トレースおよび監視システムにイベントを送信します。
- 秘密管理: 資格情報の安全な保管と取得
最初のプレビュー以来、Daprは秘密管理と新しいセキュリティ機能を追加してきました。
Dapr はKubernetes上で実行されることがほとんどですが、Kubernetes に依存せず、セルフホストバイナリまたはコンテナ内で実行できます。Go、Java、JavaScript、Python、.NET、Rust、C++、PHP 向けの SDK が用意されており、ASP.NET Core や Java Spring Boot などのフレームワークとの統合も可能です。Dapr 自体は Go で記述されています。Microsoft の本日の投稿によると、「コミュニティは、Azure、AWS、Alibaba、Google クラウドと統合する Dapr コンポーネントの提供に積極的に取り組んでいます」とのことです。
同社は、「Daprは現在、複数の本番環境および試作環境で稼働している」と述べ、最初のプレビュー以降、セキュリティ機能が追加されてきたと付け加えた。現在、HashiCorpやAlibabaを含む約700人のコントリビューターが参加している。技術運営委員会も設置されており、同社は「近い将来、Daprをオープンソフトウェア財団に加盟させる予定」だ。
ZeissはAzureに展開されたソリューションの一部としてDaprのいくつかの機能を使用しています。
1.0リリースは、APIが安定していると宣言され、今後の変更はバージョン管理メカニズムを通じて行われることを意味するため、重要です。互換性を破る変更が行われる可能性はありますが、「数リリース前にお知らせします」とMicrosoftは約束しています。
セキュリティ面では、Dapr は中間者攻撃を防ぐために自動的に更新およびロールオーバーされる x.509 証明書を使用するようになり、spiffe フレームワークを使用してアクセス制御リストも提供します。
アプリケーション構成データ、シングルトン オブジェクト インスタンスの作成、URL に基づくメッセージのルーティング、サーキット ブレーカーやタイムアウトなどの回復力 API を含む追加の API が計画されています。®