web-dev-qa-db-ja.com

あなたはv2を起動するための効果的な戦略がありますか。 WP サイト?

私のチームと私は、かなりの量のコンテンツとそれらが構築したカスタムテーマを持つ既存のWordPressサイトを持っているクライアントと協力しています。これはグループブログです。つまり、世界中にコンテンツを追加および編集している複数のブロガーがいます。

私たちの仕事は、かなりの数の新しい機能を備えた、まったく新しいテーマを作成することです。これらの機能のいくつかは新しいカスタムウィジェット、プラグイン、そしてデータベースフィールドを必要とするでしょう。

私たちは現在、私たち自身の開発マシンを開発し、それらを単一の開発サーバーに統合しています。すべてのコードはSVNでバージョン管理されています。私たちの任命されたDBAは、手動でデータベースの変更をすべてdev DBにマージしていますが、彼は近いうちに自動化できるようになるでしょう。

プロダクションリリースプロセスについて話し始めたところです。意味:作業が終わったら、カスタムコードのすべてを本番(ライブ)サーバーにスムーズに、そしてできるだけ中断をかけずに取得する方法を教えてください。

私たちはいくつかの計画を念頭に置いていますが、私は他の人たちがこの問題にどのように取り組んできたかを知りたいです。従うべきベストプラクティス、または避けるべき既知の落とし穴はありますか?

12
Mike Lee

SethMerrickのアドバイスに従うと、適切なDNSレコードのTTLを5分または数時間に減らすことで、切り替え時間を大幅に減らすことができます(現在のTTLの内容によって異なります)。 IPアドレスを変更する前に。

これを行うことによって、あなたは5分間だけアドレスをキャッシュするようにリモートDNSサーバーに伝えています。 IPを変更したら、TTLを以前のものに増やすことができます。この影響をさらに最小限に抑えるには、トラフィックが少ない期間にスイッチオーバーを実行します。

4
Aaron Terry

これが当てはまるかどうかはわかりませんが、トラフィックの多いサイトを同時に移行およびアップグレードするという同様のプロセスを経ただけです。

基本的な戦略は、ステージングサーバーで作業し、準備が整ったら、ライブサーバーでMySQLダンプを作成し、ステージングサーバーにインポートし、必要なクリーンアップを実行してから、DNSレコードをステージングサーバーに指定することです。新しいライブサーバーになるためのステージングサーバー。

次に注意が必要なのは、DNSの伝播中に蓄積されたすべてのデータをステージングサーバー(現在はライブサーバーです)にマージすることです。つまり、mysqlのダンプ/更新DNSを実行してからDNSの伝達が完了するまでに30時間が経過すると、古いサイトから新しいサイトに30時間分のレコードを選択的にマージする必要があります。

これはシームレスなプロセスではありませんが、1週間経った時点ですべてのねじれが滑らかになっていました。

2
SethMerrick

@ Mike Lee:大きな疑問、そしてWordPressの聖杯の1つ(またはDrupal、Joomlaなど、そのことに関して私がよく知っている主流のオープンソースCMSのいずれか)。

それは確かにあなたのユースケースに対処するためのものではありませんがチェックアウト 関連質問 への私の答えは、私がちょうど利用可能にしたベータレベルのプラグインを説明しますWordPress Answers ExchangeはWP Migrate Webhostsを呼び出した(はい、クリエイティブなネーミングに関してはやめています)。

しかし、私はあなたがプラグインで記述したユースケースも解決したいと考えており、現在それをどのように達成するかについて考えています。私はそれにアプローチする方法を考えてそれを一般的に解決することをあきらめ、代わりにWordPressに存在する既知のパターンに対処し、それから他の人に "フック"を許可します特別なユースケースまた、WordPressのデータと構造をPHPファイルのデータとしてシリアル化して、ソースコード管理システムがデルタを適用するのと同じように、デルタとしてこれらの変更を適用できるようにすることも考えています。現在のバージョンのソースコードで。

それで、私はあなたの問題に完全に答えたり解決したりしているわけではありませんが、私はあなたに思考の良い食べ物を与え、あなたや他の誰かが最終的な解決策に協力したいと願っています。

2
MikeSchinkel