アーキテクチャサービスグリッドアーキテクチャとIstio

3528 ワード

サービスグリッド


アプリケーション内の異なる部分間でデータを共有する方法を制御します.
アプリケーションに導入されるプライベートインフラストラクチャ層.これらのインフラストラクチャ・レイヤは、異なるアプリケーション間のインタラクションがどのようにスムーズであるかを記録し、通信を容易に最適化し、アプリケーションの拡張によるダウンタイムを回避します.
1つのビジネスにおける複数のアプリケーションは、サービスネットワークに分割され、各アプリケーションは特定のビジネス機能を実行する.機能を実行するには、サービスが複数の異なるサービスからデータを要求する必要がある場合があります.ただし、アプリケーションが一部のサービスに対する要求が多すぎると、サービスエラーが発生する可能性があります.この場合、サービス・グリッドは、すべてのコンポーネントの動作を最適化するために、1つのサービスから次のサービスに要求を送信します.

操作方法


アーキテクチャ内のアプリケーションには、リクエストが送信されたときに、ユーザーのリクエストからリクエストの処理に至るエンドポイントを指定するルールが必要です.しかし、サービス・グリッドは、これらのルールを必要とせずに、サービスとサービス通信を制御する論理を使用してインフラストラクチャ・レイヤを抽象化する.
このため、サービス・グリッドは、ネットワーク・エージェントの配列としてアプリケーションに配置されます.
サービス・グリッドでは、そのインフラストラクチャ・レイヤ上のエージェントを介してマイクロ・サービス間でルーティングを要求します.したがって、サービス・グリッドを構成する各エージェントは、サービス内部ではなく、各サービスとともに実行されるため、sidercarと呼ばれる.
これらのsidercarエージェントは、各サービスから分離され、グリッドネットワークを構成する.
sidercarエージェントは、マイクロサービスと同じ位置にあり、同時にエージェントロールを有する.これらのsidercarは、グリッドネットワークを構成する.

Mesh Network補足


グリッドエージェントを使用すると、他のサービスにルーティングサービスを提供し、ネットワーク側でトラフィックを制御できます.しかしながら、従来のTCPベースのエージェント機能では多様な機能を実行するには不十分である.
したがって、service meshの通信は、L 7層ベースのエージェントを使用し、sidercarに簡略化される.
エージェントを使用してトラフィックを制御できますが、サービスが増加するにつれてエージェントの数も増加します.これを補うために,各エージェントの設定情報は1つのセットのコントローラによって制御される.
  • データプレーン:
  • 部分はエージェントで構成され、設定値に基づいてトラフィックを制御します.
  • 制御プレーン:エージェントへの設定の伝達および管理のためのコントローラロール
  • これを利用してIsioを見てみましょう.

    Istio

    Data PlaneのオープンソースソリューションControl Planeは、Envoy proxyをプライマリエージェントとして使用して制御する.Istioは、サービスコードを変更する必要のない負荷バランス、サービス間認証、監視を提供し、マイクロサービスの管理を簡素化します.Istioエージェントをマイクロサービスに配備し、中間カードモードでマイクロサービス間のすべてのネットワーク通信を担当し、コントローラとしてエージェントの設定値を格納および管理し、設定値をエージェントに渡す.

    Envoyで構成されたサービス・グリッドの使用



    Isioコンポーネント


    Data Plane

    Istioセットからなり、各マイクロサービスにステーションカードで配置され、サービスの出入りのすべてのトラフィックを制御します.Envoy Proxyによってサービスが呼び出されたときに呼び出されたサービスIPアドレスは、試験Envoyに記憶されたエンドポイント情報を利用する.

    Control Plane


    制御PilotData Planeの部分

    モジュールの構成

  • Istio 1.4版以下
  • 名前は、Mixerサービス・グリッドのアクセス制御とポリシー管理を実行することを示します.Envoyおよび他のサービス実行監視指標によってPilotEnvoy設定管理モジュールが収集される.Envoy呼び出しのサービスのアドレスを取得できるサービス発見機能を提供します.Citadelセキュリティ関連機能を実行するモジュールは、サービス間コール時の再試行、回路中断、タイムアウトなどの機能を提供し、サービスの信頼性を確保する.認証と認証強化サービス/エンドユーザー間の認証により、TLSを使用して通信暗号化と認証管理GalleyIstioの構成と設定を検証します.導入管理の実行
  • Istio 1.5以降
  • 統合制御プレーンistiodは、EnvoyService Discovery、およびConfiguration Managementなどの動作を実行する.
    - 트래픽 동작을 제어하는 라우팅 규칙을 Envoy 전용 설정으로 변환하고, 마이크로 서비스에 사이트카 방식으로 Envoy를 배포
    - Envoy 설정 변경(Istio의 Traffic Management API 활용)을 통한 서비스 메시 트래픽 세부 제어
    - 내장된 identity나 자격증관리(Credential Management)를 통해 강력한 서비스 간 인증 및 사용자 인증 기능을 지원
    - 인증기관(Certificate Authority. CA) 의 역할 수행. 데이터 플레인에서 안정한 mTLS통신을 허용하는 인증서를 생성

    👀 コメントドキュメント


    Red Hat Docs - what is a service mesh
    GRU ServiceMesh ArchitectureとIstioについて
    両足で歩く犬の足跡