4

やせっぽち:Facebook / Twitter / Youtube(何でも)がソフトウェアの基本的なアイデアから...より大きく(おそらく10万人のユーザー?)に変わったとき、彼らはどのように成長しましたか?

中規模のWebアプリケーションの「ベストプラクティス」の成長パスはありますか?

本当の質問:中規模のWebアプリケーションプロジェクトを指定または入札する場合、大きな問題は何ですか?この場合、問題のPHPフレームワークを使用しますが、これらはほとんどすべての言語に一般化されるようです。

したがって、コアアプリケーションのプログラマーは(私にとって)最も明白な部分です。アプリケーションを処理するために作成されたユーザー管理、ユーザーインターフェイス、および特別なクラスを取得します。しかし、これは実際のプロジェクトの半分未満のように思えます。

最終的には、順調に成長しているため、インフラストラクチャとメタUIの問題が主な焦点になりますね。

1)インフラストラクチャ:クラウドアプリケーションスペース、データストレージ、マルチデータセンターの状況でのデータベースの同期。

2)言語と文化の問題:アプリを「好感が持てる」、または少なくとも主要な「文化市場」で使用できるようにする

3)データのインデックス作成の問題

4)API /相互運用性の問題(Facebookの組み込みアプリと、エンドユーザーと検索エンジンなどの主要なプレーヤーの両方に対するデータの外部アクセスの両方)

...だから、私はそれらの約半分が欠けていると確信しており、それらがどのように優先されるのかほとんどわかりません。

ここで受け入れられた答えは、私が求める答えのかなり良い出発点です。

4

1 に答える 1

0

リストの項目1を拡張することは非常に重要であるように思われ、直面するスケーリングの問題の種類を決定するのに役立ち、どのクラスのテクノロジーが役立つかを示すことさえできます。そうすることで、項目3と4も相互に関連しているので、それらに触れます。

以下は、スケーラビリティの考え方を拡張するための探索的な考え方を理解するのに役立つ可能性のある大きな混乱した質問です。これは、質問に対する直接の答えではなく、できれば出発点です。

アプリの機能はどのようなものですか?彼らは重い読み取りまたは重い書き込み、あるいはその両方ですか?データを表示しているとき、それは常にリアルタイムで可能な限り最新の状態である必要がありますか?またはそれを遅らせることができますか?どこまで遅らせることができますか?キャッシングは役に立ちますか?キャッシングは簡単な部分です。また、キャッシュを期限切れにする方法を考えてください。これは難しいことです。使用しているデータはどのように見えますか?それは非常にリレーショナルですか、それとも別のドキュメントのようなものですか?

パフォーマンス要件は何ですか?-アプリは主にバックグラウンドでレポートを生成し、それらを電子メールで送信しますか?それとも、Twitterから現在のすべてのツイートの完全なリアルタイムマップを表示する必要がありますか?ユーザーからの更新はすぐに他のユーザーに伝播する必要がありますか?すべてのユーザーまたはそれらのサブセットのみ?それを行うにはどれくらいの速さが必要ですか?ページは300ミリ秒未満または2秒未満でロードする必要がありますか?

外部サービスには、リクエスト制限やレート制限など、何らかの制限がありますか?つまり、リクエストをキューに入れてバッチ処理する必要があります。一部の外部データプロバイダーは、データを処理するよりも速くデータを送信していますか?キューに入れる必要があるかもしれません。システムのこの部分を、上下に移動できる可変数の「ワーカー」を使用して、それ自体でスケーラブルにする必要があるかもしれません。その「個別にスケーラブルな」プリンシパルをシステムの他の部分に適用することを検討してください。これは、大規模なインストールで利益をもたらします。

これがいくらか役立つことを願っています:)

于 2011-02-17T23:32:42.447 に答える