サービスメッシュとは?

コンテナ化されたソフトウェア環境の台頭により、時代遅れでモノリシックなアプリケーション構造は取り残されました。 さまざまなコンテナ、または個々の自己完結型ソフトウェア パッケージを介して実行されるクラウド ネイティブ アプリケーションは、今や標準になっています。 Kubernetes や Docker などのプラットフォームとツールを使用すると、開発者はデバイスやオペレーティング システムに関係なく動作するアプリを作成できるため、市場投入までの時間が大幅に短縮され、潜在的なユーザー ベース数が増加します。 この方法で開発されたすべてのアプリケーションには、異なるコンポーネントが通信できる信頼できる方法が必要です。 そこでサービス メッシュの出番です。

サービスメッシュとは?

サービス メッシュは、ネットワーク内のさまざまなサービスが相互にリクエストをリレーできるようにするネットワーク インフラストラクチャのレイヤーです。 コンテナは互いに独立して機能しますが、それぞれが全体の一部であるため、メッセージや重要な指示はコンテナ間を移動する必要があることがよくあります。 命令を送受信するための個別の機能を持つように各コンテナーをコーディングする必要はなく、サービス メッシュはこの機能をソフトウェアのプラットフォーム レベルに挿入し、アプリのすべての側面が通信できるようにします。

DevOps チーム向けのサービス メッシュとは? このサービス メッシュ レイヤーは、アプリの開発を監視し、障害を迅速に追跡し、変更やアップグレードが必要な場所をよりよく理解するための透過性と可観測性を追加します。 サービス メッシュは、サービス間のトラフィックと通信を制御および監視する方法を作成します。

サービス メッシュは、ソフトウェア開発の世界では比較的新しいものですが、tech ezine 新しいスタック この概念は、Web ベースの組織が台頭した 2010 年代初頭に生まれたことを示唆しています。

サービス メッシュはどのように機能しますか?

サービス メッシュは、データ プレーンとコントロール プレーンという XNUMX つの主要な側面で構成されます。 データ プレーンは、アプリとサービス間の通信をインターセプトして管理する、サイドカーとも呼ばれるプロキシのネットワークです。 コントロール プレーンは、これらのサイドカー プロキシに何をする必要があるかを伝え、提供します。 DevOpsチーム サービス メッシュを管理するためのインターフェイスを備えています。 セキュリティとネットワーク管理もコントロール プレーンで行われます。

サイドカーは、マイクロサービス、コンテナー、または仮想マシン (VM) に接続され、すべての通信インスタンスを処理し、通信とトラフィックを監視するための単一のアクセス ポイントを提供します。

サービス メッシュの一般的な代替手段は API ゲートウェイです。 API ゲートウェイもプロトコル トランザクションを処理できますが、サービスが追加または削除されるたびにゲートウェイを手動で更新する必要があるため、スケーラビリティは低くなります。 サービス メッシュはサービスと並行して存在するため、スケーラビリティと柔軟性が大幅に向上します。

サービス メッシュは何に使用されますか?

データ プレーンは基本的に、すべてのハードワークを行うサービス メッシュの一部です。 データ プレーン内のサイドカー プロキシには、次のようなさまざまな機能があります。

  •          セットアップの再試行
  •          mTLS の追加
  •          ロードバランシング
  •          フォールトインジェクション
  •          サーキットブレーカー
  •          認証
  •          証明書管理
  •          可観測性と追跡
  •          トラフィック分割
  •          セキュリティ

サービス メッシュは、個々のサービスに過負荷をかけることなく安全な通信を提供することで、ソフトウェアの信頼性を向上させ、トラブルシューティングとテストをサポートすることで、より柔軟なリリース プロセスを作成できる可能性があります。

サービス メッシュとマイクロサービス

マイクロサービスにおけるサービス メッシュとは? ほとんどの開発者または DevOps チームは長年にわたってさまざまな方法を使用してきましたが、サービス メッシュは、それが提供する追加の可観測性により、マイクロサービス アーキテクチャの最も一般的なフレームワークの XNUMX つになりつつあります。

マイクロサービスは モノリシック ソフトウェア アーキテクチャ 多くの理由から、特にこのタイプのスタックはクラウドへの移行がはるかに簡単です。 マイクロサービス アーキテクチャは、スケーラビリティを提供し、さまざまな環境への展開が容易で、一般的にアクセスしやすくなっています。 マイクロサービスを使用したソフトウェア開発に課題がないわけではありません。 ほとんどのソフトウェア パッケージにとって重要な課題の XNUMX つは、コンポーネント間の効果的な通信です。

