Iphone

Kubernetesが成熟するにつれ、クラウドネイティブの動きはサービスメッシュに注目するようになった。

Kubernetesが成熟するにつれ、クラウドネイティブの動きはサービスメッシュに注目するようになった。

トム・クレイジット

LightStep の共同創業者兼 CEO である Ben Sigelman 氏が、CloudNativeCon 2017 でサービス メッシュなどについて語ります。(GeekWire Photo / Tom Krazit)

オースティン – 2017 年がクラウドネイティブ コンピューティングの動向における Kubernetes の年であったとすれば、2018 年はマイクロサービスを採用しているすべての企業が、すべてのサービスが確実に通信できるようにするには何か別のものが必要であることに気付く年になるかもしれません。

ここ半年ほど、サービス メッシュと呼ばれる技術への関心が高まっており、今週の CloudNativeCon と KubeCon 2017 では、サービス メッシュが話題となりました。先月の Structure 2017 での会話では、大規模分散システムの権威である Google の Urs Hölzle 氏が、Google が支援する Istio サービス メッシュ オープンソース プロジェクトは、Kubernetes よりも重要になる可能性があると述べました。

今週のCloudNativeConで、Buoyantの共同創業者兼CEOであるウィリアム・モーガン氏は、水曜日に行われた熱気あふれる講演の中で、サービスメッシュを「サービス間通信を管理するための専用ソフトウェアレイヤー」と表現しました。モーガン氏は昨年、Twitterが立ち上げ前に危うく破滅の危機に瀕したスケーリング問題の解決を支援した経験を活かしてBuoyantを共同設立しました。その経験から得られた重要な知見の一つは、マイクロサービスは素晴らしいが、非常に複雑であるという点です。

過去 5 年ほどの間に、いわゆる「モノリシック」スタイル (アプリ開発のために 1 つの巨大なコード スラブが記述される) で開発された古いアプリケーションを、マイクロサービスに基づくアプリに分割する一般的な動きがありました。

(左から右): オリバー・グールド、CTO、Buoyant、ウィリアム・モーガン、CEO (Buoyant Photo)
(左から右): オリバー・グールド、CTO、Buoyant、ウィリアム・モーガン、CEO (Buoyant Photo)

モノリシックアプリは一部の用途には適していますが、Webアクティビティの急増に伴い、企業はスケーリングの問題に直面しました。また、モノリシックアプリは多くの依存関係を抱えており、チェーンの一部が変更されただけでも問題が発生する可能性があるため、更新が非常に困難です。マイクロサービスにより、企業は多数の個別の専門サービスで構成されるアプリを構築できるようになり、アプリの更新速度が大幅に向上したため、信頼性とセキュリティが大幅に向上しました。さらに、マイクロサービスに基づくアプリは、コンテナを活用して複数のデータセンターやクラウドプロバイダーにまたがって実行することも容易です。

しかし、コンピューティングの歴史におけるほとんどの進歩と同様に、マイクロサービスベースのアプリは今や非常に複雑になり、開発チームが全てを把握することが困難になっています。これにソフトウェア開発における一般的な問題、つまりバグや予測不可能なハードウェアが加わり、クラウドネイティブソフトウェアは、異なる環境で実行されるコンテナが増えるにつれて信頼性の問題に直面し始めると、モーガン氏は述べています。

そのため、企業はこれらの問題に対処するためにカスタムソフトウェアを書くことになるが、これは誰にとっても時間の有効な使い方ではないと、Lightstep の共同設立者兼 CEO である Ben Sigelman 氏は言う。

「アプリケーションソフトウェアを構築したいと思っても、同じことを何度も繰り返すコードを書いていることが多い」と彼は語った。

2013年頃にTwitterが使用していたすべてのマイクロサービスを視覚化した図。各線は、相互に通信する必要があるマイクロサービスを表しています。(Buoyant Photo)

そこでサービスメッシュの登場です。このテクノロジーは、コンテナ化された環境にデプロイされたサービス同士がより簡単に通信できる手段を提供し、要件の変化に伴うサービス停止を防ぐのに役立ちます。

「GitHubのダウンはソフトウェア業界に甚大な影響を与える可能性があります」と、GitHubの主任サイト信頼性エンジニア、ジェシー・ニューランド氏は述べた。GitHubは、事実上すべてのソフトウェア開発業界がワークフローの一部として利用している中央コードリポジトリだ。同社はこれらの問題に対処するために独自のサービスメッシュ技術を構築したが、Lyftで開発されたオープンソースプロジェクトであるEnvoyをその技術に追加することを検討していると、ニューランド氏は述べた。

Buoyantは、Cloud Native Computing Foundation傘下のlinkerdと、今週初めのCloudNativeConでリリースされたConduitという2つの独立したサービスメッシュプロジェクトを開発しました。ConduitはKubernetes向けに特別に設計されており、linkerdはさまざまなクラウドネイティブ環境で利用できます。

linkerd サービス メッシュがマイクロサービスを接続する仕組みを示した図。(Buoyant Photo)

今年初めに Google、IBM、Lyft によってリリースされ、Envoy をベースにした Istio は、こうした議論で取り上げられるもう 1 つのオープンソース サービス メッシュ プロジェクトです。

https://twitter.com/chanezon/status/939226359267823616

「Kubernetes上に構築されたサービス管理レイヤーであるIstioに私たちは本当に力を入れています。これは実際にはKubernetes自体よりも重要になる可能性があります」とGoogleのヘルツレ氏は11月のStructureで語った。

クラウド志向の開発組織がKubernetesのようなプロジェクトと同じくらい迅速にサービスメッシュを採用するかどうかは定かではありませんが、Kubernetesがコンテナオーケストレーションプロジェクトの主流として安定した地位を確立していくにつれ、2018年にはサービスメッシュが注目すべき分野となることは間違いありません。企業がサービスメッシュを活用するために必ずしもKubernetesユーザーである必要はありませんが、2020年代の終わりに向けて、新しいウェブスケールサービスが構築されるのはサービスメッシュの手法になると思われます。