web-dev-qa-db-ja.com

トラフィックの多いWebサイトを運営するために必要なものすべて

私は経験豊富なフロントエンドWeb開発者ですが、バックエンドの経験はDrupalのコンテキスト内でのみ発生しています。基本的に、より深いものがバックエンドに入るほど、私は未経験です。ある時点で、私はそれが何であるかさえ知りません。

トラフィックの多いウェブサイトを運営するためにバックエンドで必要とされるすべてのことを広く理解したいと思っています。特定のことは、PHP vs Rubyのようなものを使用しているかどうか、データベースの種類、サーバーの種類、そのサーバー上のOSの種類に依存することを理解しています。現時点では、Amazon EC2の使用を計画していますが、PHP対Rubyについてはわかりません。

私が知る限り、主なカテゴリは次のとおりです。

サーバー

  1. 主な構成
  2. パフォーマンス/問題の監視
  3. 長期および短期のスケーラビリティ(短期=容量を迅速に増加させる能力)

データベース

  1. 主な構成
  2. パフォーマンス/問題の監視
  3. 長期的なスケーラビリティ
  4. キャッシュ(クエリキャッシュがDBレベルで実行されるか、PHP/Rubyレベルで実行されるかはわかりません)

バックエンド言語(PHPまたはRuby)

  1. 主な構成
  2. キャッシング
  3. Cronジョブ(またはRubyで同等のもの、他のものと呼ばれる場合)


具体的な質問ではないため、この質問は実際の質問ではなく閉じられるかもしれません。しかし、このような質問を正しく提示する方法を前夜に知ることを難しくしているのは、私のバックエンドの経験不足です。質問を修正する必要がある場合は、どのように説明するコメントを残してください。そうすることを確認します。

2
maxedison

サーバーのセットアップ方法は、使用する言語に大きく依存します。 PHPとRubyのいずれかを決定してから、どちらを選択した場合でも適切なセットアップについて質問する必要があります。

どちらを選択した場合でも、適切なコーディング手法を使用してください。ずさんなコードがあると、パフォーマンスよりも多くの問題が発生する可能性があります。 PHP(推奨)を使用する場合は、PHPのOOPを参照してください。 PHPは技術的にはオブジェクト指向プログラミング言語ではありませんが、パフォーマンスだけでなく生産性も向上させることができます。

また、特に非常に複雑なロジックの場合は、コード内でコメントを使用することをお勧めします。他の人があなたが何をしているのかを理解するのに役立つだけでなく、数か月前にコーディングしたものを簡単に見つけるのにも役立ちます。別のプログラマーは、コードを見て、それが比較的簡単に実行していることを把握できるはずです。

データベースを適切に設定すると、トラフィックの多いサイトで大きな違いが生じる可能性があります。インデックスの設定と使用する正しいフィールドタイプをよく読んでください。これらはしばしば見落とされますが、適切に使用するとパフォーマンスが大幅に向上する可能性があります。他の多くの設定に注意する必要があります。簡単なグーグル検索でこれに関する多くの情報を取得できます。

PHPを使用する場合は、HipHop for PHPをご覧ください。すべてのコードを高度に最適化されたC++に変換してから、マシンコードに変換します。 Facebookによって作成され、オープンソースプロジェクトとしてリリースされました。 https://github.com/facebook/hiphop-php をご覧ください

2
Kyle