什麼是金絲雀版本?
金絲雀canary版本是一種軟體技術版本,通過使新版本只對少數終端使用者可用,這樣可降低向每個人推出新程式碼和功能的風險。由於使用者組的規模較小,新版本的影響相對較小。如果確定bug存在,或者新的功能或新的設計沒有被很好地接受,那麼很容易回滾。
金絲雀版本,是在現有生產系統旁邊建立了一個全新的獨立生產環境。現有的生產系統是基準。然後,可以將一小部分使用者(或使用者會話)路由到新的canary版本環境以驗證新軟體。由於沒有程式碼釋出到生產環境,因此程式碼也永遠不必退出。相反,整個環境被移除,基準環境繼續正常執行。
除了易於回滾之外,金絲雀版本還可用於軟體版本的A / B分割測試和低風險效能測試。選擇正確的使用者組取決於團隊目標。有時公司會使用內部員工。其他時候,可以基於位置,年齡或一些其他特徵從一般人群中選擇特定的使用者人口統計。無論如何選擇金絲雀使用者組,使用者都可以在執行最新軟體版本的新基礎架構上獨立執行。
一旦證明金絲雀版本穩定並交付預期結果,剩餘的使用者/會話就被路由到新環境,基準環境將離線。但是,基準環境會保留一段時間,以防以後需要回滾。如果金絲雀釋出存在問題,那麼流量金絲雀使用組將被簡單地路由回基準環境。
這項技術以著名的短語“煤礦中的金絲雀”命名,它起源於煤礦工人使用金絲雀作為早期檢測系統來識別有毒氣體的危險程度。類似地,金絲雀釋出是軟體的早期檢測和反饋系統。