Istio

マイクロサービスを接続、モニタリング、保護するオープン プラットフォーム

概要

Istio は、分散マイクロサービス アーキテクチャを正常に実行するために必要な基盤を提供するオープンソースの分散型サービス メッシュです。クラウド プラットフォームを採用する組織が増えるにつれ、デベロッパーはマイクロサービスを使用してポータビリティを考慮に入れた構築を行う必要に迫られており、オペレーターも、ハイブリッドやマルチクラウドに展開された大規模な分散型デプロイメントの管理を余儀なくされています。Istio は、マイクロサービスを保護、接続、モニタリングするための一貫した方法を提供し、マイクロサービス環境の管理を簡素化します。

Istio のセキュリティ

セキュリティの負担を軽減し、デベロッパーが他の重要な作業に専念することを可能にします。

Istio のモニタリング

堅牢で使いやすいモニタリングによって、問題をすばやく効果的に検出して修正できます。

Istio の接続

Istio は、拡大するデプロイ環境のトラフィック管理を簡素化します。

アプリケーションの状況を詳細に把握できるため、問題発生時に解決にかかる時間が大幅に短縮されました。Kubernetes 上で Istio を稼働させることで、当社は自信を持って安全にアプリケーションをパブリック クラウドに移行し、プラットフォームの信頼性、安定性、パフォーマンスを向上させることができるようになりました。

AutoTrader 社インフラストラクチャ責任者 Russell Warman 氏
サービス通信の保護

サービス通信の保護

Istio は、マイクロサービス間の通信の認証、承認、暗号化をスケーラブルに管理します。基盤となる安全な通信チャネルが提供されるため、デベロッパーはアプリケーション レベルのセキュリティ管理に集中できます。

サービス通信

安全な通信

Istio は、サービス間、エンドユーザーとサービス間の両方で、マイクロサービスとその通信のセキュリティを強化します。そのためのサービスコードの変更は不要です。各サービスに強力な役割ベースのアイデンティティを提供してクラスタ間やクラウド間の相互運用性を実現します。

厚い防御

厚い防御

Istio を Kubernetes(またはインフラストラクチャ)ネットワーク ポリシーで使用すると、ポッド間またはサービス間の通信をネットワーク層とアプリケーション層の両方で保護できます。Google の多層防御戦略に基づいてマイクロサービス通信を保護する Istio を Google Cloud で利用することにより、Google のインフラストラクチャで真に安全なアプリケーション デプロイメントを構築できます。

デフォルトで保護

デフォルトで保護

Istio ではアプリケーションにほとんどまたはまったく変更を加えることなく、サービス通信がデフォルトで保護されます。また、同じポリシーをさまざまなプロトコルやランタイムにわたって一貫して適用することもできます。

ロギング

サービスのロギング、モニタリング、稼働維持

Istio では、トレースやモニタリング、ロギングによってサービス メッシュ デプロイメントに関する詳細な分析情報を得られます。サービスのパフォーマンス状況や、そのパフォーマンスが他のプロセスに及ぼす影響を確認し、問題をすばやく効果的に検出して分類できます。

全体像の把握

全体像の把握

Istio のカスタム ダッシュボードではサービスの動作の概要を確認でき、問題をすばやく検出して効果的に分類できます。

サービスの理解

サービスのパフォーマンスを理解する

Istio のモニタリング機能では、サービスのパフォーマンスがアップストリームとダウンストリームにどのように影響しているかを把握し、SLO をより効果的に設定、モニタリング、適用できます。

指標

必要な指標を必要なタイミングで

実行中のアプリケーションについて統一された指標とトレースを取得でき、デベロッパーがアプリケーションを手動で測定する必要はありません。

トラフィック管理

トラフィック管理とポリシー制御

Istio のトラフィック管理では、サービス間のトラフィックと API 呼び出しのフローを制御でき、トラフィックの状況を詳細に確認できるので、問題が発生する前に異常を把握できます。これにより、悪条件下でも、呼び出しの信頼性とネットワークの堅牢性を高めることができます。

簡単なルール構成

簡単なルール構成

Istio では、サービスレベルのプロパティ(サーキット ブレーカーやタイムアウト、再試行など)を構成でき、一般的な継続的デプロイのタスク(カナリア ロールアウトや A/B テスト、% 単位のトラフィック分割を使用した段階的ロールアウトなど)を設定できます。

コンテンツのステアリング

目的のバージョンへのコンテンツのステアリング

トラフィックに適用するルールを指定して、各サービス バージョンへのルーティングを、それぞれのバージョンをサポートしているインスタンスの数とは無関係に行うことができます。たとえば、全トラフィックの 5% を特定のカナリア バージョンにルーティングしたり、リクエストの内容に応じて特定のバージョンにトラフィックをルーティングしたりするように指定できます。

