12

AWS EC2 インスタンスに Web アプリケーションをデプロイするためだけに、しばらく Octopus Deploy を使用しています。Octopus Deploy は .NET 固有のものであり、Docker に比べて学習曲線が非常に簡単であることは認識しています。Docker を使用するポイントの 1 つは、ハイパーバイザーを使用して VM を作成するのではなく、コンテナーを作成することだと理解しています。

しかし、私の質問は、octopus deploy よりも Docker を使用する本当の理由は何ですか? これは、アプリケーションの展開に適しています。彼らは違うことをしますか?

4

1 に答える 1

22

良い質問。それらは異なることを行い、異なる方法で機能しますが、対処する問題にはいくつかの重複があります。Octopus はビルドされたアプリケーションを出荷することです。Docker はアプリケーションを自己完結型のパッケージにビルドすることであり、コンテナとして出荷して実行できます。

免責事項:私は Docker キャプテン ( Docker のコミュニティ認識プログラム) であり、Docker に多くの時間を費やしてきました。私はそれが素晴らしい技術だと思うので、それに偏っています.Octopusも素晴らしいですが、スコープは小さくなります. Docker のより広範な概要が必要な場合は、最近 Channel 9 で話しました

Octopus を使用すると、コンパイル済みの ASP.NET Web アプリをサーバーにデプロイできます。Octopus ライブラリを使用すると、テンプレートを使用して展開の一部としてアプリ プラットフォームをセットアップし、IIS を構成し、Windows サービスを実行することができます。ただし、サーバーには前提条件 (.NET、IIS など) が既にセットアップされている必要があります。展開を実行できるように Octopus エージェントがインストールされており、それを調整するには Octopus サーバーが必要です。

Docker を使用すると、コンパイル済みの ASP.NET Web アプリを取得して、アプリケーション スタック全体を含む単一の論理ユニットであるイメージにビルドできます。このイメージには、IIS と ASP.NET、アプリ、アプリの依存関係、およびそのすべての構成が 1 つのユニットに含まれています。イメージを Docker レジストリ (共有イメージ ストア) にプッシュおよびプルし、Docker がインストールされている任意の Windows マシンでアプリを実行できます。ホストに IIS や ASP.NET をインストールする必要はありません。すべてイメージ内にあり、追加のインフラストラクチャは必要ありません。Docker は、ホスト上で Windows サービスとして実行されるだけです。

Docker はアプリを実行するだけでなく、それらをビルドして出荷します。アプリケーションは、ホスト上の軽量で分離されたサンドボックスであるコンテナーで実行されます。.NET のさまざまなバージョン、IIS のさまざまなバージョン、さらには Windows のさまざまなバージョンでアプリを実行するコンテナーを持つことができます。これらはすべて、互いに影響を与えることなく同じホスト上で実行されます。

アプリケーションを多くのコンテナーに分割し、仮想ネットワーク内で相互にアクセスできます。また、 Docker Composeを使用して複雑な分散ソリューションをキャプチャし、パーツとそれらの関係を定義できます。複数のホストをまとめてDocker Swarmにクラスター化できるため、スケーリング、フェイルオーバー、ローリング アップグレードが容易になります。また、商用のDocker Datacenter製品を使用して、すべてのイメージ、ホスト、コンテナーを管理し、それらすべてへの安全なアクセスを確保できます。

于 2016-10-05T09:30:08.737 に答える