Istio
「サービスメッシュ」「Istio」って何? どう使える? どう役立つ?:寺田佳央氏が分かりやすく説明 - @IT
マイクロサービスに関わる人々の間で、Istioへの注目が高まっている。これはGoogle、IBM、Lyftが開発し、2017年5月にオープンソース化したソフトウェア。「サービスメッシュ」と呼ばれる機能を果たす。サービスメッシュでは、マイクロサービス間の通信を統一的な仕組みで制御。これにより、きめ細かなセキュリティの確保、流量制御、フェイルオーバー、ブルー/グリーンデプロイメント、カナリアデプロイメントなどを容易にする。
「サービスメッシュ」「Istio」って何? どう使える? どう役立つ?:寺田佳央氏が分かりやすく説明 - @IT
そこで登場するのがIstioの採用する「サイドカーパターン」。この言葉は耳慣れないかもしれないが、Java開発者にとっては「CDI(Contexts and Dependency Injection)」と同様の構成を意味するので分かりやすい。CDIでは実装クラスを直接触るのではなく、プロキシオブジェクトを触る。CDIはJavaのクラスレベルの話だが、これをサービスレベルにしたのがIstioのサイドカーパターン。すなわち、ネットワーク制御、流量制御、監視などの機能を、アプリケーションに埋め込むのではなく、プロキシプロセスとして動かす。
Istioでは、各マイクロサービスでプロキシを動かす
具体的には、IstioではKubernetesのデプロイメント単位でプロキシサーバが動作し、これらが相互に通信する構成になる。Istioでは、プロキシサーバとしてLyftが開発したEnvoyを使っている。
GoogleがIstioをGKEに統合、いよいよスタンダードツールの仲間入り 2018/12/11
Googleが今日(米国時間12/11)、GKE、Google Kubernetes Engineのアップデートを発表し、それによりこのサービスに、Istioサービスメッシュのサポートが統合される。Istioのサポートは、現在ベータである。
Istioはまだ、Kubernetesが近年そうなったような高い知名度の用語ではないが、多くのエンタープライズにとって、クラウドネイティブなプラットホームを構築するための重要なビルディングブロックになっている。
Istioの中核的な機能は、Kubernetesをはじめさまざまなプラットホーム上で複数のマイクロサービスを互いに接続し、モニタし、セキュリティを図るためのオープンソースのサービスメッシュ〔mesh, 網の目〕だ。IstioとそのEnvoyプロキシなどのサブコンポーネントは、複数のマイクロサービスを統合し、それらのセキュリティを図り、ログデータを集積し、それらにより、Kubernetesのようなオーケストレーションのレイヤ(層)の上に新たな抽象化レイヤを提供する。
Google CloudのChen GoldbergとJennifer Linが、今日の発表でこう述べている: “Istioはマイクロサービスをもっとも有効に利用するための重要な役割を担う、と堅く信じている。そのためのIstioのやり方は、優れた可視性とセキュリティを提供することによって、コンテナ化されたワークロードをより容易に扱えるようにすることだ。このたびIstioがGKEに統合されたことによって、われわれはメジャーなクラウドプロバイダーとしては初めて、Kubernetesサービスとのダイレクトな統合を提供し、コンテナのライフサイクル管理を単純化した”。