サービスメッシュによるマイクロサービスの接続
エグゼクティブサマリー
サービスメッシュを導入すると、マイクロサービスを相互接続し、管理オーバーヘッドを最小限に抑えながらKubernetesをスケールできます。
サービスメッシュがアプリケーションデリバリの次なる大きな潮流に
サービスメッシュはマイクロサービスを接続し、コンテナ化されたコンポーネントのセキュリティ確保とオーケストレーションを容易にすることで、クラウドアーキテクトの作業を簡素化します。
まず登場したのはあらゆる場所で、あらゆる用途に使われるアプリケーション、次に登場したのはマイクロサービス(およびそれを実現するコンテナ技術)でした。アプリを通じて卓越したユーザー体験を提供するうえで役立つ、次なるイノベーションとは何でしょうか。それがサービスメッシュです。
マイクロサービスのアプローチでは、小規模で単一の目的に特化したコンポーネントを組み合わせて、より大規模で複雑なアプリケーションを構築します。ほぼあらゆる機能をマイクロサービスとして実装でき、それぞれが1つの機能に特化しているため、比較的短期間で開発できます。ただし、必要な機能が増えるほど、マイクロサービスのコンポーネント間の連携は複雑になります。
従来型アプリケーション(モノリシックアプリケーションとも呼ばれます)は開発に時間がかかりますが、利点もあります。多数の個別機能を1つのプログラムで実行するため、通常はコンポーネント間の連携がシステムに組み込まれています。また、ソースコードが1つに集約されているため、従来型アプリケーションではトラブルシューティングやデバッグが容易です。
サービスメッシュとは
サービスメッシュは、マイクロサービス間の通信を円滑にする透過的なインフラストラクチャレイヤーです。これにより、マイクロサービスで構築されたアプリでも、従来型アプリと同様に、レジリエンス、可観測性、セキュリティなどのメリットを得られます。
エンタープライズサービスメッシュ導入のビジネス上の根拠
モノリスからマイクロサービスへの移行は、主にアプリケーションチームの俊敏性を高め、より迅速に開発を進める必要性から推進されました。大規模なアプリケーションを多数の小さな要素に分割することで、各チームがそれぞれの領域に特化できるようになりました。その結果、モノリスのあらゆる側面を考慮しなければならなかったときよりも、迅速に反復開発を行えるようになりました。
しかし、このスピードと俊敏性には、複雑性の増大という代償が伴います。マイクロサービスは開発を簡素化する一方で、特に一時的に存在する複数のコンポーネントのセキュリティ確保とオーケストレーションに関して、新たな課題をもたらします。 サービスメッシュを利用すると、マイクロサービス対応アプリケーションの拡張に伴う複雑性を開発者が切り離せます。
“多次元の可視性の目的は、データサイロを解消し、組織内で情報にアクセスできるようにすることです。”
ある最近のポッドキャストで、Aspen Meshの共同創業者兼CTOであるAndrew Jenkins氏は、次のように述べています。「サービスメッシュ環境における最大の変化は、アプリケーション開発者が何をする必要があるかではなく、何をしないことが求められるかです」。たとえば、サービスメッシュのセキュリティコンポーネントは認証機能を提供し、アプリケーション間の信頼関係を管理します。リクエストが失敗した場合、プラットフォーム運用者は、マイクロサービスで再試行するか、廃止するかを指定するためのツールを利用できます。
この新しい環境では、開発者はリクエストをサービスメッシュ層に送ることに集中できます。マイクロサービス間のすべての通信を監視するツールを利用できるプラットフォーム運用者は、アプリケーション開発者にまったく新しい種類のデータやメトリクスを提供できます。 「サービスメッシュでは、問題を1か所で修正するだけで、すべての箇所に修正が反映されます。このように一貫性を確保できるという利点は、さまざまな場面で繰り返し現れます」とJenkins氏は述べています。
サービスメッシュを使用するタイミング
サービスメッシュは、強力な新しいツールボックスのようなものです。セキュリティ、トランザクション処理、暗号化、レコメンデーションエンジン、分散トレーシングなど、さまざまなツールがそろっています。しかし、使い方が分からなければ、強力なツールも役に立ちません。サービスメッシュを早期に導入して成果を上げるには、確立されたクラウドアーキテクチャの実践と、開発者向けインフラストラクチャサービスの定義に精通したプラットフォームチームが必要です。
多くの組織では、サービスメッシュを使用せずにKubernetesやその他のコンテナ技術を問題なく運用しています。標準的なKubernetes実装は、組み込みのデプロイ機能に関する問題に十分対応できます。しかし、規模が拡大すると、Kubernetesアプリケーションでは、暗号化、サーキットブレーカー、動的トラフィックルーティングなど、十分に対応できないランタイム上の問題が生じます。NGINXやその他のコンテナイングレスソリューションなどは、アプリケーションに流入するネットワークトラフィックを取得、調整、制御、可視化する手段を提供し、このギャップの多くを埋めます。しかし、こうしたツールで実現できることが限界に近づくと、サービスメッシュによって、コンテナ化されたマイクロサービスの機能をこれまで以上に可視化できる可能性があります。
まとめ
現時点では、サービスメッシュは依然として最先端のテクノロジーです。すでにKubernetesの全面的な導入を決めている組織や、Kubernetesを使用した開発を計画している組織にとっては、後から組み込むよりも、早い段階でサービスメッシュを導入する方が容易です。Kubernetesをスケールさせながら管理のオーバーヘッドを最小限に抑えるには、サービスメッシュが必要です。
複雑なセキュリティ要件を抱える組織や、マイクロサービスベースのアプリケーションに大きく依存する組織では、サービスメッシュによってデプロイと保守を迅速化し、セキュリティを強化するとともに、リソース消費の最適化を促進できます。サービスメッシュ環境は可視性を高め、アプリケーションの最適化に活用できるミクロレベルとマクロレベルのデータを提供します。
サービスメッシュは、マイクロサービスとコンテナ技術をさらに進化させるものです。適切な戦略のもとで活用すれば、強力なツールとなり得ます。
関連コンテンツ
EBOOK
セキュアなクラウドアーキテクチャ
適切なクラウドアーキテクチャなら、一般的な妥協をせずにスピードを実現できます。
ソリューション概要
5Gクラウドネイティブインフラストラクチャ
F5の5Gインフラストラクチャソリューションは、サービスプロバイダーがネットワークインフラストラクチャをモダナイズするために必要なツールを提供します。
ソリューション
NGINX
マイクロサービスを接続、保護、拡張する方法をご紹介します。
ポッドキャスト
水面下に潜むもの
ポッドキャスト「What Lies Beneath」で、サービスメッシュとその代替手段についてご紹介します。




