昔は、アプリを配信するアプリ サービスは、まっすぐで狭いデータ パスを形成していました。 基本的に、すべてのアプリは同じネットワーク経由で同じサービス セットを通過します。 このアーキテクチャのシンプルさにより、単一の制御ポイントと単一の実行ポイントを簡単に組み合わせることができました。 その結果、アプリケーション配信コントローラー (ADC) が登場しました。 これにより、アプリのトラフィックの形成、誘導、スケーリング、セキュリティ保護をすべて 1 か所で実行できるようになります。 制御と実行を組み合わせることで、あらゆる種類のポリシーを適用および実行できるデータ パス内の戦略的なポイントを運用者に提供します。
クラウドの台頭とコンテナの継続的な導入により、そのデータ パスは混乱をきたしています。 現在、アプリを配信するためのデータ パスは複数あり、場合によっては動的です。 多くの場合、単一の戦略的な制御および実行ポイントは、運用上またはアーキテクチャ上、もはや実現可能ではありません。
しかし、これは、実行が異なる一連のアプリ サービスに委任された場合でも、統一された制御ポイントが不可能になることを意味するものではありません。
データ パス内のアプリ サービスを操作 (展開、構成、管理) できる制御ポイントをできるだけ少なくすることが重要です。 複数のコントロール ポイントの使用を推奨すると、必然的にポリシーの矛盾が生じ、アプリの消費者に問題が生じます。 問題のトラブルシューティングはより複雑で時間がかかるようになり、ユーザーの怒りや不安が高まります。 残念ながら、ツールの無秩序な増加は、すでに多様なアプリ ポートフォリオへのクラウド ネイティブ アーキテクチャの追加を管理する人々の間でよく聞かれる不満です。
2020 年のアプリ サービスの現状に関する調査から、アプリ サービスの運用は主に運用部門が担当しているものの、運用部門だけが担当しているわけではないことがわかっています。 DevOps、NetOps、SecOps はすべて、オンプレミスとパブリック クラウドの両方でのアプリ サービスの運用に投資されています。
これらを区別する主な点は、担当するアプリ サービスの特定の機能です。
DevOps は、信頼性、パフォーマンス、アプリ固有のポリシーに大きく責任を負います。 一方、NetOps は、その名前の通り、ネットワーク属性に重点を置いています。 インフラストラクチャの観点からアプリ サービスを管理するのは、多くの場合 NetOps です。 もちろん、SecOps はインフラストラクチャとアプリに関連するセキュリティに関係します。
しかし、職務が分担されているからといって、それぞれの芸術を実践するためのツールが別々であるべきだというわけではありません。 現在、CI/CD と継続的デプロイメント パイプラインが異なるツールセット上に構築されていることを示す証拠は数多くあります。 Jenkins と git リポジトリは CI/CD パイプラインを支配していますが、継続的なデプロイメント側では Ansible と Python が選択されるツールです。 決定の多くは、日常的にツールを操作する必要があるさまざまな構成要素の作業方法にツールセットを一致させることにあります。
したがって、ポリシーの一貫性を改善し、トラブルシューティングを高速化し、ツールの拡散による複雑さとコストを排除する単一のツールが登場した場合、データ パス内のアプリ サービスのすべての主要構成要素がツールセットを活用してそれぞれの機能を実行できるように、適切なインターフェイスを備えている必要があります。
これは、アプリ サービス自体の全体的なセキュリティと信頼性にとって重要です。 統一された制御ポイントを維持することで、組織は変更が追跡され、理解されていることを確信できます。 これは不変の実装ではありませんが、制御を単一のツールに集中させることで、その実践に向けていくつかのステップを踏みます。
そのようなツールの例としては、 NGINX Controllerがあります。
想定どおり、操作と実行が分散されていても、さまざまなアプリ サービス (分析、API 管理、セキュリティ、サービス メッシュ) をすべて一元的に制御できることに気付くでしょう。
どのような環境でも、データ パス コンポーネント (アプリ サービス) と対話できるツールの数を減らして、誤った構成や競合する構成による潜在的な問題を軽減することが重要です。 現代のマルチクラウド環境では、データ パスを構成するアプリ サービスの急激な増加によって複雑さが生じるため、制御を集中化することがさらに重要になります。
予算を所有する者にとってさらに魅力的なのは、自動化によって反復的な手作業を排除することで生じる運用コストの削減です。
制御を単一のツールに統合することが、その方法の 1 つです。