2011-05-16 41 views
3

我們公司目前的大討論。如何處理PHP的更新,並使用PHP(Zend Framework)/ JavaScript框架(如JQuery和Dojo)。你如何處理PHP和框架的補丁/更新

你修補每個PHP版本嗎?您是否將每個框架更新部署到生產服務器?我認爲需要花費大量的時間來測試所有的依賴項?或者是火&忘了最佳做法?

很想聽聽你在這個領域的到期!謝謝。

+1

你的單元和功能測試在哪裏?如果你有他們,升級和測試應該是一個兩步過程(升級和運行測試)。 – ircmaxell 2011-05-16 17:04:43

+0

硒和單元測試是你的朋友。 – 2011-05-16 17:07:10

回答

1

首先,最好有一個具有多個服務器的負載均衡器來處理請求。這樣,如果發生部署問題,您可以將其從平衡器上拉下來,讓其他人處理它。

在問候我是否會更新所述框架或PHP,問題歸結爲:

  1. 是否打破兼容性? - 這是最重要的因素。即使對於重要的安全更新,您也必須將代碼放在登臺服務器上並解決所有問題。
  2. 它是一個錯誤修復?錯誤修復是否會影響我正在使用的內容? - 如果我不使用SOAP並且SOAP代碼存在錯誤修正,則通過。現在,如果在處理數組方面存在錯誤,我一定會升級。
  3. 這是一個安全補丁嗎?它會影響我使用的東西嗎? - 同樣的政策在這裏,但我會更快的升級。

現在就如何處理它,我提出以下建議:

  1. 取下負載均衡的節點,請確保先前的源副本可用於長此以往錯誤。
  2. 更新您需要的任何內容,然後將其恢復到負載平衡器,但將其限制爲只有您可以看到的IP地址。
  3. 檢查一切看起來合法。如果出現問題,請將其退回來查看是否可以解決問題,或者是否需要恢復以前的來源。
  4. 如果這是一個可以解決的問題,請解決它,然後返回步驟2.
  5. 接下來,從負載平衡器中關閉另一臺服務器並執行相同的操作。
  6. 做到這一點,直到舊版本節點和新版本節點之間有50/50的差距。
  7. 現在,強制所有用戶的請求去新版本noes,以確保公衆面臨的網站是好的。如果某些內容失敗,則強制舊版節點重新聯機。
  8. 如果一切正常,升級舊版節點並在完成後將它們返回到平衡器。

您需要多少個節點取決於您網站的規模。請注意,這是一種更偏執的更新方法。

+0

感謝您的回覆。關於前3點的一個問題。如果有什麼更新你的應用程序沒有使用的東西,你不要升級。如果以後再有10個安全補丁可用時,你如何處理它?你必須升級10個步驟? – opHASnoNAME 2011-05-17 05:26:57

+0

@ArneRie如果不知道10版本之後的版本是否構成時間線,很難說。看起來你似乎暗示着增量更新,但是我會做一個完整的更新,所以它將是上面的1個步驟。你可以做增量式的,但是花費的時間與完全升級和解決潛在問題相比通常是不值得的。關於兼容性的另一個提示會中斷,請遵循PHP列表。這將是一個非常不尋常的情況,讓他們在沒有大量警告的情況下放棄兼容性中斷修復。 – 2011-05-17 11:14:28