a/b 測試跟藍綠部署完全是兩碼事。
a/b 測試是用來測試應用功能表現的方法,例如可用性、受歡迎程度、可見性等等。 a/b 測試通常用在應用的前端上,不過當然需要後端來支援。
a/b 測試與藍綠部署的區別在於, a/b 測試目的在於通過科學的實驗設計、取樣樣本代表性、流量分割與小流量測試等方式來獲得具有代表性的實驗結論,並確信該結論在推廣到全部流量可信;藍綠部署的目的是安全穩定地發布新版本應用,並在必要時回滾。
a/b 測試和藍綠部署可以同時使用。
1.灰度發布(又名金絲雀發布,金絲雀對瓦斯極敏感,礦井工人攜帶金絲雀,以便及時發發現危險)是指在黑與白之間,能夠平滑過渡的一種發布方式。
在其上可以進行a/b testing,即讓一部分使用者繼續用產品特性a,一部分使用者開始用產品特性b,如果使用者對b沒有什麼反對意見,那麼逐步擴大範圍,把所有使用者都遷移到b上面來。
灰度發布可以保證整體系統的穩定,在初始灰度的時候就可以發現、調整問題,以保證其影響度。
2.灰度期:灰度發布開始到結束期間的這一段時間,稱為灰度期。
3.灰度發布/金絲雀發布由以下幾個步驟組成:
準備好部署各個階段的工件,包括:構建工件,測試指令碼,配置檔案和部署清單檔案。
從負載均衡列表中移除掉「金絲雀」伺服器。
公升級「金絲雀」應用(排掉原有流量並進行部署)。
對應用進行自動化測試。
將「金絲雀」伺服器重新新增到負載均衡列表中(連通性和健康檢查)。
特點:安全、可靠
藍綠部署是一種以可**的方式發布應用的技術,目的是減少發布過程中服務停止的時間。
簡單來說,你需要準備兩個相同的環境(基礎架構),在藍色環境執行當前生產環境中的應用,也就是舊版本應用,
理論上聽起來很棒,但還是要注意一些細節:
當你切換到藍色環境時,需要妥當處理未完成的業務和新的業務。如果你的資料庫後端無法處理,會是乙個比較麻煩的問題;
有可能會出現需要同時處理「微服務架構應用」和「傳統架構應用」的情況,如果在藍綠部署中協調不好這兩者,還是有可能導致服務停止的;
需要提前考慮資料庫與應用部署同步遷移 /回滾的問題;
藍綠部署需要有基礎設施支援
在非隔離基礎架構( vm 、 docker 等)上執行藍綠部署,藍色環境和綠色環境有被摧毀的風險
開發環境 生產環境 測試環境的區別
開發環境 程式設計師專門用於開發的伺服器,配置較隨意,為了開發除錯方便,一般開啟全部錯誤報告和測試工具,是最基礎的環境。開發環境的分支,一般是feature 功能 分支 測試環境 一般是轉殖乙份生產環境的配置,當乙個程式在測試環境工作不正常時,肯定不能把它發布到生產伺服器上的,是開發環境到生產環境的...
ruby中的測試環境生產環境
1.rails.env development 獲得當前的環境 2.rails,env,development?判斷是否是 development 3.rails.env.test?判斷是否為 test 如前所示,rails 物件有乙個 env 屬性,屬性上還可以呼叫各環境對應的布林值方法,例如,r...
開發環境 測試環境 預發布環境 生產環境的區別
開發環境 測試環境 回歸環境 預發布環境 生產環境。下面說說我個人對這些環境的理解 1 開發環境 顧名思義,開發同學開發時使用的環境,每位開發同學在自己的dev分支上幹活,提測前或者開發到一定程度,各位同學會合併 進行聯調。2 測試環境 也就是我們測試同學幹活的環境啦,一般會由測試同學自己來部署,然...