オンライン小売店は、相互に通信する必要があるさまざまなマイクロサービスの好例です。 製品カタログ、推奨事項、顧客連絡フォーム、メール購読の確認、ショッピング カート、および配送サービスがすべて、何らかの方法でリンクおよび接続されています。 最後のセクションを見ると、これらのサービスが通信するために必要な多くの方法がわかります。 ショッピング カートに何かを追加できない場合、または確認メールの送信に失敗した場合は、関連するサービスが再試行する必要があります。 セキュリティと認証により、有効なリクエストのみが正しいサービスに送信されることが保証されます。 トラフィック分割は、XNUMX つのサービスが過負荷になるのを防ぐことで、ソフトウェア環境全体を保護します。

オンライン ストア内の各サービスにこれらの機能がある場合、個々のサービスのコーディングは、開発者にとって非常に大きな作業になります。 代わりに、サービス メッシュは、個々のマイクロサービスから機能の各側面を取り除き、アプリ全体のコミュニケーションを改善するために、それらをより合理化して機敏にします。

可観測性のためにサービス メッシュが必要なのはなぜですか?

柔軟性と俊敏性の向上だけでなく、サービス メッシュを使用する主な理由の XNUMX つは、 可観測性. 可観測性とは、システムの出力を調べることによって、システムが内部でどのように実行されているかを理解または観察する能力を意味します。 システムの観察可能性は、DevOps または監視チームがシステム、アプリ、またはソフトウェア パッケージ内の情報にどのようなアクセス権を持っているかによって異なります。

マイクロサービス アーキテクチャ内では、個々のサービスを監視できる必要があります。 場合によっては、これらのサービスがかなり異なっていたり、ばらばらだったり、さまざまな種類の監視が必要になったりすることがあります。 一部のアプリは、何百もの個別のマイクロサービスで構成されている場合があります。 この量のサービスを個別に監視することは、持続可能でもスケーラブルでもありません。 サービス メッシュは、さまざまなサービスすべてからの情報を XNUMX つのレイヤーにまとめ、DevOps チームがサービス メッシュのコントロール プレーンを介してアクセスできるようにします。

サービス メッシュを使用すると、開発者は、通信と監視を管理するコーディングを調整することなく、必要に応じてサービスを追加できます。 これにより、比類のない可観測性と完全なスケーラビリティが提供されます。 ソフトウェアの一部がどのように成長または変更されても、コントロール プレーンは常に、個々のサービスの全体的な正常性と動作に関する重要な洞察を得る方法を DevOps チームに提供します。

サービス メッシュを使用すると、コンポーネントの相互作用、ラグやレイテンシ、分散トレースなどのテレメトリを簡単に集約できます。 データ管理チームが各マイクロサービスを個別に接続する必要がないため、システム データを分析する他のシステムやツールとの統合もより簡単になるはずです。 サービス メッシュのコントロール プレーンを使用するだけで、必要な接続インスタンスを作成できます。

結論: 今日の開発環境におけるサービス メッシュの利点

ソフトウェア環境がますます混雑するにつれて、アプリを迅速に市場に投入することの重要性はこれまで以上に重要になっています。 サービス メッシュは、DevOps チームの負担を軽減する XNUMX つの方法です。 これは、機能の個々のインスタンスを各サービスにコーディングする必要があるというワークロードを増やすことなく、マイクロサービス環境の状況認識を高めることによって実現します。 効果的なサービス メッシュは、完全なエンド ツー エンドの可観測性を提供し、問題を迅速に特定し、エラーや障害の根本原因を突き止めるのに役立ちます。

サービス メッシュの最大の利点は、サービスやコンテナーから独立して機能することです。つまり、メッシュの有効性を損なうことなく、新しいさまざまな種類のサービスをいつでも追加できます。 開発者は、アプリがどのように成長または変化しても、機能的なサービス メッシュが可視性、透明性、および完全な可観測性を提供するという安心感を持って、好きな方法またはプロジェクトに最適な方法を使用してアプリを作成できます。 基本的に、サービス メッシュはソフトウェア アーキテクチャの将来を見据えたレイヤーであり、DevOps チームが重要なこと、つまりアプリを最高のものにすることに集中できるようにします。

LogicMonitor では、企業が次に何を変革し、並外れた従業員と顧客体験を提供できるよう支援します。 もっと学びたいですか? チャットしよう.