クラウドネイティブアプリ構築を支援するマイクロソフトのオープンソースプロジェクト「Dapr」が1.0に

Microsoft(マイクロソフト)が進めるオープンソースプロジェクトのDaprは、開発者がイベントドリブンのクラウドネイティブな分散アプリケーションを簡単に構築できるようにすることを目的としている。Daprは米国時間2月17日に、本番のユースケースに使用できることを意味する1.0のマイルストーンとなった。Microsoftは2019年10月にDistributed Application Runtimeをローンチした(Daprはこの頭文字を取ったものだ)。それ以降14のアップデートがあり、AzureのほかAWS、Alibaba、Google Cloudなどほぼすべての大手クラウドプロバイダとの統合がローンチされた。

Microsoft AzureのCTOであるMark Russinovich(マーク・ルシノビッチ)氏は筆者に対し、Daprの目標は企業の開発者に対してクラウドネイティブの開発を民主化することだと語った。

同氏はこう説明する。「企業の開発者に求められているのは、これまではクライアント、サーバー、ウェブ、そしてデータベースタイプのアプリケーションでした。しかし現在ではコンテナ化して、スケールアウトしダウンタイムなしでアップデートできるマイクロサービスを作ることが求められています。しかもクラウドサービスと統合する必要があります。その上、多くの企業はオンプレミス環境やクラウド環境で移植でき、さらにクラウド間でも移行できるアプリの作成を求めています。このように、解決に取り組んでいるビジネス上の問題に固有のものではない、あるいは関連していない複雑な問題が山ほど開発者に投げかけられています」。

開発の多くの部分が、アプリケーションが他のさまざまなサービスと信頼性の高い通信をするための仕組みの刷新に関わっている。Daprの背景となっている考え方は、イベントドリブンのマイクロサービスを構築するために必要なツールとなる、これまでになかった単一のランタイムを開発者に提供することだ。とりわけDaprはサービス間通信、状態管理、pub/sub、シークレット管理などに関する多様なビルディングブロックを提供している。

画像クレジット:Dapr

ルシノビッチ氏は「Daprが目指しているのは、クラウドネイティブの分散型で、可用性が高く、スケーラブルで、セキュアなクラウドサービスを日常的に書く作業はすべてDaprが面倒を見て、開発者が自分のコードに集中できるようにしようということです。我々はサーバーレスや、たとえばAzure FunctionsのようなイベントドリブンなFunctions-as-a-Serviceから学びました。開発者はビジネスロジックに集中し、その後はAzure Functionsのバインディングのようなものが他のサービスとの接続を処理します」と述べた。

同氏は、Daprのもう1つの目標は言語固有のモデルから離れてどの言語からでも利用できるプログラミングモデルをつくることだとも述べた。企業の既存のコードには複数の言語が使われている傾向があり、多くの企業が現在のコードを残して既存のアプリケーションをモダナイズする最適な方法を探っている。

ルシノビッチ氏によれば、現在このプロジェクトにはMicrosoft社外に700人以上のコントリビューターがいて(ただし中心メンバーの多くはMicrosoft社員)、1.0のリリースよりも前に本番環境で使い始めた企業も多いという。Daprをすでに利用している大手クラウドプロバイダの1つがAlibabaだ。ルシノビッチ氏は「Alibaba CloudはDaprを本当に気に入って、大いに活用しています」という。他にはHashiCorpや、初期ユーザーであるZEISS、Ignition Group、New RelicなどがDaprにコントリビュートしている。

クラウドプロバイダであるMicrosoftが自社のイノベーションを競合他社がすでに使っていることを喜んでいるとはちょっと奇妙に思えるが、ルシノビッチ氏はこれはまさに計画どおりでDaprを近々ファンデーションの一部にすることを望んでいると述べた。

「我々は数カ月前からオープンガバナンスに向けた取り組みをしており、Daprをファンデーションの一部にすることを目指しています。【略】ゴールはオープンにすることです。これはMicrosoftのものではありません。業界のものです」と同氏はいう。しかしどのファンデーションを指しているかはまだ公表できる段階ではないようだ。

カテゴリー:ソフトウェア
タグ:MicrosoftDaprオープンソース

画像クレジット:Lynne Gilbert / Getty Images

原文へ

(文:Frederic Lardinois、翻訳:Kaori Koyama)