Microsoftは2019年10月、マイクロサービスアプリケーションの開発を容易にするオープンソースソフトウェアのプロジェクト、「Dapr(Distributed Application Runtime)」を開始した。その「生みの親」であるルーク・キム(Luke Kim)氏とヤーロン・シュナイダー(Yaron Schneider)氏に、2019年11月開催のKubeCon+CloudNativeCon North America 2019で聞いた。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
Microsoftは2019年10月、マイクロサービスアプリケーションの開発を容易にするオープンソースソフトウェア(OSS)のプロジェクト、「Dapr(Distributed Application Runtime)」を開始した。その「生みの親」であるルーク・キム(Luke Kim)氏とヤーロン・シュナイダー(Yaron Schneider)氏に、2019年11月開催のKubeCon+CloudNativeCon North America 2019で聞いた。
キム氏の役職はAzure CTOインキュベーションリードで、シュナイダー氏はプリンシパル・ソフトウェアエンジニア。2人は「Microsoft Azure」(Azure)のCTOであるマーク・ルシノビッチ(Mark Russinovich)氏が指揮するCTOオフィスで、「インキュベーションチーム」として活動している。新たなソフトウェアのアイディアを実際のコードとして形にし、安定して動作するものとしてプロダクトチームに渡すところまでを担っているという。同氏たちが生み出したソフトウェアには、Daprの他に「KEDA (Kubernetes-based Event-driven Autoscaling)」や「OAM(Open Application Model)」などがあるという。
――考えてみると、「Distributed Application Runtime」(分散アプリケーションランタイム)というのは野心的な名前ですね。
キム氏 「ランタイム」というのが重要なポイントです。Daprは、サービスメッシュなどのようにサービスレイヤーではなく、アプリケーション/プログラミングモデルのレイヤーで機能を提供します。多様なビルディングブロックを備えたランタイムを提供することで、ベストパターン、ベストプラクティスを活用し、マイクロサービスアプリケーションの開発をとても容易なものにしています。
――既存アプリケーションの活用もできるということですよね。
キム氏 その通りです。既存アプリケーションを活用し、段階的にクラウドネイティブな機能を加えていくこともできます。アプリケーションに大きな修正を加えなくとも、Daprが状態管理やpub/subなどを受け持ってくれます。
例えば「AWS Lambda」や「Azure Functions」など、サーバレスのプログラミングモデル/ランタイムでは、既存アプリケーションを活用しようとすると、このアプリケーションの書き換えやリファクタリングが必要になります。一方Daprでは、アプリケーションの横で動くモジュールにより、既存アプリケーションの機能を生かすことができます。
――その場合、既存アプリケーションはコンテナでなくてもいいということですよね。
シュナイダー氏 そうです。Daprは、アプリケーションプロセスの横でサイドカーとして動きます。もう1つ重要なこととして、Daprは多くのオープンソースコンポーネントやクラウドサービスと統合的に使えます。例えばNATSやKafka、さらにAmazon Web Services(AWS)やAzure、Google Cloud Platformのサービス群があります。ユーザーがロックインされることなく、どのクラウドでも、オンプレミスやエッジでも、同じアプリケーションを構築し、動かせるようにしたいと思っています。
キム氏 アプリケーションのポータビリティを実現するため、私たちは開発言語やインフラプラットフォームから独立したアプリケーションランタイムを提供したいと考えました。例えばAWSで「Amazon DynamoDB」を活用するアプリケーションをAzureに持ってきた場合、アプリケーションコードを修正することなく、YAMLの記述を変更するだけで「Azure Cosmos DB」に入れ替えることができます。ロックインされることなく、各プラットフォームにおけるベストなサービスを活用できるようになっているのです。
Copyright © ITmedia, Inc. All Rights Reserved.