CloudFoundry(過去)とKubernetes(現在)の両方のコミッターとして、私はおそらくこれに答える資格があります。
PaaSのような
CloudFoundryを「アプリケーションPaaS」、Kubernetesを「コンテナPaaS」と呼びたいのですが、両方のプロジェクトが時間とともに変化して同じ市場で競争することを考えると、区別はかなり微妙で流動的です。
2つの違いは、CFには(12要素)ユーザーアプリ(jarまたはgemなど)とHerokuスタイルのビルドパック(Java + TomcatまたはRubyなど)を取り、ドロップレット( Dockerイメージ)。CFはコンテナー化インターフェースをユーザーに公開しませんが、Kubernetesは公開します。
観客
CloudFoundryの主な対象者は、Herokuスタイルのビルドパックを使用して12要素のステートレスアプリを展開したいエンタープライズアプリケーション開発者です。
Kubernetesのオーディエンスは、ステートレスアプリケーションと独自のコンテナーを提供するステートフルサービス開発者の両方を含む、少し広い範囲です。
この区別は将来変更される可能性があります。
機能比較
両方のプロジェクトが成熟して競争するにつれて、それらの類似点と相違点は変化します。したがって、次の機能比較を1粒の塩と比較してください。
CFとK8はどちらも、コンテナー化、名前空間、認証、
Kubernetesの競争上の利点:
- 個別にスケーリングするだけでなく、ネットワークスタックを共有するコンテナーのポッドをグループ化してスケーリングする
- 自分のコンテナを持参
- ステートフル永続性レイヤー
- より大きく、よりアクティブなOSSコミュニティ
- 交換可能なコンポーネントとサードパーティのプラグインによるより拡張可能なアーキテクチャ
- 無料のウェブGUI
CloudFoundryの競争上の利点:
- 成熟した認証、ユーザーのグループ化、マルチテナンシーのサポート[x]
- 自分のアプリを持参
- 含まれるロードバランサー
- BOSH [x]によってデプロイ、スケーリング、および存続
- 堅牢なロギングとメトリック集計[x]
- エンタープライズWeb GUI [x]
[x]これらの機能はDiegoの一部ではなく、ラティスにも含まれていません。
配備
CloudFoundryの競争上の利点の1つは、コアCFコンポーネントのスケーリング、復活、監視などの機能を可能にする成熟したデプロイメントエンジンBOSHを備えていることです。BOSHは、プラグイン可能なクラウドプロバイダーの抽象化により多くのIaaSレイヤーもサポートします。残念ながら、BOSHの学習曲線と展開構成管理は悪夢です。(ボッシュコミッターとして、私はこれを正確に言えると思います。)
Kubernetesのデプロイの抽象化はまだ始まったばかりです。コアリポジトリでは複数のターゲット環境を利用できますが、すべてが正常に機能しているわけではなく、十分にテストされているわけでも、主要な開発者によってサポートされているわけでもありません。これは主に成熟度のことです。これは、時間の経過とともに改善され、抽象化が進むと期待できます。たとえば、DCOS上のKubernetesでは、1つのコマンドで既存のDCOSクラスターにKubernetesをデプロイできます。
歴史的背景
DiegoはCFのDroplet Execution Agentを書き直したものです。もともとはKubernetesが発表される前に開発され、競争の状況が進化するにつれて、より多くの機能範囲を採用しています。その当初の目標は、液滴(ユーザーアプリケーション+ CFビルドパック)を生成し、Warden(Goで書き換えると名前がGardenに変更)コンテナーで実行することでした。当初から、それはLatticeとして再パッケージ化されています。これは、CloudFoundry-liteのようなものです(ただし、この名前は既存のプロジェクトで使用されています))。そのため、Latticeはユーザーの対象範囲と範囲を意図的に減らし、「エンタープライズ対応」にする機能が明示的に欠落しているという点で、ややおもちゃのようなものです。CFがすでに提供している機能。これは、一部のLatticeがコアコンポーネントのテストに使用されており、より複雑なCFからのオーバーヘッドの一部がないためですが、セキュリティとマルチテナントがそれほど懸念されていない内部の高信頼環境でもLatticeを使用できます。
CloudFoundryとWarden(そのコンテナーエンジン)もDockerよりも数年前に登場したことにも言及する価値があります。
一方、Kubernetesは、BORGおよびOmegaでの長年のコンテナ使用に基づいてGoogleが開発した比較的新しいプロジェクトです。Kubernetesは、DiegoがPivotal / VMwareでの第3世代コンテナーオーケストレーションと同じように、Googleでの第3世代コンテナーオーケストレーションと考えることができます(VMwareで作成されたv1、Pivotal Labsの協力を得てVMwareでv2、プロジェクトを引き継いだ後、Pivotalでv3)。 。