先頃のブログ投稿で、Alibaba CloudのスタッフエンジニアであるSky Ao氏が、Alibaba Cloudが分散アプリケーションランタイム (Dapr) を使用してビジネスの成長をサポートする方法について詳しく説明している。
Ao氏によると、Alibabaは過去10年間で、堅実で、バトルテストされたJavaベースのテクノロジースタックを構築してきた。アリババのビジネスが急速に成長し、他の企業も買収するにつれて、さまざまなクラウド環境で複数のプログラミング言語をサポートする必要性が明らかになった。このニーズをサポートするために、Alibabaはさまざまなランタイムをサイドカーとして実行するソリューションを使用することを選択した。Ao氏は次のように詳細を述べる:
Daprは、マルチランタイムの概念を実践した最初のオープンソースプロジェクトです。リリースされて以来、Alibabaは私たちが直面したいくつかの課題の解決に役立つ可能性があるため、Daprに細心の注意を払ってきました。つまり、サイドカーパターンは複数の言語をサポートし、Daprランタイムでアプリケーションをより軽量にし、クライアントSDKの必要性を置き換えます。
これは、プロダクトを別の環境に移行したり、環境間でデプロイする場合に特に役立ちます。- このプロセスは非常に苦痛な場合があります。このコンテキストでは、関数型指向プログラミングの概念、ポータブルでスケーラブルな標準API、およびプラットフォームに依存しないベンダーフリーのDaprの設計は非常に理にかなっています。
Alibabaは、Alibaba Cloudでサポートされている社内プロダクトや商用プロダクトなど、より多くのミドルウェアやインフラストラクチャと統合するためのDaprコンポーネントを開発している。Apache Dubbo、Apache RocketMQなどの統合を含め、これらのコンポーネントをDaprプロジェクトに提供する予定だ。
Daprは、AlibabaがミドルウェアをJava SDKではなくDaprサイドカーとして公開できるようにすることで、Alibabaの複数のプログラミング言語要件をサポートしている。ビジネスアプリケーションは、標準のHTTPおよびgRPCエンドポイントを使用してDaprサイドカーに対処するため、プラットフォームから切り離される。その結果、これらのビジネスアプリケーションもJavaで作成する必要はない。
Alibabaが既存の資産を持つ他の企業を買収すると、DaprによりAlibabaは購入したアプリケーションを以前よりもはるかに迅速に内部のAlibabaインフラストラクチャに統合できる。また、Daprサイドカーはアウトプロセスでホストされるため、ビジネスアプリケーション自体がより軽量になり、またアプリケーションサイズが小さくなり、起動応答時間が短縮されるため、Functions-as-a-Service (FaaS) プラットフォームでのホスティングにより適している。
Daprを使用した複数言語の統合
出典: https://blog.dapr.io/posts/2021/03/19/how-alibaba-is-using-dapr/
DaprがAlibabaの要件をサポートする別のユースケースは、クラウドからクラウドへの移行とマルチクラウドデプロイメントに関するものだ。たとえば、Alibabaの顧客は、DingTalkサービスをAlibabaのインフラストラクチャで実行するだけでなく、仮想プライベートクラウド (VPC) で実行する必要がある。この移行では、一部のインフラストラクチャコンポーネントを切り替える必要があり、Daprは、構成を変更することで移行を支援する。たとえば、次の図は、AlibabaがDaprを使用して、ある環境のメッセージングおよびキャッシングインフラストラクチャを別の環境の別のソリューションに置き換える方法を示している。
Daprを使用したインフラストラクチャの抽象化
出典: https://blog.dapr.io/posts/2021/03/19/how-alibaba-is-using-dapr/
Daprは、オープンソースのポータブルなイベント駆動型ランタイムであり、開発者は、クラウドとエッジで実行される、復元力のあるマイクロサービスベースのステートレスとステートフルなアプリケーションを構築できる。これは、開発者が分散システムの課題を解決するのではなく、ビジネスロジックの記述に集中できるようにすることを目的としている。これにより、開発者の生産性が大幅に向上し、開発時間が短縮される。Daprチームは、約1か月前にプロダクション環境に対応したv1.0リリースを発表している。