【プログラミング】フレームワークDaprとは

プログラミング

マイクロソフトは、マイクロサービスアプリケーションの開発を容易にするためのフレームワーク「Dapr」をオープンソースとして公開した。

マイクロサービスアプリケーションは、「マイクロサービス」あるいは単に「サービス」と呼ばれる、それぞれがアプリケーションを構成するための機能を提供する多数のプログラムが疎結合によって連係することで実現される。

それぞれのサービスはWebサーバのようにステートレスなものもあれば、データベースサーバのように状態をつねに保持するステートフルなものもあります。それぞれ異なるプログラミング言語で開発されたサービスがお互いを呼び出し、メッセージをやりとりする必要があります。

Daprは、こうしたマイクロサービスアプリケーションの開発を容易にするため、プログラミング言語に依存せず、サービス間の呼び出し機能やステート管理の機能、サービス間のメッセージング機能、リソースのバインディング、分散サービス間のトレーシング機能などを提供するためのソフトウェア。

Daprはライブラリのようにアプリケーションに組み込むのではなく、Dapr自身がコンテナあるいはプロセスとして実行され、それをサービスからHTTP/gRPC API経由で呼び出して利用する、いわゆるビルディングブロックとして実現されている。

Daprとは

Dがistributed AP縫縮Rのuntimeを、マイクロソフトのAzureの内部イノベーションインキュベーションチームのオープンソースプロジェクト。

DaprはOSSでMicrosoftがリードするOSSの分散アプリケーション向けランタイム。Daprによって分散アプリケーションを構築するために必要な基本機能が提供されるため、開発者はこれらの機能を自作する必要がなくなる。

様々なプログラミング言語からHTTP APIもしくはgRPC APIを通じてビルディングブロックと呼ばれる様々な機能が利用できることが分かります。Daprは任意の環境で実行できるように設計されており、MicrosoftのクラウドサービスであるAzure以外にもAWSやGCPといったクラウド環境上での動作がサポートされている。

サポートされる言語

様々な言語向けにDaprのSDKが提供されており、SDKを利用することで簡単にDaprをアプリケーションに組み込めます。SDKはDaprのビルディングブロックを呼び出すためのClient SDK・別サービスからの呼び出しやトピックのサブスクライブを実現するための利用するServer extensions・仮想アクターを構築するためのActor SDKの3種に分かれる。

Dapr Pub / Subの機能

クラウドイベントのメッセージ形式: Daprは、メッセージ形式としてCloudEvents1.0仕様を使用します。Daprを使用してアプリケーションからトピックに送信されたメッセージはすべて、クラウドイベントエンベロープに自動的に「ラップ」されます。

メッセージサブスクリプション: Daprアプリケーションは、公開されたトピックをサブスクライブできます。Daprを使用すると、アプリケーションは宣言型メソッドまたはプログラム型メソッドのいずれかでトピックをサブスクライブできます。

メッセージ配信: Daprは、サブスクライバーがメッセージの処理後にエラー以外の応答(HTTP応答コード204)で応答した場合、メッセージが正常に配信されたと見なします。Daprは、メッセージ配信の「At-Least-Once」セマンティクスを保証します。

トピックスコープ:アプリケーションが公開を許可されているトピックと、アプリケーションがサブスクライブを許可されているトピックを指定できます。

メッセージの存続可能時間(TTL):構成されたTTLよりも長くキューにあるメッセージは、無効であると言われます。これは、読み取られないメッセージの蓄積を防ぐためです。

まとめ

ビルディングブロック方式とは、システムをいくつかの構成要素に分解し、必要となる各構成要素を積み重ねることで全体的なシステム構築、増設を行う方式を指す。主に業務用のアプリケーションソフトやウェブサービスなどにおいて、機能や用途に応じて個別に提供されるサービス。個々のサービスを選択し、組み合わせて利用できるため、システム構築が容易に行える。

ソフトウェアで自分でカスタマイズできるソフトウェアができる。

タイトルとURLをコピーしました