藍綠部署、滾動部署、金絲雀(Canary)發布、灰度發布、A/B測試


最近看到Canary發布,一時沒有反應過來是什么,一查才發現就是鼎鼎有名的金絲雀發布,發現經常一起出現的還有灰度發布、藍綠部署、滾動部署、A/B測試,故一起學習一下這幾個概念。

1. 藍綠部署

  • 目的:減少發布時的中斷時間、能夠快速撤回發布
  • 藍綠部署中,一共有兩套系統:一套正在提供服務的系統,標記為“綠色”;另一套是准備發布的系統,標記為“藍色”。兩套系統都是功能完善的,並且正在運行的系統,只是系統版本和對外服務情況不同。
    • 藍色系統作用:用來做發布前測試,測試過程中發現任何問題,可以直接在藍色系統上修改,不干擾用戶正在使用的系統。
    • 藍色系統經過反復的測試、修改、驗證,確定達到上限標准后,直接將用戶切換到藍色系統。
    • 切換后的一段時間,依舊是藍綠兩套系統並行,但是用戶訪問的已經是藍色系統。這段時間內觀察藍色系統(新系統)工作狀態,如果出現問題,直接切回綠色系統。
    • 當確信對外提供服務的藍色系統工作正常,不對外提供服務的綠色系統已經不再需要的時候,藍色系統正式成為對外提供服務系統,成為新的綠色系統。原先的綠色系統可以銷毀,將資源釋放出來,用於部署下一個藍色系統。
  • 藍綠部署只是上線策略中的一種。
  • 藍綠部署能夠簡單快捷實施的前提是目標系統是非常內聚的,如果目標系統相當復雜,那么如何切換、兩套系統的數據是否需要以及如何同步等,都需要仔細考慮。

2. 滾動部署

  • 滾動部署:就是在發布過程並不一下子啟動所有新版本,而是先啟動一台新版本,再停止一台老版本,然后再啟動一台新版本,再停止一台老版本,直到全部發布完成。
  • 滾動部署能夠解決藍綠部署對硬件要求增倍的問題。

3. 金絲雀(Canary)發布

金絲雀發布名稱來源:

17世紀,英國礦井工人發現,金絲雀對瓦斯這種氣體十分敏感。空氣中哪怕有極其微量的瓦斯,金絲雀也會停止歌唱;而當瓦斯含量超過一定限度時,雖然人類毫無察覺,金絲雀卻早已毒發身亡。當時在采礦設備相對簡陋的條件下,工人們每次下井都會帶上一只金絲雀作為“瓦斯檢測指標”,以便在危險狀況下緊急撤離。

  • 金絲雀(Canary)發布也是一種發布策略,即灰度發布。
  • 金絲雀發布指的是在生產環境中分階段逐步更新后端應用的版本(需要具備流量控制能力),在小范圍驗證符合預期之后,再推廣至整個生產環境。
  • 金絲雀發布的好處:可以用真實環境測試新版本,當新版本存在問題時最多只影響部分用戶,且支持安全快速的回滾策略(將路由到新版本上的流量切換到其他老版本機器上即可)。
  • 藍綠部署是准備兩套系統,在兩套系統之間進行切換;金絲雀策略是只有一套系統,逐漸替換這套系統。

4. A/B測試

  • A/B測試和藍綠部署、金絲雀完全是兩回事。
    • 藍綠部署和金絲雀是發布策略,目標是確保新上線的系統穩定,關注的是新系統的BUG、隱患。
    • A/B測試是效果測試,同一時間有多個版本的服務對外服務,這是服務都是經過足夠的測試,達到了上線標准的服務,有差異但是沒有新舊之分。(它們上線的時候可能采用了藍綠部署的方式)
  • A/B測試關注的是不同版本的服務的實際效果,譬如說轉化率、訂單情況等。
  • A/B測試時,線上同時運行多個版本的服務,這些服務通常會有一些體驗上的差異,例如頁面樣式、顏色、操作流程不同。相關人員通過分析各個版本服務的實際效果,選出效果最好的版本。

參考:https://ixyzero.com/blog/archives/4722.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM