今日の流行語である「クラウド ネイティブ」との皮肉な関係が面白い。
最初に注意すべきことは、クラウド ネイティブはその名前にもかかわらず、クラウドを必要としないということです。 私は当然知っている? この名前は、インフラストラクチャに依存し、クラウドの概念である弾力性、規模の経済性、分散コンピューティングを中心に設計されたアプリケーションを構築するアーキテクチャ アプローチに由来しています。 アプリのアーキテクチャから自動化、API ベースの統合からインフラストラクチャまで、アプリケーション配信のあらゆる側面にこれらの概念を導入したのは、間違いなくクラウド コンピューティングです。 クラウド コンピューティングにより、アプリケーションの開発、構築、展開の方法が変わりました。 パブリック クラウドで生まれたアプリは、当然のことながら、多くの同じ依存関係と特性を前提としています。 したがって、この名前は建築様式の語源を正確に表しています。
クラウド ネイティブとコンテナの間にも、議論の余地なくつながりがあります。 それ自体が、同様の目標を達成するために主に仮想マシンとクラウドネイティブ サービスに依存するクラウド生まれのアプリとは異なります。 クラウド ネイティブとコンテナーは密接に結合されています。これは、関連するコンテナー オーケストレーター (Kubernetes) が、弾力性とそれを通じて望ましい規模の経済性を実現するために必要なインフラストラクチャとアプリケーションを結合する最も簡単で最も一般的な手段であるためです。
クラウド ネイティブ アプリケーションでは、スケール エコノミーをサポートするためにコンポーネントが細分化されます。 したがって、クラウド ネイティブとコンテナーはほぼ同義語です。 需要のある機能のみをオンデマンドで拡張できる必要があります。 このようなアプリケーションの弾力的で機能的なパーティショニングは、従来、レイヤー 7 (HTTP) ルーティングに依存するアーキテクチャを通じて実現されており、クラウド ネイティブも例外ではありません。 同じ原則がこれらの最新のアプリケーションに適用され、通常は、アプリケーション コンポーネントの適切なコンテナー ベースのインスタンスへの受信要求の配布を管理するイングレス コントローラー (インフラストラクチャ アプリケーション サービス) が使用されます。
このパーティショニングは多くの場合、API レベルで実行され、URI は特定のコンテナサービスに一致する API 呼び出しに一致します。 イングレス コントロールは、適切なコンテナーサービスに要求を送信し、次に、コンポーネント/アプリケーション インスタンスのプール全体に要求を分散します。 これは、配信と実行のためにプレーン オールド ロード バランサ (POLB) に配布されるレイヤー 7 (HTTP) イングレス コントロールを備えた 2 層のケーキです。
さらに、私たちはサービス レジストリに依存していますが、これは、クラウド ネイティブ アプリケーションの弾力性を促進するために必要な、もう 1 つのインフラストラクチャ アプリケーション サービスとして、内部的に機能しています。 サービス検出メカニズムがないと、負荷分散とイングレス制御が機能せず、アプリケーションが動作しなくなります。
コンポーネント、サービス、サービス レジストリ、ロード バランサ、およびイングレス制御間のこの関係は、クラウド ネイティブ アプリケーションの原則を具体化したものです。 アプリケーション コンポーネントとインフラストラクチャは、密に結合されることなく密接にリンクされています。 コンポーネントは、レイヤー 7 ルーティングと従来の単純な負荷分散機能がなければ、スケールメリットや環境全体にわたる分散を実現できません。 インフラストラクチャとアプリケーション間の依存関係は現実的であり、アプリケーションを配信するというビジネス上の必須事項にとって重要です。
これらはいずれも、いかなる種類のクラウド コンピューティング環境にも依存せず、また必要としません。 クラウド ネイティブ アプリケーションは単独でデプロイすることができ、実際にそうすることがよくあります。 実際、コンテナとその実行場所に関するデータを見ると、「オンプレミス」がパブリック クラウド環境よりも優位を維持していることがわかります。
さて、プライベート (オンプレミス) クラウドにコンテナを展開できることは確かに事実ですが、実際、当社独自の調査では、オンプレミスのプライベート クラウドが依然として最も人気のあるクラウド モデルであることが示されています。 2019 年のアプリケーション サービスの現状に関する調査の回答者の 4 分の 3 以上 (79%) がオンプレミスのプライベート クラウドにアプリケーションを保有していますが、パブリック クラウドは 45% で過半数に達するのに苦戦し続けています。
クラウド ネイティブ アプリケーションは急速に成長しているアーキテクチャであり、今後 5 年間にわたって成長し続けることが確実です。 インフラストラクチャ アプリケーション サービスとの関係と依存関係を理解することは、これらの最新アプリケーションを正常に提供 (および保護) するための重要な要素です。