生產中發生的問題的絕對首要原因是環境。
您的生產機器配置與開發機器配置的可能性大不相同。例如,您可能正在Windows PC上開發Java應用程序,同時部署到基於Linux的服務器。
嘗試和開發相同的應用程序和庫,這一點很重要,因爲您將在生產環境中進行部署。這裏有一個快速清單:
- 確保開發中使用的JVM版本與生產機器上的完全相同(
java -version
)。
- 確保應用程序服務器(例如Tomcat,Resin)與您在開發中使用的版本相同。
- 確保您使用的數據庫版本與開發中的生產版本相同。
- 確保安裝在生產計算機上的庫(例如數據庫驅動程序)與您在開發中使用的版本相同。
- 確保用戶在生產服務器上具有正確的訪問權限。
當然,你不能總是得到一切 - 很多Linux服務器現在都在64位環境下運行,而標準開發人員機器並不總是這樣(還!)。但是,規則仍然認爲,如果你能夠讓你的環境儘可能地匹配,你會盡量減少這類問題的可能性。
理想情況下,您應該構建一個與生產服務器完全(或儘可能接近)相同環境的臨時服務器(可以是虛擬機,而不是真實服務器)。
如果你能買得起臨時服務器,部署過程應該是這樣的:
- 確保應用程序在開發本地運行,並確保所有單元和功能測試在開發
- 部署傳遞到登臺服務器。確保所有測試都通過。
- 一旦快樂,部署到生產環境
謝謝。這個問題的目的是從經驗豐富的程序員那裏收集他們認爲在生產混亂時可能會出錯的想法,但是開發並沒有線索。 但是,你是絕對正確的。這個問題有很多可能的答案,因爲它是普遍的。 – 2009-08-25 09:52:40