1

私は現在、クラウド全体を把握しようとしています。また、Stackoverflow で同様の質問をたくさん読んでいます。

私が構築しようとしているのは、高 I/O ストレージ サービスのようなものです。FTP を介して大量のデータ (50 から 100 メガビット/秒を常に話している) を取得し、その後、受信したデータの一部に対して後処理を実行します。

アプリケーションは現在、Windows Azure VPS にデプロイするために C# で作成されています。私は、最大レベルの制御とセキュリティのために、独自の単純な FTP サーバーを作成しています (独自の認証プロセスのように)。これは問題ではありません。私はソケット サーバーと高性能 .NET アプリケーションにかなり慣れてきたからです。

ただし、常に単一のインスタンスとして実行されます。VPS サーバーで実行されている単一の Windows サービス / コンソール アプリケーションのパフォーマンスをさらに引き出すことが常に求められてきました。

今回は事実に直面しなければなりません。その VM がどれほど大きくなっても、データが増加する場合、データはサーバーの I/O キャパシティをすぐに圧倒する可能性があります (データは顧客によって生成されるため、顧客が増える = データが増える!)。

では、クラウドで負荷分散を行うにはどうすればよいでしょうか? 「クラウド サービス」と「クラウド ワーカー」などについて読んだことがありますが、1 つのサービスからストレージを使用し、データベースを 1 つのサービスから使用する場合、それは非常に複雑になり、価格設定が非常に曖昧に見えると思います。帯域幅やその他のものを考慮しながら、別のサービスと 3 番目のタイプのサービスからの作業。私が知っていて、自信を持って作業できる環境では、シンプルに保ちたいと思っています。だからVPSです。

しかし、どのように負荷分散を行うべきですか? これは初めてのことで、非常に野心的なプロジェクトであることはわかっていますが、とにかく学びたいだけです!

要約すると、Windows Azure VPS で実行されている C# で記述されたカスタム FTP アプリケーションの負荷分散です。アプリケーション/サービスのすべてのインスタンスは、同じストレージとデータベースにアクセスできる必要があります。インスタンス間の通信は必要ありません。

だから、あなたが得たものをすべて私に投げつけてください。:)

4

2 に答える 2

2

役割

あなたは役割が何であるかについていくぶん混乱しているように思われるので、それについて簡単に脇に置いておきましょう。ロールは基本的にVMのテンプレートであり、コードと構成を定義します。これは、PuppetまたはChefスクリプトと少し似ています。役割にはいくつかの種類があります。

  • VMの役割は、入手できる最も「ベアメタル」です。AzureにVMイメージを与えると、AzureがVMイメージを開始します。OSのアップデートやメンテナンスなど、すべての責任はあなたにあります。これは、AmazonEC2が行うことからそう遠くはありません。
  • ワーカーの役割はベアメタルではありません。それらはWindowsサービスからそれほど遠くありません。コードと構成のパッケージをアップロードしますが、VMイメージ全体はアップロードしません。AzureはストックのWindowsServerOSをセットアップし、コードをコピーして、エントリポイントを呼び出します。そこから、接続の受け入れ、新しいスレッドやプロセスの開始など、好きなことを行うことができます。MicrosoftはOSレベルのパッチを担当し、VMのイメージを変更して、必要なときにいつでも実行できるようにするため、永続的にしたくない場合があります。ドライブにデータを保存します。
  • Webロールは基本的にワーカーロールですが、AzureはIISもインストールし、要求したIISサイトと仮想アプリケーションを構成します。

負荷分散

単純なケース(Webサービスなど)では、Azureはマシン間で着信要求を自動的に負荷分散します。これは、インターネットからのリクエストを含むすべてのサービスでも同様に機能するはずです。これはFTPPASVモードではもっと複雑かもしれないと思いますが、私はそのトピックの専門家ではありません。Azure上のFTPのオープンソースプロジェクトと、このトピックに関するブログ投稿があります。おそらく、それらのアプローチはカスタムFTPソフトウェアに適用できます。

あなたが言ったことから、FTPサーバーにワーカーロールを使用できると思います。WorkerRole.csファイルでは、FTPコードを起動するだけで、すぐに使用できます。スレッドまたはプロセスを生成して、各VMにイメージプロセッサとしての役割を兼ねさせることもできます。必要に応じて、VMロールでこれらすべてを実行できます。これは、どちらがより多くの作業を必要とするかという問題です。

ストレージ

これは、BlobStorageの教科書のユースケースです。アップロードされたファイルは間違いなくそこに行くはずです。別の課金モデルでは少し混乱しているようですが、Blobストレージはかなり安価です。AzurePricingCalculatorをご覧ください。

于 2012-12-13T15:50:35.790 に答える
0

IIS アプリケーション リクエスト ルーティング (ARR) を使用して webrole をセットアップします。

于 2012-12-12T22:19:16.350 に答える