2011-05-16 5 views
3

現時点では当社の大きな議論があります。どのようにPHPへのアップデートを扱い、JQueryやDojoのようなPHP(Zend Framework)/ JavaScriptフレームワークを使用しましたか?PHPとフレームワークへのパッチ/アップデートをどのように扱いますか

すべてのPHPバージョンにパッチを当てていますか?すべてのフレームワークアップデートを運用サーバーに展開しますか?私はそれがすべてのdepencysをテストするのに膨大な時間を要すると思いますか?または火災&ベストプラクティスを忘れている?

このフィールドであなたの賞味期限を聞いて欲しいですか?ありがとう。

+1

ユニットテストと機能テストはどこにありますか?あなたがそれらを持っている場合、アップグレードとテストは2つのステップのプロセス(アップグレードとテストを実行する)でなければなりません。 – ircmaxell

+0

セレンと単体テストはあなたの友人です。 –

答えて

1

まず、複数のサーバーを持つロードバランサを使用してリクエストを処理することをお勧めします。このようにして、配備の問題が発生した場合は、バランサから引き離し、他の人にそれを処理させることができます。それは互換性を壊すん

  1. :私が言っ更新してしまうか否かのフレームワークやPHPに関しては

    は、質問はまで来ますか? - これが最も重要な要素です。重要なセキュリティ更新プログラムであっても、コードをステージングサーバーに配置して、すべての問題を解決する必要があります。

  2. バグ修正ですか?バグは私が使っているものに影響しますか? - SOAPを使用せず、SOAPコードにバグ修正がある場合、私は合格します。配列がどのように扱われるかにバグがあったら、私は間違いなくアップグレードします。
  3. セキュリティ修正プログラムですか?それは私が使っているものに影響を及ぼしますか? - ここでも同じポリシーが適用されますが、アップグレードについてはすばやく説明します。

今までそれを処理する方法として、私は次のことをお勧めします:

  1. は物事が行く場合は、前のソースのコピーがのために利用可能であることを確認し、ロードバランサオフノードを取ります違う。
  2. 必要なものを更新してから、ロードバランサに戻しますが、あなただけが見ることができるIPアドレスに制限してください。
  3. すべてが正当なものであることを確認してください。問題がある場合は、それを元に戻して、問題が解決できるか、以前のソースを元に戻す必要があるかどうかを確認します。
  4. 解決できる問題がある場合は解決してから、手順2に戻ります。
  5. 次に、ロードバランサから別のサーバーを停止し、同じ手順を実行します。
  6. 古いバージョンのノードと新しいバージョンのノードの間に50/50の分割があるまで、これを行います。
  7. これで、すべてのユーザーからの要求が強制的に新しいバージョンのnoesに送られ、公開サイトが正常であることが確認されます。何かが失敗した場合は、古いバージョンのノードを強制的にオンラインに戻します。
  8. すべて問題がなければ、古いバージョンのノードをアップグレードし、完了したらバランサに戻してください。

必要なノードの数は、サイトの規模によって異なります。これは幾分更新のためのより妄想的な方法であることに注意してください。

+0

あなたの返事をありがとう。最初の3点について1つの質問。アプリケーションによって使用されていないものが更新された場合は、アップグレードしないでください。セキュリティ修正が後でリリースされたときに、どのように処理しますか? 10ステップをアップグレードする必要がありますか? – opHASnoNAME

+0

@ArneRie 10のリリースがタイムラインとして賢明に構成されていることを知らずに言うのは難しいです。インクリメンタルなアップデートが必要だと思われますが、代わりに完全なアップデートを行っているので、上記の手順が1ラウンドになります。増分を行うことはできますが、完全なアップグレードと潜在的な問題の修正を行うだけの時間はかかりません。互換性に関するもう一つのヒントは、PHPのリストに従ってください。それは、彼らが警告の良い量なしで互換性ブレークフィックスを落とすことは非常に珍しい状況です。 –

関連する問題