今天早上,有同事問我部署的問題,說hotfix應該如何部署?在我的博文《業主說我們專案經理上線很隨意,「愛發就發」!》一文中,我已經做了介紹,建議讀者先讀一下該博文,但是可能我沒有針對性地將hotfix應該如何部署。
如何部署hotfix呢?首先我們要了解生產環境的版本,假定複雜一點的環境如下:
生產環境版本: 4.7
培訓試執行環境版本:5.0
測試環境版本: 5.1
開發環境版本: 5.2以上
其處理過程如下,根據以下的步驟進行處理,可以有效地減少部署hotfix產生的問題,當然比起一些同事簡單xcopy部署,確實要花費更多的時間,但是卻能換來信心和效果。
生產環境中:發放故障公告,針對問題進行公告,告知出現故障,以及故障的影響,致歉,如有可行代替方案,知會終端使用者;
開發環境中:從配置管理庫中,取出4.7版本的**、資料庫腳步以及初始資料;即便是開發人員告訴你本機就是4.7版本,也需重新從配置庫中取出;
開發環境中:重現所要解決的bug;根據實際情況,可能需要從生產環境中恢復部分的樣本資料;
開發環境中:不管是否能夠重現情況,都必須對bug進行確認,對導致的問題進行分析;
開發環境中:分析出原因後,進行impact analyze(衝突分析);
生產環境中:發放部署公告,針對問題進行公告,告知原因以及預計處理的時間,致歉;
開發環境中:進行**修復、配置修復;
開發環境中:明確hotfix列表,包括webpage、資料庫trigger/procedure的code,還有依賴的元件(jar或者assembly),配置資訊等各項內容;
開發環境中:整理成hotfix列表內容的更新次序以及更新方式;(其實就是安裝程式的需求,先做什麼,再做什麼)
測試環境中:重建4.7版本的執行環境,包括前台程式,資料庫以及後台服務;
測試環境中:檢查現有問題是否已經被修復;如果問題未被證明修復,重新回到第5步,並且進行部署公告的更新;
測試環境中:從生產環境中恢復部分樣本資料來確認是否修復了錯誤;如果問題未被證明修復,重新回到第5步,並且進行部署公告的更新;
生產環境中:備份工作,包括程式二進位制以及資料內容,以便發生錯誤時回滾;
生產環境中:部署前預備,限制生產系統的訪問,避免在hotfix的同事,其他使用者使用導致問題;
生產環境中:根據在測試環境中,根據11步驟驗證的hotfix內容在生產系統中部署;
生產環境中:檢查現有問題是否已經被修復;如果有問題,證明定位有問題,需要恢復原有生產環境,包括前台、後台服務以及資料庫環境,跳過18步;
生產環境中:如果沒有問題,檢驗過程中產生的dirty資料需要進行恢復,可以採用人工的方式恢復影響的資料,也可以採用之前的資料庫備份方法恢復生產資料;
生產環境中:根據生產系統的部署情況,發放部署解除公告;解除生產系統訪問控制;確認一段時間的正常執行,保證部署的結果!
開發環境中:如果成功部署,在配置管理庫中標記hotfix;
開發環境中:確認被修訂的問題是否在新版本已經被修復,確定影響的版本,如果新版本也存在此問題,則需要將修訂4.7的問題、code和配置等合併到5.2目前的開發版本。
讀者,對於部署hotfix是否有意見和看法,歡迎提出。
django生產環境部署
最近嘗試進行一些python web生產環境部署的任務。主要是使用django框架進行web開發。本地使用windows python3.7可是上到伺服器之後是ubuntu系統。ubuntu預設是python2和python3.5兩者都不符合現在的python開發版本。筆者嘗試進行了部署。一般來說,...
django生產環境部署
最近嘗試進行一些python web生產環境部署的任務。主要是使用django框架進行web開發。本地使用windows python3.7可是上到伺服器之後是ubuntu系統。ubuntu預設是python2和python3.5兩者都不符合現在的python開發版本。筆者嘗試進行了部署。一般來說,...
雲環境部署django uwsgi 生產環境
1.確保有乙個能夠用runserver正常啟動的django專案 2.專案已上傳到linux 3.linux上已部署好python環境,且已安裝好專案所需的模組 pip3 install uwsgi 1 在django專案同級目錄建立script目錄,用於存放配置指令碼等等 root hecs x ...