私のウェブサイト上の1つ以上のファイルをダウンさせずに更新するにはベストプラクティスが必要です。ウェブサイトをダウンさせずに更新するにはどうすればよいですか?
例:Model.phpファイルを更新すると、アップロードがサーバーのファイルを置き換える前に1〜2秒かかるような数秒かかる場合がありますが、その間にmodel.phpというエラーが表示されます見つからない、または完了していない場合でも、エラーを抑制しても、ウェブサイトは最終的に死ぬでしょう。
そのためのベストプラクティスは何ですか?
私のウェブサイト上の1つ以上のファイルをダウンさせずに更新するにはベストプラクティスが必要です。ウェブサイトをダウンさせずに更新するにはどうすればよいですか?
例:Model.phpファイルを更新すると、アップロードがサーバーのファイルを置き換える前に1〜2秒かかるような数秒かかる場合がありますが、その間にmodel.phpというエラーが表示されます見つからない、または完了していない場合でも、エラーを抑制しても、ウェブサイトは最終的に死ぬでしょう。
そのためのベストプラクティスは何ですか?
一つの練習は -
サイトのウェブを作る、ライブサーバー上でSVNやGitの
などのバージョン管理システム(VCS)を使用しますrootリビジョン番号のウェブサイトの最新リビジョンを含むディレクトリへのシンボリックリンク(例:/www/domain.com/r555
)。変更が起動したとき、VCS
に変更して555
チェックリビジョン名(たとえば、/www/domain.com/r556
)
チェックアウトが完了したら、シンボリックリンクを変更して、/www/domain.com/r556
を指すようにします。
ありますが、ファイルのアップロード、あなたがVCSで持つことができないようなのような動的なデータを持っている場合、いくつかの思わぬ障害がありますが、それらはすべて、ダウンタイムなしで対応することができます。
データベースの変更のようなものは、まだ何らかのメンテナンスモードが必要な場合があります。
おそらく幾分脱退しています... PHPスキーマの更新をphpコードと調整するのはどうですか? – Tucker
標準的な手順は、スキーマの変更が行われている間、サイトをメンテナンスモードにすることです。いくつかのデータベースデザインでは、["青緑"デプロイメント](http://martinfowler.com/bliki/BlueGreenDeployment.html)のようなファンシーパンツが許可されています。実際にはアプリケーションとデータベースの完全なインスタンスが2つあります。更新プロセスの一環としてそれらの間を切り取ることができます。 – Charles
ありがとう@ペッカ。 – Emad
1.1
という名前のフォルダを作成し、そこに新しいアプリケーションを置いてください(手動でもVCSでも)、公開されているhtmlディレクトリをシンボリックリンクしてください。スイッチは瞬間的になります。
これはメリットの1つとして、コードに問題がある場合、すぐに1.0
フォルダにシンボリックリンクをシンボリックリンクすることができるという珍しいアプローチではありません。
もう1つの良い点は、VCSタグをフォルダと同じ名前にして、使用しているバージョンを簡単に追跡できるようにすることです。私は、多くの場合、実際に使用されると見てきた
キャッシングサーバー/アプリケーションを使用して、キャッシュされたコピーをユーザーが利用できるようにします。 Varnishは例です。設定した時間内にコンテンツをキャッシュするようにワニスを設定し、実際のWebサイトのサーバーにアクセスできない場合は代替の時間を設定できます(Model.php not found
エラーなど)。
この場合、本番システムを更新すると、ワニスはバックエンドが起動して正常に動作するまで(2秒または2時間)ウェブサイトのキャッシュされたコピーを提供し続けることができます。ユーザーのために何か(UI、コンテンツなど)が変更された場合、更新後にワニスキャッシュを消去することを忘れないでください。
すべてのWebサーバーにはいくつかのキャッシング機能がありますが、ワニスなどはキャッシング用にです。
もう1つの方法は、HAProxyのようなロードバランサの背後にある同じWebサイトのインスタンスを2つ以上実行することです。一度に1つずつ更新すると、HAProxyは現在更新していないトラフィックにトラフィックをリダイレクトできます。
サーバーレベルのキャッシュまたは負荷分散の詳細については、Server Faultにお問い合わせください。
データベースを使用します。 – jeremy
メンテナンスモード – ElefantPhace
は、すべてのトラフィックを一時ページにリダイレクトする可能性がありますか? – Songo