最新のアプリケーションを構築するための 8 つの最高のサービス メッシュ マネージャー

公開: 2022-05-31

マイクロサービスを使用する場合、アプリケーションは、システムとして連携して機能するために通信する必要があるさまざまな小規模サービスで構成されます。

多くの場合、マイクロサービスは個々のサービス間で直接相互に通信するため、非効率的で失敗しやすくなりますが、これはまさにサービス メッシュが役立つ場所です。

サービスメッシュとは?

サービス メッシュという用語は、最初は、アプリケーションの異なるマイクロサービス間のデータ交換を制御する方法を表しています。 具体的には、マイクロサービス間の通信を可能にするソフトウェアの使用についてです。

  • アプリケーション識別
  • 負荷分散
  • 認証
  • 暗号化

相互接続されたマイクロサービスのメッシュ ネットワークは、プロキシ経由で実行される並列接続によって作成されます。 この目的のために、ネットワーク化されたマイクロサービス ネットワークは、上位レベルのデータ センター ネットワーク管理システムに統合されます。 これにより、アプリケーションの進化中にダウンタイムが発生することなく、通信を最適化することが容易になります。 実際には、各アプリケーション サービスには、ユーザーのニーズを満たすために他のサービスが必要です。

たとえば、オンライン販売アプリケーションでは、ユーザーは購入前に、該当する商品が実際に入手可能かどうかを確認します。 このためには、データベースに関連するサービスと製品の Web ページとの間で通信を確立する必要があります。 次に、後者はユーザーのオンライン ショッピング カートと通信する必要があります。

さらに、再販業者はアプリケーション上で製品提案サービスを設定して、ユーザーをより適切にガイドすることができます。 この場合、この新しいサービスは、提案を発行するために商品タグのデータベースだけでなく、事前に商品ページと通信する必要がある在庫データベースとも交換する必要があります。 実際には再利用可能な製品のセットです。

現代のアプリケーションは通常、特定のビジネス機能を実行することを目的としたサービスのネットワークとして、このように設定されています。

サービス メッシュはどのように機能し、その利点は何ですか?

サービス メッシュは、アプリケーションの作業環境で他の機能を作成しないことに注意してください。 アプリケーションで作成されたサービス メッシュは、ネットワーク プロキシのグループの形をしており、エンタープライズ コンピューティング セクターでは今でもよく知られている概念です。

職場のコンピューターを使用して Web ページにアクセスするたびに、おそらくプロキシを使用します。 マイクロサービスのインフラストラクチャ レイヤーに基づくプロキシは、それらの間でリクエストをルーティングするのに役立ちます。 したがって、「サイドカー」という言葉は、サービス メッシュに含まれるプロキシを示します。これは、プロキシの実行がサービス内ではなく、サービスの隣で行われるためです。 さまざまなサービスの「サイドカー」プロキシがメッシュ ネットワークを確立します。

さらに、サービス メッシュがない場合、開発者はサービス間の通信戦略に従って各マイクロサービスをコーディングする必要があります。 部門間のコミュニケーション ロジックが各部門に隠されているため、開発者は会社の目標を達成するのに苦労しています。

さらに、通信の問題の診断中に問題が発生する可能性があります。 最後に、サービスのメッシュにより、サービス間の通信の管理に関連するいくつかの問題の解決策を見つけることができます。

サービス メッシュを使用すると、メッシュ ネットワークのアウトソーシング インフラストラクチャで必要なデータと洞察に簡単にアクセスできるため、この通信を自動化できます。 これにより、問題や誤動作のローカライズと排除が容易になります。 さらに、企業の IT 部門は安心して、他の付加価値のあるタスクに専念できます。

通信の抽象化により、失敗したサービスも自動的にバイパスでき、機能しているアプリケーション部分のデータ交換を損なうことはありません。 サービス メッシュ システムの簡単にアクセスできるデータも簡単に分析できるため、アプリケーションの運用改善とパフォーマンス向上が可能になります。

サービス メッシュがどのように機能するかについて説明しました。 それでは、いくつかの最高のサービス メッシュ マネージャーを見てみましょう。

