サービス メッシュ
サービス メッシュとは
サービス メッシュとは、クラウド ホスト型アプリケーションのソフトウェア コードを、Web サーバのさまざまなレベルで、統合レイヤー内で組み合わせる手法です。Web サーバのスタック構成の上位レイヤーで独立したランタイムとして機能するのではなく、オペレーティング システム/Web サーバ/ネットワーク/データセンターのレベルで使用できるほかのソフトウェア ベースのサービスを呼び出すことができる API を使用して、クラウド ホスト型アプリケーション コードを構築できます。サービス メッシュは、本番環境のインフラストラクチャ要素間の相互運用可能な通信のレベルを拡張し、ソフトウェア アプリケーションの潜在的機能を高めます。
サービス メッシュは、実行されているアプリケーションどうしのチャネル間通信を自動化して、伸縮自在なクラウド データセンター内の複数の仮想マシン上に存在する多数のマイクロサービスを網の目のように結びつけます。クラウド オーケストレーション、ロードバランシング、リソース検出、SDN ルーティング、API 通信、データベースの同期、スクリプト最適化アプリケーションなど、データセンター運用のあらゆるレベルで、専用のサービス間通信機能が必要となります。サービス メッシュを使用することで、多数のマルチテナント型ラック サーバにまたがる、多階層ネットワーク アーキテクチャにおいて高度なデータ分析やトラフィック メトリックを実現できます。
関連トピック
サービス メッシュのメリット
- 相互運用性の向上:サービス メッシュは、Web/モバイル/SaaS アプリケーション コードをサポートする統合マイクロサービス環境の SDN のルーティング機能を拡張します。
- マイクロサービス検出の強化:サービス メッシュにより、マイクロサービスの検出機能が強化され、より優れたネットワークの構成と管理を実現できます。
- ネットワーク アクティビティのリアルタイムでの詳細な監視と分析:サービス メッシュでは、バックエンド プロセスや Web サーバ ハードウェアにアクセスでき、ネットワーク アクティビティのリアルタイムでの詳細な監視と分析が可能になります。
- Web スクリプトおよびモバイル スクリプトの強力な自動化:YAML ファイルや、Vagrant、Jenkins、Puppet、Chef などのユーティリティを使用してサービス メッシュの機能をスクリプト化し、Web スクリプトやモバイル スクリプトの大規模で強力な自動化を行うことができます。エンタープライズの本番環境で複雑な SaaS アプリケーションをサポートするには、このような種類のアーキテクチャが必要になります。サービス メッシュでは、クラウドで同時に実行されている多数のコンテナの調整が行われます。
サービス メッシュの機能
サービス メッシュでは、伸縮自在な Web サーバ ネットワーク内の各仮想マシン インスタンスやノードにインストールされているアプリケーションの検出とルーティングが行われ、実行されているマイクロサービスの IP アドレスが登録されます。ネットワーク上で同時に実行されているすべてのマイクロサービスの構成、管理、運用には、集約型のレジストリが使用されます。サービス メッシュは、Web サーバ、データセンター、アプリケーションのさまざまなレイヤーで実行されている並列アプリケーションから参照することができ、データ分析やネットワーク監視により、相互運用可能な機能を拡張できます。これにより、IP ルーティング、SDN 定義、ファイアウォール設定、フィルター、ルール、クラウド ロードバランシングのレベルでデータセンターの自動化を強化できます。
API 接続では、サービス メッシュを参照して、データ転送や必要な処理のアクティビティ用に、実行されているアプリケーションやマイクロサービスの機能を検出するための定義を確認できます。Kubernetes で自動スケーリングされる、伸縮自在な Web サーバ プラットフォームでは、マイクロサービス検出のためのレジストリと構成の一元的管理ユーティリティとして Istio を使用します。AWS EC2 や Kubernetes などの伸縮自在な Web サーバ プラットフォームでは、マスター データベースやストレージ情報の変更の同期を行いながら、同時実行されるランタイムのクラウド アプリケーションの複数のコピーを管理するために、サービス メッシュを利用します。サービス メッシュでは、マイクロサービスまたはコード ベースの要件に応じて、API を使用したアプリケーション レイヤーから Web サーバ、インターネット、データセンター ネットワーク リソースへの通信(またはその逆方向の通信)が可能になります。
サービス メッシュのアーキテクチャ
サービス メッシュは、クラウド データセンター内の仮想マシンやコンテナにインストールされた抽象化レイヤーを基盤とします。データセンターのオーケストレーションを実行する中央の管理ソフトウェア インスタンスと通信するすべての仮想マシンまたはノードにコードがインストールされます。VMware NSX や Istio などのサービス メッシュ ソリューションでは、ノード レベルのデータ プレーンを作成するために Envoy を利用します。Envoy は、すべての仮想マシン/ノードについて、実行されているマイクロサービス、ライセンスが付与されている IP アドレス、HTTPS 暗号化、アクティブなデータベース フォーマットなどに関する情報を管理します。NSX の場合は、ハイパーバイザー レベルでの分散ファイアウォールの統合も含まれます。伸縮自在なクラウド ネットワークでは、各仮想マシン/ノードのデータ プレーン情報がロードバランシングに使用されます。API 接続では、アプリケーション間のルーティングに必要であるため、サービス メッシュ アーキテクチャを使用します。サービス メッシュのレベル 7 のテレメトリには、DNS、HTTP/S、SMTP、POP3、FTP などが含まれます。
サービス メッシュの実装
サービス メッシュの実装には、SDN、IP アドレス、マイクロサービス、Web/モバイル アプリケーションの API リソースをまたいだロードバランシングとサービスの検出が含まれます。サービス メッシュは、伸縮自在な Web サーバ アーキテクチャのハードウェアをまたいだ Web サーバ バックエンドの接続の通信、同期、暗号化を管理します。クラウド アプリケーションでは、スクリプト、データベース、静的 Web ファイルは多くの場合、別々のハードウェアに分散されており、Web ブラウザー上の最終的なページ上で組み合わされます。ハードウェア、スクリプト、データベース、ファイル間の SDN ルーティングは、コード内でサードパーティの API が使用され、さらに複雑になります。さまざまなリソースに分散するこれらの要素をすべて、ページの読み込みのたびに組み合わせる必要がある場合に、サービス メッシュは、伸縮自在な Web サーバ フレームワーク内の複数の仮想マシンにまたがる処理の統合、同期、標準化を行います。サービス メッシュは、データセンターにおいて他のソフトウェアでは実現できないニーズに対応するために作られました。また、Web トラフィックの接続からのデータ分析とユーザー メトリックも含まれます。
オープンソース サービス メッシュ
Istio は現在、もっとも先進的なオープン ソースのサービス メッシュ プロジェクトであり、複数ノードにわたるデータ プレーンの管理に関連する中心的な機能には Envoy が使用されています。Istio は当初、Cloud Native Computing Foundation(CNCF)のなかで開発され、現在は VMware NSX Service Mesh および Enterprise PKS プラットフォームで使用できます。PKS は VMware の Kubernetes ディストリビューションであり、コンテナを使用してクラウド Web サーバのオーケストレーションを行います。PKS には、パブリック クラウドおよびプライベート クラウドの要件に対応する自己ホスト型のパッケージと、フルマネージド型の CaaS(サービスとしてのコンテナ)製品があります。Istio は Kubernetes におけるマイクロサービスの通信に使用されます。複雑な IP アドレスのルーティング機能と暗号化を備え、大規模なエンタープライズ データセンターの伸縮自在な Web サーバのオーケストレーションに対応します。そのほか、Linkerd、Conduit、Aspen、Consul も、サービス メッシュ フレームワークのコンポーネントとして開発されている重要なオープンソース プロジェクトです。
伸縮自在なサービス メッシュ
AWS EC2 や Kubernetes などのクラウド ホスティング フレームワークでは、データベースおよび Web サイトのファイルを同期するために、伸縮自在なサービス メッシュが必要になります。サービス メッシュは、API および SDN でソフトウェア アプリケーションをサポートするために必要な、Web サーバ バックエンドの仮想マシン間のルーティングを制御します。伸縮自在な Web サーバ ネットワークにおける検出とロードバランシングにもサービス メッシュを使用すると、本番環境のユーザー トラフィックの要件に対応するためのデータセンター リソースの割り当てを自動化できます。Web サーバが自動的に起動され、不要になれば破棄されるように構成することができ、クラウド ハードウェア リソースを効率的に使用できるようになります。リアルタイムの監視と分析の機能を仮想マシン/ノード レベルでサービス メッシュに組み込むことができるため、ソフトウェア開発者やプログラマー、Web 制作者は、マイクロサービスを使用してアプリケーションの新機能を作成できます。
マイクロサービス アーキテクチャにサービス メッシュが必要な理由
パブリック クラウドでは、複数のコンテナや仮想マシンにわたって、独立したランタイムで並行して実行される、さまざまなアプリケーションやデータベースをサポートする、非常に多数のマイクロサービスが同時に実行されている可能性があります。仮想化に基づくマルチテナント環境では、各マイクロサービスに固有の機能をアプリケーションに組み込んだり、API を使用してほかのデバイスと共有したりするために、マイクロサービスを検出し、登録するための優れた方法が必要です。多くのマイクロサービスのフォーマットは、伸縮自在な Web サーバ プラットフォーム用に設計されていないため、コンテナでの運用を管理するためにサービス メッシュが必要になります。サービス メッシュは、SDN におけるきめ細かなルーティングと暗号化の機能を提供します。それにより、Web サーバ、エンドポイント、その他のデバイスで実行されるコードのプロセス間でさまざまな API の通信が可能になります。
サービス メッシュに関連する VMware の製品、ソリューション、リソース
NSX Data Center
VMware NSX® Data Center は、仮想ネットワークおよびセキュリティの機能をすべてソフトウェアで実現します。
VMware NSX Service Mesh
VMware NSX Service Mesh は、サービス、データ、ユーザーについて、一貫した可視性と制御性を提供します。
VMware Enterprise PKS
VMware Enterprise PKS を使用することで、本番環境の Kubernetes の展開、実行、管理ができます。