0

私は Java 開発者であり、AWS、Rackspace、Heroku をアプリの潜在的なクラウド プロバイダーとして検討しています。以前は従来の Web ホスト (仮想専用サーバー プラン) しか使用していなかったので、ちょっと圧倒されました。

私の理解では、クラウドを使用すると、仮想アプライアンス (アプリケーション サーバー、データベース サーバーなどのソフトウェア スタックが事前に構成された仮想マシン) を必要に応じて生成/停止できます。そのため、真夜中または休日で誰もアプリを使用していない場合は、実行中のインスタンスの数を減らしてお金を節約できます。しかし、土曜日の朝で負荷が危険なほどピークに近づいている場合は、新しいサーバーを起動して、アプリがクラッシュしないことを確認できます。

まず、私の理解が間違っていたり、間違っていたりする場合は、まず訂正してください!

私がクラウドについて多かれ少なかれ正しいと仮定すると、アプリの使用の急激な増加/減少/パターンを監視する独自のモニターを構築する必要があるのは理にかなっています (ネットワーク トラフィックと帯域幅に基づいていると思います!)。トラフィックが特定のポイントまで増加すると、より多くの VM をインスタンス化する必要があり、トラフィックが遅くなるとその逆になります。

JClouds ではこれを実行できるため、私のモニターは JClouds API を使用してサーバーを生成/停止します。

私が窒息しているのは、VM をいつスポーン/キルするかをモニターに伝えるためにどのアルゴリズム/式を使用すればよいかということです。基本的に、常に必要な "馬力" (VM) の 2 倍を確保する暫定的なアルゴリズムを作成しました。モニターは約 10 秒ごとに各ノードをポーリングし、システムの現在の負荷が特定のデルタによって変化したClusterResizer場合、ノードを追加/削減する必要があるかどうかを判断することができます。

この動的なサイズ変更システムのアウトライン/スケルトンの設計に数時間を費やしましたが、あまりにも先を行く前に停止し、不必要なこと、間違っていること、または単純なことをしている場合に備えて、ここで健全性チェックを行いたいと思いましたクレイジー!

他のクラウド アプリはどのように VM を監視し、サイズを変更しますか? どのようなアルゴリズムやベスト プラクティスを理解しておく必要がありますか? 前もって感謝します!

4

1 に答える 1

0

Amazon EC2 では、監視を自分で実装する必要はありません。負荷が増加すると自動的にスケールアップし、減少するとスケールダウンするエラスティック スケーリングを行うcloudwatchという機能があります。そのため、監視サービスを自分で実装する必要はありません。RackSpace には、Scalr と呼ばれる自動スケーリング用のサードパーティ ソリューションがあります。Amazon の CloudWatch に相当するネイティブの RackSpace 機能もある可能性があります。このインフラストラクチャをゼロから構築する手間を省くために調査する必要があります。

于 2012-07-12T14:01:47.777 に答える