メッセリー

Meshery は、さまざまなサービス メッシュ ソリューションを実行できるメッシュ サービス マネージャーです。 Kubernetes と Docker にデプロイできます。 Mastery は、Linkerd や Istio を含むすべての主要なメッシュ サービス ソリューションのベンチマークを設定するための UI と CLI を提供します。 Meshery は、クラスターに直接デプロイすることも、ローカルにデプロイすることもできます。

Amazon アプリ メッシュ

AWS App Mesh は、Amazon の Kubernetes プラットフォーム (EKS) 用のネットワーク メッシュ サービスです。 Envoy サイドカー プロキシを介してイングレスおよびエグレス トラフィックのアプリケーション レベルの管理を提供し、サーキット ブレーカーを使用して AWS X-Ray を使用した可観測性メトリクスを提供します。 AWS アプリ メッシュは、Amazon EC2 や AWS Fargate などの他のサービスと併用することもできます。

リンカード

Linkerd は、Rust ベースのカスタム構築されたプロキシを使用してマイクロサービスを管理するオープンソースのネットワーク メッシュ マネージャーです。 オブザーバビリティ メトリックを提供するために、Grafana がプリインストールされています。 Linkerd は、他のオープンソース メッシュ マネージャーとは異なり、GUI を提供し、Prometheus をサポートするだけでなく、Traefik、Kong、Gloo などのイングレス コントローラーもサポートします。 Linkerd は、クラスター全体での自動デプロイ アップグレードもサポートしています。

イスティオ

Istio は、Envoy プロキシを使用してマイクロサービスを管理するオープンソースのサービス メッシュです。 Istio は、ロード バランシング、ポリシーの作成、トラフィック ルーティング、タイムアウト、サーキット ブレーカー、トラフィックのシフト、再試行など、いくつかの機能を提供します。 また、Istio は、追加のソフトウェアのインストールを必要とせずに、コンテナーまたはマシン全体に分散トレース機能を提供します。

くま

Kuma は、Kong によって作成されたサービス メッシュであり、Envoy プロキシを介して既存のサービスの動作を拡張するために使用されます。 Kuma はさまざまなマイクロサービスをサポートし、ネットワークのセキュリティと監視を強化します。 ルーティング、mTLS、トラフィック制御、およびさまざまなセキュリティ機能用の事前にバンドルされたポリシーが多数付属しています。 Kuma を使用すると、単一のコントロール プレーンとデータ プレーンを介して、さまざまな分離メッシュを簡単に制御できます。

Nginx メッシュ

Nginx は、Nginx Plus を利用したデータ プレーンを使用してコンテナー間のトラフィックを暗号化する Kubernetes のサービス メッシュです。 Nginx はレート制限とサーキット ブレーカーを使用してサービス間のトラフィックを管理し、サービス メッシュのメトリックを観察するための Grafana ダッシュボードが付属しています。

領事

Consul by HashiCorp は、組み込みのプロキシ レイヤーを提供し、Envoy サイドカー プロキシもサポートするサービス メッシュです。 パスベースのルーティング、トラフィック シフティング、およびロード バランシングを提供します。 Consul は HashiCorp Vault と統合されており、mTLS もサポートしています。 Prometheus および Grafana と統合して、オブザーバビリティ メトリックを表示できます。

グルーメッシュ

Gloo Mesh は、Istio メッシュの上に構築されたサービス メッシュであり、ゼロ トラスト セキュリティ モデルを実装できる Envoy プロキシを使用します。 Gloo は、マルチテナンシーの Kubernetes、VM、およびその他のマイクロサービスをサポートしています。 CI/CD と GitOps の両方に対応しているため、展開が容易になります。

最後の言葉

サービス メッシュは、異なるマイクロサービス間の通信の問題を解決し、さまざまなセキュリティ上の利点を提供します。 ただし、市場には数百ものさまざまなメッシュ ソリューションが存在するため、要件に最適で管理しやすいメッシュ サービスを選択することが不可欠になります。