概要
Cloud Foundry はコンテナの構築、デプロイ、スケーリングに使用されています。これらは Kubernetes が持つ機能でもあります。Cloud Foundry はコンテナをネットワークとルーティングに接続し、開発者がアプリケーション間のアプリケーションコードの構築とデプロイに集中できるようにします。
一方、Kubernetes はクラスタとアプリケーションをスケーリングする分散フレームワークを開発者に提供するため、複数のクラウド環境で実行されるワークロードにとって最適です。また、複数のクラウド・インフラストラクチャにアプリケーションをデプロイできる柔軟性を必要とする開発者にとっても有益です。
Cloud Foundry とは
Cloud Foundry は 2011 年に公開されたオープンソースの Platform as a Service (PaaS) で、当初は開発者向けに、初のコンテナ化アプリケーションを構築するために開発されました。開発者の体験を重視した Cloud Foundry は、ステートレスなクラウドネイティブ・アプリケーションを構築、デプロイ、実行するプラットフォームを開発者に提供します。
Cloud Foundry と Kubernetes
Kubernetes はオープンソースのコンテナ・オーケストレーション・プラットフォームで、コンテナ化アプリケーションのデプロイ、管理、スケーリングに伴う多くの手動プロセスを自動化します。Cloud Foundry と Kubernetes は最も人気のあるコンテナ化プラットフォームであり、同じ機能を備えています。Cloud Foundry と Kubernetes を比較することで、アプリケーション管理に対するアプローチの違いを知ることができます。
Cloud Foundry と Kubernetes 共通の機能
- コンテナでアプリケーションを実行する
- Docker イメージとしてパッケージ化されたアプリケーションを実行する
- 極めて大規模なプロダクション・ワークロードを実行する
- オンプレミスまたはパブリッククラウドでの運用が可能
- オープンソースであり、独立した財団によって管理されている
両者の違いは、Cloud Foundry がアプリケーションに重点を置いているのに対し、Kubernetes はコンテナに重点を置いていることにあります。Kubernetes では、開発者がアプリケーション用のコンテナを構築し、その他のデプロイメント設定を提供しなければならないため、開発者の作業は複雑になります。それに対し、Cloud Foundry はクラウドの運用者とクラウド開発者に異なる体験を提供し、インタフェースを単純化します。また、Kubernetes では開発者がアプリケーションに最適なコンテナを構成できるため、より自由度が増します。
Cloud Foundry のメリットと課題
Kubernetes と同様に、Cloud Foundry はアプリケーション開発ライフサイクル全体をサポートする継続的デリバリー・プラットフォームで、開発者はコンテナ化アプリケーションを構築、デプロイ、実行できます。
コンテナベースのアーキテクチャを使用して、パブリックやプライベートの各種のクラウドサービスプロバイダーに対して任意のプログラミング言語で作成されたアプリケーションを実行、更新、デプロイします。このマルチクラウド環境で開発者は、特定のアプリケーション・ワークロードに適したクラウド・プラットフォームを使用して、アプリケーションを変更することなく、このワークロードをクラウドプロバイダー間で必要に応じて移動させることができます。
Kubernetes と Cloud Foundry には共通点がいくつかありますが、Cloud Foundry はクラウドネイティブ・アプリケーションをデプロイするための高度な抽象化を備えています。標準の Linux コンテナランタイムを使用する Kubernetes とは異なり、Cloud Foundry は Buildpacks という専用に作成されたフレームワークとランタイムサポートを使用します。この追加レイヤーは、アプリケーションの構築とデプロイを支援しますが、一方で、開発者による制御性は一定レベル低下します。
課題
年月を経てサポートも弱まっているため、Cloud Foundry を使うにはいくつかの課題と制限があります。これには、レガシーアプリケーションを Cloud Foundry プラットフォームにリファクタリングしてモダナイズするための高コストや、新しいテクノロジーに対するサポート不足などが該当します。
Cloud Foundry は Kubernetes の概念を取り入れていますが、それでも別のプラットフォームです。このため、Kubernetes ワークロードを組織全体にデプロイすると、複数のプラットフォームを管理することになり、課題が生じます。環境内のすべてのコンテナベース・アプリケーションに対応する共通エンタープライズ・プラットフォームに移行すると、複雑性を軽減できます。
Red Hat を選ぶ理由
Cloud Foundry のサポートを継続するうえで制限と複雑さに直面する組織は、代わりとなるソリューションを求めることがあります。Red Hat® OpenShift® は、Cloud Foundry から OpenShift への移行を計画している企業向けに、完全なクラウドネイティブのアプリケーション・プラットフォームを提供します。
Red Hat OpenShift はオープンなハイブリッドクラウド・ソリューションで、既存アプリケーションのコンテナ化およびモダナイズと、新規のクラウドネイティブ開発をサポートします。プロダクション・アプリケーションおよびワークロード向けのエンタープライズ対応 Kubernetes コンテナ・プラットフォームとして、Red Hat OpenShift は従来のアプリケーションとクラウドネイティブ・アプリケーションの両方をサポートし、どこでも実行できるようにして、Kubernetes クラスタ内外で自動化を実現します。
Cloud Foundry から OpenShift に移行すると、以下のメリットが得られます。
- エンタープライズ向けの Kubernetes ネイティブなアプリケーション開発と開発プラットフォーム
- ステートレス・アプリケーションとステートフル・アプリケーションのサポート
- 標準化された開発環境とセルフサービスのプロビジョニングによる生産性の向上
- 継続的なインフラストラクチャ、コンテナ、ワークロードのセキュリティとコンプライアンスに対する、Red Hat Advanced Cluster Security によるセキュリティの強化
- OpenShift をベアメタルで実行することによる、ハードウェアコストの大幅な削減