web-dev-qa-db-ja.com

Cloud FoundryとDockerの違いは何ですか?

私はJava開発者です。 Weblogicを使用してアプリケーションをホストします。 weblogicをオープンソースの代替物に置き換えることを検討するように言われました。 SpringBootでの使用を計画しています。 Docker/Cloud Foundryも検討しています。しかし、Docker/Cloud Foundryは私にとって新しい領域です。

  1. Cloud FoundryとDockerの違いを教えてください。
  2. Cloud FoundryではなくDockerを使用する場合、何を逃していますか?
  3. DockerではなくCloud Foundryを使用している場合、何を逃していますか?

ご協力ありがとうございました。

59
James

Dockerは、Linuxの「コンテナー」を作成および実行するためのテクノロジーです。ある意味では、これらは軽量のVMと考えることができます。 SpringBootアプリのdockerコンテナーは、基本的にアプリの実行に必要なすべてのもの(JVM、ソースコードなど)を含むファイルシステムを含むdockerイメージ、およびdockerデーモンに指示するdockerコンテナーメタデータで構成されます画像内でアプリを実行します(設定する環境変数、公開するポート、実行するコマンドなど)。 dockerデーモンは、cgroupやカーネル名前空間などのLinux機能を使用して、ホストマシンで実行されている他のプロセスから隔離してコンテナを実行します。 Dockerはやや低レベルであり、イメージに入るすべてのものを指定する必要があり、任意のこと、つまりイメージに入れて実行するよう指示するものを実行します。取得するDockerコンテナは非常に移植性が高いため、開発のためにDockerコンテナをローカルで構築、テスト、および実行できます。また、そのコンテナを、Dockerデーモンが実行されている本番ホストに出荷できます。あなたはまったく同じものを得ています。

Cloud Foundryは、アプリケーションを第一級の概念として、より高い抽象化レイヤーで動作します。 Cloud Foundryは、港湾労働者に似たコンテナー化技術を使用してポータブルイメージを構築し、実行しますが、これは実装の詳細であり、すべての詳細を指定する必要はありません。 Cloud Foundryの新しいバージョンでは、ドッカーイメージもサポートされるため、必要に応じて詳細を指定できますが、プッシュ時にJavaアプリケーションを自動的に検出する「ビルドパック」ワークフローもありますアプリを作成し、イメージをビルドするときにJavaランタイムに必要なすべてのものを含めることができます。

Cloud Foundryでは、アプリケーションとアプリケーション管理が第一級の概念であり、より高いレベルで動作するため、あらゆる種類のものを無料で入手できます。たとえば、アプリを簡単に水平方向にスケーリング(インスタンスを追加)できます。 cf scale my_app -i 5または垂直、cf scale my_app -m 2G(各インスタンスに割り当てられたメモリを設定するため)。ストリーミングアプリケーションログを取得します:cf logs my_app。 Cloud Foundryは無料で多くのフォールトトレランスを提供するため、アプリケーションインスタンスの1つがクラッシュした場合、アプリケーションコンテナー自体を実行しているプロセスがクラッシュした場合(dockerデーモンに似たもの)、またはHost VMコンテナー実行プロセスが実行されているか、そのVMが存在するハードウェアクラスターが停止すると、Cloud Foundryはインスタンスを自動的に起動します。

Dockerデーモンは、任意のLinuxマシンで実行できる単一のプロセスです。したがって、小さくてシンプルなことをしていて、セットアップの大部分を自分で行う必要がある場合、ローカルおよび開発中の両方でdockerを使用して簡単に起動および実行できます。 Dockerを使用すると、作成したDockerイメージにアクセスして共有するのも簡単です。したがって、イメージを作成したら、それをdockerリポジトリに配置して、他のdockerデーモンで実行できます。 Cloud Foundryでは、ビルドされたイメージは一般に実装の詳細であり、実際にアクセスすることはできないため、たとえば、そのイメージを抽出して別のCloud Foundryインストールで実行することはできません。

PaaSの多くのメリットを提供しながら、Cloud Foundryをよりアクセスしやすく、セットアップしやすくすることを目的としたさまざまなプロジェクトがあります。これらのプロジェクトの一部は、Dockerとdockerの利点を組み合わせて使用​​できるようにすると同時に、Cloud Foundryから得られる多くのPaaSの利点を得ることも目的としています。

Lattice および BOSH-LiteのCloud Foundry を参照してください。

ホストされたCloud Foundryサービスもいくつかあります。

Pivotal Web Services および IBM BlueMix を参照してください

Run-your-ownおよびhosted-serviceの両方の種類で、コアDockerテクノロジーの周りにプラットフォームレイヤーを配置することを目的とした多くの非CFプロジェクトもあります。

GoogleのKubernetesプロジェクト および Amazon Container Service を参照してください

完全な開示:私はPivotalでCloud Foundryに取り組んでいるソフトウェアエンジニアです

130