予算のジオクラスターホスティングを作成する方法

分散ホスティングとして、mu-Wordpressに基づいてブログサービスを作成するという古典的な例を見てみましょう。

タスクは、限られた予算でフォールトトレラントな(可能な限り)地理的に分散したシステムを組み立てることです。 したがって、すべての機器はさまざまなデータセンターでレンタルされます。

そして、ここですべてのデータセンターが同等に有用であるとは言えません。 高品質のものは800ドルでサーバーをレンタルしますが、低品質のものは100ドルでほぼ同じサーバーでレンタルできます。 そして、ジオクラスターを作成するときに考慮する必要があるのはこれらの機能です。



さて、小さなハックについて。 mu-Wordpressのデフォルトでは、ダウンロード可能なコンテンツをアップロードする機能は、PHPを介して非常に失敗しました。 したがって、別のサービスをダウンロードし、静的への直接リンクを持つダウンロード可能なコンテンツを挿入することで置き換えられました。

2番目のハックは、キャッシュコントロールの変更です。 静的な設計要素をキャッシュする命令に加えて、その議論の期間(デフォルトでは14日間)レコードをキャッシュすることを禁止する別のハックが導入され、その後、キャッシュを許可する見出しが与えられました。 さらに、RSSフィードは巧妙にキャッシュされました。

最後のハックはデータベース同期システムでした-各INSERT / DELETE / UPDATEは「隣接」で実行されました。 MySQL + PHPのコンテキストでは、このようなソフトウェアの急襲が判明しました。



画像



まずDNSについて。 mu-Wordpressは各ブログにサブドメインを使用していたため、最も合理的なソリューションは、2つの独立したレジストラー(灰色の雲)からスレーブDNSサービスを使用することでした。 安価で非常に信頼性が高いです。



2つのサーバーがレンタルされる高品質のグリーンデータセンターは、プライマリDNS、初期登録サービス、およびアップロードフォームに使用されました。

ジオクラストの主要な「バックボーン」として2つの中品質のデータセンターが使用されました。 各サーバーには独自のネイバーがあり、サーバー間ですべてのデータベース情報とファイルを同期しました。



したがって、この段階でコストを大幅に削減することができました。 しかし、しばらくして、深刻な問題が発生しました。その名前は検索ボットです。



これらのボットは、各サーバー上で200-300の同時接続を作成しましたが、これはもちろん、何も良い結果にはつながりませんでした-タイムアウトと50xエラーが開始されました。 もちろん、crawl-delayオプションを使用してrobots.txtを介してリクエストの数を減らすことは可能ですが、...ブログのインデックスをゆっくり作成したいのは誰ですか?



そして、安価な黄色のデータセンター+監視と、緑色のデータセンターの2台のサーバーのDNS設定が役立ちました。 すべての仕組み:



2つの黄色のデータセンターは、プライマリ(親)イカプロキシとして機能しました。 残りの3人はそれらを親として使用し、青色の「バックボーン」の負荷を軽減しました。

緑色のデータセンターのサーバーで監視すると、黄色と青色の可用性が監視され、障害発生時にDNSの変更が実行されます。



次に、フォールトトレランスについて説明します。 緑、青、黄色のセグメントをオフにしたとき、何が失われましたか?







このため、物理的に削除された場合でも、最大限の可用性とブログをプロキシキャッシュに保存することができました。 そのようなことがありました-あるユーザーが誤って彼のブログを削除しました-そして、そのような機会が提供されます。 彼の記録をサポートするために時間をかけて、それらはキャッシュから取り出され、解析され、新しく作成されたブログに注がれました。



PS mu-WordPressのサーバー最適化の問題に関して、私にコメントを書くことができます-この場合、非常に多くの犬が食べられました;)



All Articles