APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

KubeCon NA 2023: Modernなアプリケーション実行環境 Daprがさらに進化

KubeCon NA 2023 Chicagoの3日目。今回はDaprの最新動向をお伝えします。

Dapr, Workflows, and the Road Ahead

このブログでもなんどかDaprについて取り上げてきました。

techblog.ap-com.co.jp

Daprは分散アプリケーション実行環境で、様々な外部サービスとの接続を抽象化し、分散アプリケーションの実装を容易にするものです。これまではService InvocationやPub/Sub接続、State Managementなど分散アプリケーション接続の抽象化とその機能拡張が進んできました。

そして今回紹介されたのが Dapr Workflowです。Azure Durable Functionsをイメージしていただければ、どんなものかはわかるのではないでしょうか。これは、アプリケーションのワークフローを実行・管理する機能で、Daprの外部サービス機能や、実装した分散アプリケーションと連携しながらワークフローを実現できます。

Workflow機能はDaprをより抽象度の高いシステムを実現する大きな進歩になると私は感じました。

Workflow機能により、システム内の個々の機能部分とワークフロー部分をそれぞれ分離してMicroserviceとして実装することができるようになります。また個々の機能部分とワークフロー部分は実装言語が違っても問題ありません。例えばMachine Learning関連の機能を追加するためPythonで実現しつつ、ビジネスロジック部分はJava,そしてワークフロー部分は.NetまたはJavaといったことも可能です。

通常のモノリシックなシステムの場合、ワークフローとそれぞれの機能を1つの実行環境の中に1つの言語で実装する必要がありました。依存関係が簡単になる反面、本来は関係のない個々のシステムを1箇所にまとめる必要があり、機能追加・更新などによるリリース頻度を高める際の制約事項になっていました。

Daprのワークフローにより、個々の機能とワークフロー処理が分離されるので、それぞれの独立性を高められリリース頻度なども高めていくことができると思います。

もちろんそうしたMicroservice型の分散システム向けのシステム設計に変えていかないといけませんが、それを受け入れることで得られる利得がとても高いものになると感じています。

この他にも今後もDaprは進化し続け、よりよいものに変わりそうなロードマップも発表されていました。

これを機会にあらためてDaprによるシステム設計について考えてみたと思います。皆さんも一緒にいかがですか?