Microsoft、マイクロサービス構築を容易にする「Distributed Application Runtime」を発表:任意の言語とフレームワークを利用可能
Microsoftは、クラウドとエッジで動作する分散アプリケーションの構築を容易にするサーバレスランタイム「Distributed Application Runtime」(Dapr)を発表した。移植可能でイベント駆動型のオープンソースソフトウェアである。
Microsoftは2019年10月16日(米国時間)、「Distributed Application Runtime」(Dapr)を発表した。Daprは、クラウドとエッジで動作する、耐障害性のあるステートレス、またはステートフルなマイクロサービスアプリケーションの構築を容易にする、移植可能でイベント駆動型のオープンソースサーバレスランタイム。Daprの開発は現在、α版の段階にある。
MicrosoftはDaprにより、新規にコードを作成するか、既存コードを移行するかにかかわらず、全ての開発者が任意の言語とフレームワークを使って、移植可能なマイクロサービスアプリケーションを簡単に構築できるようにすることを目指している。
Daprは、マイクロサービスアプリケーション構築のベストプラクティスを、一連のオープンなビルディングブロックとして体系化したものだ。これらのビルディングブロックにより、自分の選んだ言語とフレームワークで移植可能なアプリケーションを作成できる。
各ビルディングブロックは独立しており、そのいずれか、または全てを、自分が作成するアプリケーションに利用できる。
Microsoftが掲げるDaprの目標は次の通り。
- 開発者が任意の言語やフレームワークを使って、分散アプリケーションを作成できるようにする
- ベストプラクティスを体系化したビルディングブロックを提供することで、開発者がマイクロサービスアプリケーションの開発で直面する困難な問題を解決する
- コミュニティー主導でオープン、さらにベンダー中立で新しいコントリビューターを求める
- オープンAPIを通じて整合性と移植性を提供する
- クラウドとエッジ全体にわたって特定プラットフォームに依存しない
- 拡張性を確保し、ベンダーロックインに陥ることなく、接続可能なコンポーネントを提供する
- 高いパフォーマンスを提供し、軽量であることから、IoTとエッジのシナリオが可能になる
- ランタイムに依存することなく、既存コードへ段階的に導入できるようにする
Daprの仕組みは?
Daprは、サイドカーコンテナ/プロセスを各コンピュートユニットに導入する。サイドカーは、標準的なHTTPまたはgRPCプロトコルでイベントトリガとやりとりし、コンピュートユニットと通信する。これにより、Daprは、開発者にフレームワークやライブラリのインポートを要求することなく、既存の全てのプログラミング言語をサポートする。今後実装される新しいプログラミング言語にも対応するという。
Daprは、GET、POSTなどの標準HTTP動詞、またはgRPCインタフェースにより、ビルトインステート管理や信頼できるメッセージング(少なくとも1回デリバリーを実行)、トリガー、バインディングといった機能を提供する。そのため、開発者は同じプログラミングパラダイムに従って、ステートレスやステートフル、アクターモデルのサービスを作成できる。整合性モデルやスレッドモデル、メッセージデリバリーパターンを自由に選択できる。
Daprは、マシンやIoTデバイス上でスタンドアロンバイナリとして実行され、クラウドやオンプレミスで、任意のシステムに導入可能なコンテナとしてKubernetes上で動作する。
Daprは、接続可能なステートストアとメッセージバス(RedisやgRPCなど)を使用し、gRPCを使ったDapr間の直接通信や非同期パブリッシュ/サブスクライブ通信など、幅広い通信方法を提供する。これらの通信方法は、少なくとも1回デリバリーするセマンティクスを採用し、デリバリーが保証されている。
なぜDaprが必要なのか?
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- マイクロサービスが注目される理由 導入検討に向けて気を付けるべきポイント
特集「マイクロサービス入門」第2回目は、マイクロサービスが注目される背景と、企業がこれからマイクロサービスの導入を検討するに当たって、考えておくべきポイントをオイシックス・ラ・大地で技術顧問を務める寺田佳央氏が解説します。 - 「マイクロサービスに出遅れた」ところは、先人から何を学べるか
これまでマイクロサービスアーキテクチャに取り組んだ組織の多くは、試行錯誤を重ねて、自らの組織における最適解を見いだしている。いま、マイクロサービスを考える人たちは、先人から何を学べばいいのだろうか。 - 何が違う? 何が必要? マイクロサービス/サーバレス時代のセキュリティ
従来のモノリシックなアーキテクチャに代わって着目されている「マイクロサービス」や「サーバレス」。これらの新しいアーキテクチャについて、セキュリティの観点からどのようなことに留意すべきなのだろうか。