障害復旧

すぐに利用できる障害復旧

追加作業不要で利用できる堅牢な障害復旧機能として、タイムアウト、タイムアウト バジェットや可変ジッターを伴う再試行、同時接続とアップストリーム サービス制限のリクエスト、負荷分散プールのメンバーごとの定期的なアクティブ ヘルスチェック、パッシブ ヘルスチェック(細分化したサーキット ブレーカーなど)が用意されています。

Istio のセキュリティ機能

厳密なサービス認証

Istio Auth は、厳密な認証と承認を受けたクライアント以外は機密データを処理するサービスにアクセスできないようにします。

認証ポリシー

Istio の構成ポリシーでは、プラットフォーム認証のサーバー側が構成されますが、クライアント側にはその設定が適用されません。そのため、お客様独自のサービス認証要件を指定できます。

役割ベースのアクセス制御(RBAC)

Istio RBAC は、Istio Mesh のサービスについて、名前空間レベル、サービスレベル、メソッドレベルのアクセス制御を提供します。これには使いやすい役割ベースのセマンティクスと、サービス間やエンドユーザーとサービス間の承認機能が含まれ、役割と役割バインディングのカスタム プロパティによって柔軟な設定を可能にしています。

相互 TLS 認証

Istio は、サービス間、エンドユーザーとサービス間の両方で、マイクロサービスとその通信のセキュリティを強化します。そのためのサービスコードの変更は不要です。各サービスに強力な役割ベースのアイデンティティを提供してクラスタ間やクラウド間の相互運用性を実現します。

鍵管理

Istio の鍵管理システムは、鍵と証明書の生成、配布、ローテーション、失効を自動化します。

Istio のモニタリング機能

バックエンド抽象化

Mixer(ポリシー制御とテレメトリー収集を提供する Istio のコンポーネント)は、個々のインフラストラクチャ バックエンドの実装の詳細と Istio の他の部分を分離します。

仲介

Mixer を使用すると、メッシュとインフラストラクチャ バックエンドの間のすべてのやり取りを細かく制御できます。

低レイテンシ

Mixer は独立して実行されるため、メッシュ内のサービス インスタンスと共存するためメモリ消費を抑えなければならないサイドカー プロキシとは異なり、大容量のキャッシュと出力バッファを使用できます。これは、サイドカー用のスケーラビリティと可用性の高い第 2 レベル キャッシュとして機能します。

高信頼性

Mixer は、個々の Mixer インスタンスで高可用性を実現できるように設計されています。各インスタンスのローカル キャッシュとバッファはレイテンシを低減するとともに、バックエンドが応答しなくなった場合でも、インフラストラクチャ バックエンドの障害をマスクするのに役立ちます。

Istio の接続機能

トラフィック管理とインフラストラクチャのスケーリングを切り離す

トラフィック管理とインフラストラクチャのスケーリングを分離することで、アプリケーション コード外の機能(A/B テスト用の動的リクエスト ルーティング、段階的なロールアウト、カナリア リリースなど)が提供され、また、タイムアウトや再試行、サーキット ブレーカーを使用した障害復旧処理と、サービス間の障害復旧ポリシーの互換性をテストするフォールト インジェクションも行われます。

フォールト インジェクション

障害復旧ポリシーの構成が不適切な場合、重要なサービスを利用できない状態が継続してしまうため、エンドツーエンドの障害復旧テストは不可欠です。Istio では、ポッドを強制終了したり、TCP レイヤでパケットを遅延または破損させたりすることなく、ネットワークに対してプロトコル固有のフォールト インジェクションを行うことができます。

負荷分散

Istio では現在、Envoy がサポートする負荷分散モードのうち 3 種類を使用できます。ラウンドロビン(正常な各アップストリーム ホストを順に選択)、ランダム(ランダム ロードバランサが正常なホストをランダムに選択)、重み付き最小リクエストの 3 つです。

誰がどのマイクロサービスを実行しているかを一貫して把握することは、マイクロサービスの拡大とワークロード全体での普及に伴い、ますます困難になっています。すみやかに Istio を導入したおかげで、サービスの開発言語に関係なく、当社のサービスに対する詳細な可視性とインサイトが一貫した方法でリアルタイムに得られています。この一貫した可視性は、問題解決の迅速化とサービスの堅牢性の向上に役立ちます。

Descartes Labs 社共同設立者 Tim Kelton 氏

ドキュメント

リソース

チュートリアル、クイックスタート、レビューをご覧ください。

統合

Istio 用の Apigee API 管理

企業はマイクロサービスのサービス管理と同様に、API に対する管理も必要としています。Apigee API 管理プラットフォームは、API 管理をマイクロサービス スタックにネイティブに拡張することで Istio を補完します。