APC 技術ブログ

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

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

KubeCon NA 2022 Day2 - DaprCon 2022

KubeCon / CloudNativeCon 2022 Detroit Day2。Day2もCommunity Dayとなっていますが、 その中の1つ DaprCon 2022 に参加してまいりました。

これまでも本ブログで Daprに関する記事をアップしてきましたが、Daprは一言でいえばPubSubやState Storeなどのレイヤを抽象化し、アプリケーションからのインターフェースを共通化するものです(詳しくはDapr Conceptをご覧ください)。

techblog.ap-com.co.jp

少数のコンポーネントを使ったシステムを開発している場合はあまり異議を感じないかもしれません。 しかし、Cloud Nativeでは数多くのコンポーネントと連携しながら動作するシステムをMicroserviceとして開発します。そうしたとき、それぞれのコンポーネント用に用意したSDKの使い方を覚え、「適切に」利用しながら システムを開発するのは大変です。SDKなどの使い方を覚えたりすることは機能を実現することに直接関係しない ものであり、できれば手短に済ませたいものです。こうした部分を抽象化し共通のインターフェースとして 定義されていたらランニングコストが下がり、本来のビジネス部分の開発に専念できるようになります。そして 開発ベロシティーも向上します。こうしたことを実現するのがDaprです。

すでに海外の企業では活用が進んでいます。参加者や発表者の実例でもStripeやZScalerや、Proximus(ベルギー)といった企業でプロダクション環境で活用しています。

こうした企業で注目するのがやはり、イベントドリブンアーキテクチャなど非同期通信を利用する場合の開発容易性です。非同期アプリケーションを実現するにはそれなりの学習が必要になりますが、Daprでは簡単なインターフェースで実現できるため、その点が開発ベロシティー向上に大きく貢献しているそうです。 また、抽象化を行うことで、ベンダロックインなども避けることができると考えて採用しているそうです。

DaprはCNCFプロジェクトの中で9番目に大きなプロジェクトだそうです。それだけ多くの方が貢献しているため、 新しいコンポーネントの追加も積極的に行われており、バージョンを重ねるごとに機能も増えてきています。

発表者でもあったMicrosoftのエンジニアの方とちょっとだけ話をしたのですが、以下のようなことをおっしゃっていました。 Daprを学習する必要があるため最初学習コストが少しかかりますが、それ以降は共通のインターフェースが利点となりすぐに学習効果が現れます。Daprで対応しているコンポーネントは概ねインターフェースが概ね共通なので、新しいコンポーネントを使うことになっても新たな学習コストが必要なくすぐに実現でき、またそうした共通インターフェースがチーム内でのコミュニケーションもシンプルになり活発になるそうです。

また、MirosoftではAKSのExtensionやContainer AppsでもDaprを利用できるようになっていますので、Azureを利用されている方ならすぐに開始できます。AKSやContainer AppsでDaprを利用している場合は、Daprに関する質問等もMicrosoftのサポートで対応できることも利点になります。

Cloud Nativeのシステム開発は本当に多くの要素が絡んできます。だからこそDaprのようなものが必要になります。今日登壇していた方やメンテナーの方が利点として一番にあげられていたのはやはり、抽象化・インターフェースの抽象化です。私自身もDaprの情報に最初に触れたときに感じたのはこの「抽象化・インターフェースの共通化」から得られる効果です。世界中の開発者がその可能性を認めたプロジェクトで実際に利用も拡大してるものですので、これからも注目に値するものではないでしょうか。

皆さんもぜひ一度Daprの採用を検討してみませんか。

dapr.io