よく知られているコンテナ管理システムKubernetesをはじめ、各種のオープンソースのコンテナオーケストレーションサービスを提供しているCloud Native Computing Foundation(CNCF)が、その5つめのサービスとしてLinkerdを加えたことを発表した(“リンカーディー”と発音する)。BuoyantでインキュベートされたLinkerdは、Kubernetes, Prometheus, OpenTracing, FluentdなどそのほかのCNCFのプロジェクトと肩を並べて、ユーザーのクラウドおよびコンテナ管理をサポートすることになる。
CNCFのミッションは、“現代的な分散システム環境向けに最適化され、何万もの自己治癒型マルチテナントノードへスケールできるような、新しいコンピューティングパラダイムの作成と採用促進を図る”、とされている。
そのような全体像の中でLinkerdの役割は、上記のような、現代的で、もっぱらコンテナ中心型のアプリケーションに、いわゆる“サービスメッシュ”を提供することだ。Linkerdはスタンドアロンのプロキシで、その中心的な機能は、さまざまなサービスの相互コミュニケーションを支えることだ。サービスメッシュとは、何か。
“つまり、サービスAがサービスBに直接話しかけるのではなく、サービスAはLinkerdのインスタンスを介してBに話しかける。ただしそのときでも、正常な状態なら、AはLinkerdが介在したことを知る必要がない”、とBuoyantのCEOで協同ファウンダーのWilliam Morganは語る。彼は前にTwitterにいたとき、この種の問題を体験したことがある。“そして実際には、何十、何百、何千ものLinkerdインスタンスをデプロイすることになり、それらが堅牢で順応性に富むコミュニケーションの‘メッシュ’を形成する”。誰もがすでによく知っている一種のプロキシのように(たとえばWebトラフィックを扱うNginx)、Linkerdはアプリケーションの内部的トラフィックのために、それらと同様の機能を提供するのだ。
Morganによると、現代のアプリケーションは、Webサーバー -> アプリケーション -> データベースといった少数のサービスを単純に呼び出すのではなく、おそらく10以上ものマイクロサービスを呼び出すから、そういうコミュニケーションがなお一層、重要な課題になる。“私たちの基本的な信念として、現代のアプリケーションのアーキテクチャでは、丈夫なアプリケーションの要求がイコール、丈夫なサービスコミュニケーションの要求だ、と言っても過言ではない”、とMorganは述べる。複数のマイクロサービスで成り立つアプリケーションは、サービス間のコミュニケーションが命(いのち)、というわけだ。
Linkerdは言語を特定しないメッセージングレイヤを形成するだけでなく、ロードバランシングやエラー/レイテンシ対応など、マイクロサービス群で成り立つアプリケーションの健康な応答性を維持するための、そのほかのサービスも提供する。
Buoyantはこれまで、350万ドルを調達している。中でもLinkerdは同社の旗艦的オープンソースツールだが、でもいちばん注力しているのは、企業のクラウドネイティブアプリケーション(最初からクラウド育ちのアプリケーション)の、インサイトとコントロールを提供するHeliumだ。
では、その同社がなぜ、LinkerdをCNCFに献呈したのか? Morganによるとそれは、Linkerdをもっとも有効に活用できる企業は、すでに“クラウドネイティブな環境”をITのメインにしている企業だからだ。
“また、私たちにとって本当に重要なのは、
a) 具体的な価値を提供し、コミュニティが元気で、スタンドアロンのプロダクトとして通用する(==単独で機能が完備している)オープンソースのプロジェクトがあること、と、
b) ビジネスとして利益を上げ、優秀な人材を吸引でき、ほかの企業のために重要なインフラストラクチャの問題を解決できること、
このa)とb)のバランスの取れたスタートアップであることだ。CNCFはこのような二重性に対してきわめてオープンであり、またわれわれと同様に、その両方ができる、両方を上手にできる、と信じているからだ”、とMorganは付言した。