実稼働環境までどれくらいの時間で構築すればよいでしょうか?
-
01-07-2019 - |
質問
私のユーザーはほぼ平等に 24 時間年中無休でサイトを利用しています。ビルドのタイミングに関するミームはありますか?
世界中の視聴者、東部時間ではサーバーの単一クラスターが、午前中ずっと海外のクライアントによる攻撃を受けます。
1 データベース、複数の Web サーバーがあるため、データベースがない場合でも、いつでも簡単に実行できます。
しかし、サイトがダウンしなければならないとき、プログラマとして、SO がたとえば 15 分間ダウンしているのを見て最も腹が立たないのはいつですか。
解決
ユーザーの観点から本当に良い時間がない場合は、チームがビルド関連の障害から回復するのに最も時間がかかるときに実行することをお勧めします。
他のヒント
これが私がやったことです、そしてそれは私にとってうまくいきました:
- 1時間ごとのユーザーロードをグラフ化するサイトトラフィック分析ツールを入手する
- 更新を行うには、グラフでローポイントを選択します
規模が小さい場合は、使用量が最も少ない期間を見つけて、その時点で実行してください (個人的には、通常、PST で午前 1 時から午前 3 時頃が最低の落ち込みです...ただし、もちろん 0 になることはありません)。ユーザーベースが拡大し始めたら、人々に真剣に受け止めてもらいたい場合は、ダウンタイムなしでアップグレードできるようにアプリケーションを設計する必要があります。これは単純ではなく、多くの場合、複数のサーバーが必要になります。
私はアプリケーションをここまで到達させるのに何年も費やしてきましたが、これまでに思いついた最善の方法は、古いバージョンと新しいバージョンの両方を同時に数時間実行することです。スイッチオーバー時にログインしていたユーザーは、ログアウトするまで古いバージョンに残ります。次回アクセスしたときには、新しいバージョンが使用されます。スイッチオーバー後に使用するユーザーは、新しいバージョンに直接送信されます。まだ完全ではありませんが、かなり良いです。
どのようなアプリケーションですか?私が使用しているほとんどのサイトは午前 2 時か午前 3 時頃に更新される傾向があります。
2 番目のサイトを使用し、必要に応じてホットスワップします。
ホットスワップの問題は、データベースが引き続き共有され、破壊的な変更によりスタンドもダウンしてしまうことです。
クライアントに尋ねる必要があると思います。
いずれにせよ、早朝です。ローカルで利用できる Web サイトの場合、ユーザーは自分のタイムゾーンの午前 2 時に「メンテナンス中」の通知を受け取っても気にしないと思います。
あなたの場所によって異なります:通常、東海岸では午前 4 時、西海岸では午前 1 時が最も明るい時間帯です。
あなたがそれをしたい回数をいくつか選び、それを決定者タイプの選択肢として提供してください。何をするにしても、展開中は「定期メンテナンスのため停止する」ページを作成してください。
- 使用量が最も少ない時間を確認する
- 最新の実稼働コードを別のディレクトリにクローン/コピー/更新する
- データベースの移行が必要な場合は、必要な移行を実行し、古いコード ベースと競合しないようにします。
- 使用量が最も少ないときは、シンボリックリンクを最新のコードを指すように移動します。
まず、分析ツールを使用して、通常「軽い」交通時間を調べてください。サイトと、ほとんどのユーザーと比較した世界の場所によっては、午前 4 時になることもあれば、午後 1 時になることもあります。次に、適切な期限を設定したら、サイトのダウンタイムを最小限に抑えるために展開プロセスをできるだけ自動化し、迅速に展開できるようにします。