0

注:この質問は、私が構築するWebアプリケーションの主な要件である高可用性とフォールトトレランスの影響を大きく受けます。他のすべての要件(スケーラビリティやユーザー数など)は、ここでは問題になりません。

このコミュニティのメンバーの1人から、ErlangWebサーバーをWebアプリケーションのバックエンドとして使用するようにアドバイスを受けました。

提案は、JSONとサービス指向モデルを使用して、バックエンドとしてMochiweb、フロントエンドとしてDjango / RubyonRailsのようなものを使用できるというものでした。

私が理解できるこのアプローチの唯一の明らかな利点は、フロントエンド部分の開発が「通常どおり」であるということです。通常のMVCのもの、Ruby on Rails、または他の誰かが選択した一般的なフレームワークです。

しかし、他の利点はどうですか?それらは実際に存在しますか?

確かに、Erlang / OTPは問題のシステムにフォールトトレランスを追加しますが、Webフロントエンドレイヤーを追加すると、このフォールトトレランスレベルがはるかに低いレベルに低下しませんか?

Ruby on RailsとMochiwebを組み合わせて、「単一障害点」を導入しませんか?もちろん、Mochiwebは障害に対処できますが、フロントエンド側で問題が発生した場合はどうなりますか?

4

3 に答える 3

1

技術的には、Erlang / OTPプラットフォームは、それ自体ではフォールトトレランスと高可用性については何もしません。並行および分散ソフトウェアを簡単に実装できるようにするだけです。単一のマシンで実行されているErlangWebサーバーは、他のすべてのマシンと同様に、ハードウェアに障害が発生したという理由だけで障害が発生する可能性があります。

したがって、HAサイトの場合、特定のソフトウェアスタックまたはプラットフォームを使用するのではなく、ハードウェアおよびソフトウェアの障害が発生した場合に適切な冗長性とフォールバックのシナリオを用意することがより重要です。おそらく、他のプラットフォームと比較して、Erlangでの実装はわずかに簡単です(もちろん、それに精通している場合)が、純粋なRuby / Python / Java/Cまたは他のほとんどすべてを使用してまったく同じ結果を達成できます。

于 2012-04-25T12:42:16.690 に答える
1

Web業界には、フォールトトレラントフロントエンドのセットアップに関する豊富な経験があります。複数のWebマシン(多くの場合、ライトリバースプロキシ)とある種のHAマネージャー(多くの負荷分散ソリューションに組み込まれている)をセットアップするだけです。通常、バックエンドは難しい部分です。

于 2012-04-22T11:28:44.410 に答える
0

バックエンドが他のテクノロジーである場合、フロントエンドWebサーバーとしてErlangを使用しません。

WebサーバーとしてのErlangの利点の多くは、バックエンドもErlangを使用している場合に得られます。これらの最大のものは、I/Oコストの削減です。フロントエンドとバックエンドが完全に別個のソフトウェアスタックである場合、その利点は失われます。

Railsで何かを構築する場合は、nginxなど、フロントエンドでより多くのヘルプが得られるものを使用することもできます。

于 2012-04-24T23:42:20.920 に答える