マイクロソフト、マイクロサービス開発を容易にする「Dapr」をオープンソースで公開。サービス間呼び出し、ステート管理、サービス間メッセージングなど提供
マイクロソフトは、マイクロサービスアプリケーションの開発を容易にするためのフレームワーク「Dapr」をオープンソースとして公開しました。現在アルファ版となっており、多くの開発者の協力を求めています。
マイクロサービスアプリケーションは、「マイクロサービス」あるいは単に「サービス」と呼ばれる、それぞれがアプリケーションを構成するための機能を提供する多数のプログラムが疎結合によって連係することで実現されます。
それぞれのサービスはWebサーバのようにステートレスなものもあれば、データベースサーバのように状態をつねに保持するステートフルなものもあります。
また、それぞれ異なるプログラミング言語で開発されたサービスがお互いを呼び出し、メッセージをやりとりする必要があります。
Daprは、こうしたマイクロサービスアプリケーションの開発を容易にするため、プログラミング言語に依存せず、サービス間の呼び出し機能やステート管理の機能、サービス間のメッセージング機能、リソースのバインディング、分散サービス間のトレーシング機能などを提供するためのソフトウェアです。
Daprはライブラリのようにアプリケーションに組み込むのではなく、Dapr自身がコンテナあるいはプロセスとして実行され、それをサービスからHTTP/gRPC API経由で呼び出して利用する、いわゆるビルディングブロックとして実現されています。
DaprはKubernetes上であれば特定のクラウドに依存せず、パブリッククラウドでもプライベートクラウドでもエッジでも稼働します。また、ステート管理に用いられるデータストアはプラガブルになっており、Azure Cosmos DB、Redis、AWS DynamoDBなどが使えるようになる計画です。
整備が進むマイクロサービスアプリケーションの開発環境
コンテナが登場したことで、仮想マシンよりもさらに小さな粒度で効率よくプログラムを実行する基盤が整備され、マイクロサービスアプリケーションの基本となる分散アプリケーション基盤の普及が進みました。
次にKubernetesが登場したことで、コンテナの死活管理や名前空間による分離など、多数のコンテナをクラスタとして効率よく運用管理できるようになります。
Istioに代表されるサービスメッシュは、コンテナ上で稼働するサービス間のネットワークを認証や暗号化によってセキュアに構成し、ルーティングやトラフィック管理、ログ管理などアプリケーションレベルでの運用管理を容易にしてくれる目的で開発が進んでいます。
そして今回登場したDaprは、プログラマがサービスを実装する上で必要となる、サービス間呼び出しやメッセージング、ステート管理といった機能を提供してくれます。
このように分散アプリケーションもしくはマイクロサービスアプリケーションの開発を容易にするさまざまなソフトウェアが、おおむね下位レイヤから徐々に上位に向かって整備が進んできています。Daprもその直線上にあるものとして、ある意味で順当に登場すべきものが登場したように見えます。
関連記事
2021年2月、バージョン1.0がリリースされました。
あわせて読みたい
プロダクトカンパニーからサービスカンパニーへ。オラクルがユーザー体験などを全社レベルで刷新、自社の変革に取り組む[PR]
≪前の記事
AWS、Amazon PrimeやKindle、Alexaなどで使用していた約75ペタバイト7500のOracleデータベースをダウンタイムなしで自社データベースサービスへ移行したと報告