コンテナはすべて、ハードウェアの密度を高めようとしています。つまり、リソースの量があれば効率的にサービスを実行できます(したがって、$を節約できます)。
プリンシパルは、コンテナがVMと同じではなく、独自のOSなどのコピーを持たないことに基づいています。コンテナ化されたサンドボックスであり、コンテナ化技術によって管理されますコンテナがアクセスできるリソースを制御します。
これはまた、1つのコンテナが1つのタイプのサービスを実行するようにシステムを設計すると、コンテナ管理レイヤーは、各サービスはいつでもスピンアップまたは配信できます。これをSOAアーキテクチャと比較します。SOAアーキテクチャは、サービスではなく階層(通常は必ずしもそうではありません)に拡張されます。 Web層は、Webサーバーとサービスを実行する一連のVM、複数のバックエンドサービスを実行するアプリケーション層などとなります。コンテナでは、その区別をする必要はありません。独立してスケーラブルな階層を100個持つこともできます。
あなたが消費するものに対してのみお金を払う完全なクラウドに最適です - アプリケーションスイートがきめ細かくなればなるほど、それがより効率的に実行されるため、消費するリソースは少なくて済みます。
コンテナ管理技術は、その後も、などなど回復力、ネットワーキング、ワークロードの分布、規模を管理することができます...
あなたは通常、1つのまたは2つのVM(または多分クラウド上でホストすることができる小規模なアプリケーションやワークロードの場合コンテナを使用するとコストが高くなる可能性があります。通常、コンテナをホストしてコンテナをホストし、ハードウェアの配布によって復元力を提供したい場合、これらのリソースの一部はコンテナの管理。より適切なユースケースは、多くの異なるサービスコンポーネントを持つ大規模なシステムであり、それぞれが時間の経過とともに需要が変化する可能性があります。
技術によっては、通常、実際のVMSの数は3から20の間で増えますが、通常はノードごとに複数のコンテナがあります。 20台のVMで動作するため、3台のVMSを使用すると、VMを拡張する前に3 x 20 = 60インスタンスのサービスをホストすることができます。あなたは何をタイプサービス60のものをあらかじめ決めておく必要はありません。したがって、Webフロントエンド、計算サービス、およびデータアクセスサービスの3つのサービスをホストする3台のVMから始めてもかまいません。需要が増えるにつれて、フロントエンドサービスの10インスタンス、計算の35、データアクセスレイヤーの5つになります - 60コンテナの10 + 35 + 5 = 50を使用します。
あり、ここで、容器の密度を記述するための良い視覚的な画像です: Linux Journal
だから、「コンテナ管理層は、」複数のVM間で広がり、あなたはその下に仮想マシンを拡張することができますか? –
このアプローチは、実際には独自のスケーラビリティを持つことのできないサービスがある場合(たとえば、単一スレッドのみ)、ほとんどの場合役に立ちます。しかし、あなたは、VMのすべてのリソース(コア)を消費することができるアプリケーションを持っている場合、新しいVMの権利を生成すると同じ結果が得られますか? –
はい、良い例は、キューからワークロードを消費するサービスです。各サービスインスタンスは新しいコンテナインスタンスで実行されるため、スレッドを作成する必要はありません –