サイトが落ちなかったこと:経済的な方法





サイトが落ちています。 私は7年間ホスティングしており、過去5年間(特に)地理的に分散したクラスターにサービスを提供しており、データセンターの1つで事故が発生した場合、サイトは引き続き別の場所で動作します。 出口では、このようなソリューションは、1つの仮想サーバーで少なくとも月に4千ルーブルかかります。 小規模なオンラインストアの場合、これは年に1〜3回必要となる「保険」に費用がかかる可能性があります。運が良ければ、まったく必要ありません。 したがって、多くの人々は、中小企業に適した安価なオプションを必要としています。 次に、これを非常に簡単に解決する方法を説明します。



重要な紹介



前回 、予算フェイルセーフクラスターの編成の原則について話しました。 本格的なクラスターでは、障害が発生した場合でも作業を継続できるようにするために、機器の量を少なくとも2倍にする必要があります。 この投稿では、システムを複製せずに、メインサーバーに障害が発生した場合にクライアントを維持する方法について説明します。



そのため、オンラインストアのサイトやカフェなどが落ちた場合、2つの問題があります。

  1. 顧客はサイトにアクセスできず、注文を失います。 原則として、転倒が1日以上続くことはめったにないため、通常は利益から仕事の日を差し引くだけです。
  2. さらに悪いことに、検索ロボットはサイトではなく503番目または404番目のエラーを表示するか、まったく表示しないため、サイトが検索エンジンの結果から除外される可能性があります。




前者が中小企業で通常耐えることができる場合(まあ、30%のマージンで9から15,000の売上高は3から5千ルーブル、一般的には怖くない)、検索エンジンでのドローダウンははるかに高価です。 秋の2時間目のソシュニクの顔は恐ろしく見えます。 損害(幸運でない場合)は、おおよそ毎月のプロモーション予算です。 このため、転倒した場合には「ストローを敷く」ことはすでに価値があります。



Milfgardとフォールトトレラントソリューションについて話し、 Mosigreで長年にわたってこの問題をどのように解決してきたかについて話しました。 サイトの作業が中断している間、クライアントは基本情報を含む静的なHTMLスタブに切り替えるだけです。



これは、会社に関する一般情報が表示されるページ、通信用の電話、および場合によってはさらにお金が投資されるプロモーションのページです。 このようなスタブの場合、1〜20ページで十分です(条件付きで、これはメインページであり、トップエンド製品のページがさらにいくつかあります)。 それ以上であれば、クラスターについて考えることはすでに理にかなっています。 このような「スタブ」システムは、本格的なクラスターよりもはるかに簡単に作成および保守できます。



メソッドの本質



  1. メインページはサイトから取得されます(ホームページ+選択したもののいくつか)。 これらのうち、静的スタブサイトが自動的に作成されます。 リンク(このようなスタブに含まれていないページにつながる)をクリックすると、「サイトは一時的に利用できません。123に電話してください。注文を受け付けます」というメッセージが表示されます。 このスタブは、メインサイトをホストしているホストから独立したサーバーでホストされています。
  2. 関連性(価格、設計変更など)を維持するために、このようなスタブサイトは週に1回自動的に更新されます。
  3. ドメインは信頼できるDNSサービス(私の場合はYandex、それ自体がフォールトトレラントであるため)に委任され、APIを介して制御できます。
  4. バックアップサーバーはプライマリサーバーを監視し、障害が発生した場合、IPアドレスをバックアップサーバーのアドレスに変更します。 チェックは1分間に1回実行され、3回連続してエラーが発生するとロボットがつまずくと、ドメインのAレコードがバックアップサーバーに切り替わります。 メインサイトを復元すると、レコードは元に戻ります。
  5. レコードが前後に切り替えられると、SMS通知が所有者または管理者に送信されます。




つまり 、サイトのメインページを取得してコピーし、静的スタブを作成して、メインサイトがクラッシュしたときにクライアントが静的バージョンに切り替わるようにします。 次に、メインサイトが復元された後に切り替えます。

