首先,我們要弄清楚軟件的發布流程,功能發布是直接通過代碼打包的形式發布還是通過獲取git分支代碼的方式發布,如果是通過打包的形式發布,那可以不用預發布環境,因為測試和線上用的都是同一個代碼包;如果用的是直接發布git倉庫的代碼,那么就必須要增加預發布環境了;
先了解不通代碼分支的作用:
Dev:開發分支,開發人員開發和自測的代碼分支
Test:測試分支,開發人員開發完轉測功能合並代碼的分支
release:預發布分支:測試環境測試通過后,開發人員將代碼合並的分支,測試通過后,運營會將此分支代碼發布到線上環境;
master:上線通過后,把這個迭代功能的代碼合並的分支,新開發功能再從master分支上拉代碼進行新的開發;
預發布環境的作用:
預發布環境是正式發布前最后一次測試。因為在少數情況下即使預發布通過了,都不能保證正式生產環境可以100%不出問題;
預發布環境的配置,數據庫等都是跟線上一樣;有些公司的預發布環境數據庫是連接線上環境,有些公司預發布環境是單獨的數據庫;
如果不設預發布環境,如果開發合並代碼有問題,會直接將問題發布到線上,增加維護的成本;
開發環境、測試環境、預發布環境、生產環境的區別
一個軟件產品從開發到用戶使用都涉及哪些環境?
開發環境、測試環境、回歸環境、預發布環境、生產環境。
下面說說我個人對這些環境的理解:
1、開發環境
顧名思義,開發同學開發時使用的環境,每位開發同學在自己的dev分支上干活,提測前或者開發到一定程度,各位同學會合並代碼,進行聯調。
2、測試環境
也就是我們測試同學干活的環境啦,一般會由測試同學自己來部署,然后在此環境進行測試。bug修復后,需要發版更新測試環境來回歸bug。
3、回歸環境
回歸bug的環境,其實就是我們的測試環境,在測試環境上測試、回歸驗證bug。
4、預發布環境
測試環境到生產環境的過渡。測試環境可能會受到一些限制,一些流程或者數據沒有測試到,就可以在預發布環境進行驗證,從而保證產品上線質量。
預發布環境和生產環境區別:
1)預發環境中新功能為最新代碼,其他功能代碼和生產環境一致。
2)預發環境和生產環境的訪問域名不同。
注意事項:
1)預發布環境一般會連接生產環境的數據庫,測試時要注意,以免產生臟數據,影響生產環境的使用。
5、生產環境
即線上環境,用戶使用的環境。由特定人員來維護,一般人沒有權限去修改。
另外,還有個灰度發布,發生在預發布環境之后,生產環境之前。
生產環境一般會部署在多台機器上,以防某台機器出現故障,這樣其他機器可以繼續運行,不影響用戶使用。灰度發布會發布到其中的幾台機器上,驗證新功能是否正常。如果失敗,只需回滾這幾台機器即可。
預發布一般跟正式環境差不多