マイクロソフト、マイクロサービス開発を容易にする「Dapr」をオープンソースで公開。サービス間呼び出し、ステート管理、サービス間メッセージングなど提供

2019年10月18日

マイクロソフトは、マイクロサービスアプリケーションの開発を容易にするためのフレームワーク「Dapr」をオープンソースとして公開しました。現在アルファ版となっており、多くの開発者の協力を求めています。

fig

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

それぞれのサービスはWebサーバのようにステートレスなものもあれば、データベースサーバのように状態をつねに保持するステートフルなものもあります。

また、それぞれ異なるプログラミング言語で開発されたサービスがお互いを呼び出し、メッセージをやりとりする必要があります。

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

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

fig

DaprはKubernetes上であれば特定のクラウドに依存せず、パブリッククラウドでもプライベートクラウドでもエッジでも稼働します。また、ステート管理に用いられるデータストアはプラガブルになっており、Azure Cosmos DB、Redis、AWS DynamoDBなどが使えるようになる計画です。

整備が進むマイクロサービスアプリケーションの開発環境

コンテナが登場したことで、仮想マシンよりもさらに小さな粒度で効率よくプログラムを実行する基盤が整備され、マイクロサービスアプリケーションの基本となる分散アプリケーション基盤の普及が進みました。

次にKubernetesが登場したことで、コンテナの死活管理や名前空間による分離など、多数のコンテナをクラスタとして効率よく運用管理できるようになります。

Istioに代表されるサービスメッシュは、コンテナ上で稼働するサービス間のネットワークを認証や暗号化によってセキュアに構成し、ルーティングやトラフィック管理、ログ管理などアプリケーションレベルでの運用管理を容易にしてくれる目的で開発が進んでいます。

そして今回登場したDaprは、プログラマがサービスを実装する上で必要となる、サービス間呼び出しやメッセージング、ステート管理といった機能を提供してくれます。

このように分散アプリケーションもしくはマイクロサービスアプリケーションの開発を容易にするさまざまなソフトウェアが、おおむね下位レイヤから徐々に上位に向かって整備が進んできています。Daprもその直線上にあるものとして、ある意味で順当に登場すべきものが登場したように見えます。

このエントリーをはてなブックマークに追加
follow us in feedly




カテゴリ

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed


最新記事10本