切り替えプロセスには約1.5分かかります。つまり、この時間(TTL)にプラスまたはマイナス数分かかりますが、サイトはまだ存在しています。 最初にテストを開始したとき、遅延は約12〜17分でしたが、すべてが高速になりました。オプションがありました。



クラスターの利点



  1. 1つのボタンで非常に簡単に実装できます。
  2. 比較的安い。
  3. 多くの場合、これは広告で来たバイヤーを救うのに十分です-オペレーターは電話で詳細を教えてくれ、一般的にクライアントは理解できないエラーの代わりにサイトが稼働していることがわかります。
  4. メインサイトからのサポートを必要とせず、すべてのエンジンとテクノロジーで動作します。
  5. 過負荷、サイト/データベースソフトウェアのエラー、ハッキング、攻撃などから保存します。 -どんな不利なシナリオでも、ドメインを静的サイトに切り替えることができ、それは正直に動作します。 写真だけで静的なHTMLからサイトを分割することは難しく、多くの機能と大規模なデータベースを備えたメインサイトよりもはるかに多くの負荷に耐えます。
  6. 外部DNSサーバーでの作業をサポートする場合に限り、どのホスティングでも機能します(大部分のサポート)。
  7. クライアントがサイトをホスティングに転送する必要はまったくありません。そのようなスタブのサービスを注文するだけで十分であり、サイト上の何も変更できません。




繰り返しますが、このようなスタブは、サイト、ホスティングなどの一部の変更を必要としません。サイトは機能したまま動作し、問題が発生した場合は、「ストロー」が穏やかに落ちる場所を準備します。



短所



  1. これはスタブです-ユーザーはサイトの検索、登録、個人アカウントへのログインなどができなくなります。 基本情報と(条件付きで価格と電話番号をオペレーターに連絡する)のみを参照してください。
  2. 切り替え時には、DNSキャッシュの更新に約1.5分の遅延があります。
  3. さらに複雑さがあります-ドメインをYandex DNSサーバーに委任するにはサイト所有者が必要です。 それは難しくありませんが、経験が必要です-そのような手順は、通常の秘書によって実行することはできません。




実用的な実装



  1. クライアントドメインはYandex DNSサーバーに委任されます-それらは無料で信頼性が高く、管理するシンプルなAPIがあります。 TTLは最小-90秒に設定されます。
  2. 別のサーバーが監視サービスと静的サイトのホスティングをホストします。 1分ごとに監視がメインサーバーを呼び出し、メインページをダウンロードし、サイトが機能していることを示すキーフレーズを探します。 通常、これはYandexメトリックまたはGoogleアナリティクスのコードですが、ページのメインテキスト内にデータベースからのリクエストによって正確に発行される特別なものを挿入することもできます。 3つの障害が連続して発生した場合、障害とサイトの予備サイトへの切り替えに関するSMS通知がクライアントに送信されます。
  3. 同時に、監視により、ドメインIPアドレスがバックアップサイトアドレスに変更され、メインサイトの可用性が引き続きチェックされます。 メインサイトが正常に戻るとすぐに、サイトをメインサイトに切り替えることに関する通知がクライアントに送信され、サーバーのメインIPアドレスが返されます。
  4. 必要に応じて、クライアントでは、自動モードでスタブを更新するために、サイトまたはAPIのファイルへのftpアクセスを整理してアーカイブをダウンロードできます(これはまだストリームに実装されていません)。




表示する



テストサイトの例で、これがどのように機能するかを確認できます。



splasher - test - 00.inf1f2.ru-ゼロから毎時14分までのエラーを返します

splasher - test - 15.inf1f2.ru-毎時15分から29分までエラーを返します

splasher - test - 30.inf1f2.ru-毎時30分から44分までのエラーを返します

splasher - test - 45.inf1f2.ru-毎時45分から59分までのエラーを表示します



All Articles