データプレーンとは
最新のアプリケーションアーキテクチャでは、データプレーンがアプリケーションおよびデータのトラフィックを収容し、転送します。クラウドネイティブ環境の管理では、データプレーンに加えて、管理プレーンとコントロールプレーンも使用します。
クラウドネイティブアプリケーションをデプロイする際、この管理レイヤーは、異なる環境、アプリケーション、プラットフォーム間のアプリケーショントラフィックを制御します。分散環境では、可視性の不足やガバナンスの不備により、脅威対象領域が拡大し、障害が発生する可能性が高まります。
データプレーンは、高性能なモダンアプリケーションを大規模に構築するうえで不可欠です。ユーザーエクスペリエンスやレイテンシーなど、アプリケーションのパフォーマンスを左右する主要な指標は、応答性と信頼性に優れ、高度にスケーラブルなデータプレーンに依存します。データプレーンはアプリケーションの動作を決定する役割を担い、すべてのポリシー、サービスレベル契約(SLA)、およびスケーリングや動作のトリガー(再試行、キープアライブ、水平スケーリングなど)が実行されます。
In Kubernetesでは、データプレーンはワーカーノードで構成され、そのPodとコンテナはkubeletエージェントを介して通信します。これらのエージェントは、状態情報を保持するコンテナエンジンおよびデータベースと状態や稼働状況を共有します。各ノードにはkubeletがあり、コントロールプレーン(この場合はAPIサーバー)から構成指示を受け取ります。従来の3層Webアプリで使用されるデータプレーンとは構造や設計が多少異なりますが、Kubernetesのデータプレーンの機能は、アプリの良好なパフォーマンスを確保するという点でほぼ同じです。
データプレーンの詳細については、The New Stackの記事「データ、制御、管理:高度の異なる3つのプレーン」をご覧ください。
NGINXができること
ハイブリッド化が進み、急速に変化するこの環境では、複雑なマイクロサービスとアプリケーション群を効果的に接続、運用、保護するために、クラウドネイティブな管理ソリューションが必要です。NGINXでは、3つのプレーンすべてにわたって可観測性、信頼性、ガバナンス、セキュリティを確保するためのツールスイートを構築しています。
