スケーリングと容量計画のベスト プラクティス: VM のみ? VM + コンテナー? コンテナーのみ? クラスター? その他?

スケーリングと容量計画のベスト プラクティス: VM のみ? VM + コンテナー? コンテナーのみ? クラスター? その他?

(すでに回答されている同様の質問は見つかりませんでしたが、私はフランス語を学んでいる学生なので、適切な言葉を使っていないのかもしれません ;))
私が探しているものに最も近い答えは次のとおりです:スケーラブルな Web アプリケーション ハードウェア トポロジのベスト プラクティスしかし、それはすべての質問に答えるものではない

私は、数十の Web サイトと一部のクライアント向けに、ほとんどの場合、ドメイン/Web サイトごとに 1 つの VM という KVM VM を実行する小さなプライベート クラウド (Openstack) を構築しました。
私は、一部のものをクラウド内で実行し、他のものを EC2 上で実行する「ハイブリッド クラウド」に進化できるかどうかをテストする予定なので、自分の「やり方」が自分の用途に最適かどうかを確認したいと考えています。
これらの VM は CoreOS を実行し、CoreOS はさまざまな Docker サービス (Nginx 用のコンテナー 1 つ、pgsql 用のコンテナー 1 つなど) を実行します。1 つのサービスが何かに対して「不足」し始めたら、より大きな VM を作成し、古い VM をより大きな VM にコピーして古い VM を削除するか、必要なサービス専用の VM (たとえば、より多くの接続を処理するために Nginx 専用の 2 番目の VM) を作成します。

しかし、私は間違ったことをしているのではないかと思っています。
私がこの「モデル」を使うことにしたのは、強い異なるドメイン/クライアント間の分離、それは当時 Docker を試してもっと慣れたかったからであり、また Docker がサービスを迅速に展開する最も効果的な方法の 1 つだと思ったからです。

むしろVMのみを使用する(つまりコンテナなし) サービスごとに 1 つの VM (ドメインごとに 1 つの VM ではなく) を使用するか?
または代わりにコンテナのみを使用するべきでしょうか異なるサービスを分離し、ノード内でそれらをすべて混ぜて実行しますか?たとえば、さまざまなサービスとさまざまなクライアントのコンテナが数十個ありますか?では、さまざまなドメイン/クライアントを効果的に分離するにはどうすればよいでしょうか?そして、それらのサービスを拡張するにはどうすればよいでしょうか?単にノードを追加するだけ
ですか?それとも、大きなVMまたはベアメタルマシンのクラスターを作成して、それらを使用して大きなCoreOSクラスターを作成するベアメタルノードを追加することで拡張できるでしょうか? その場合、コンテナの場合と同じ質問が適用されます。

私の質問があまりにも愚かだったり、初心者っぽかったり、不適切だったりしたら申し訳ありませんが、一歩引くには遅すぎるときよりも、今質問したほうがいいと思います ;)

ご提案があれば歓迎します:)

はい

答え1

両方のVMを使用しても問題ありませんそして特にこのようなシナリオでは、コンテナが重要です。

VM は、安価でありながら高価な安全な分離レイヤーを提供します。 - VM で優れたセキュリティを実現するために多大な労力を費やす必要がないため、労力は安価です。 - VM のオーバーヘッドは、特に適度な量の RAM を必要とする小規模なサービスの場合にかなり大きくなる可能性があるため、リソースは高価です。

(「仮想化税」は小さな定数と見なすことができます。大規模なサービスの場合、この定数は無視できますが、小規模なサービスの場合、全体のフットプリントのかなりの部分を占めることになります。)

一方、コンテナは安価で効率的なソフトウェア分離およびデプロイメント方法 (競合するバージョンを気にせずに複数のコンテナを並べてデプロイできるという意味で)。

さらに、ハイブリッド クラウド (プライベート クラウドからパブリック クラウドへのスピルオーバー) を実装する場合、コンテナーは両方の環境を橋渡しし、その違いを抽象化する非常に簡単な方法です。

私の個人的な戦略は (あなたのニーズを正しく理解していると仮定すると)、VM でテナントを分離し、シンプルなプライベート クラウド (OpenStack など) に依存し、コンテナーに展開し、必要に応じてそれらのコンテナーをプライベート クラウドとパブリック クラウド間で移動することです。もちろん、リソース要件の変動に対応するために、VM (どちらのクラウドでも) を再調整できます。

関連情報