1.什么是灰度發布
灰度發布(又名金絲雀發布)是指在黑與白之間,能夠平滑過渡的一種發布方式。在其上可以進行A/B testing,即讓一部分用戶繼續用產品特性A,一部分用戶開始用產品特性B,如果用戶對B沒有什么反對意見,那么逐步擴大范圍,把所有用戶都遷移到B上面來。灰度發布可以保證整體系統的穩定,在初始灰度的時候就可以發現、調整問題,以保證其影響度。
灰度期:灰度發布開始到結束期間的這一段時間,稱為灰度期。
2.為什么要灰度發布
1) 靈活選擇用戶參與產品測試。
2) 規避一定的發布風險,降低產品迭代升級所影響的范圍。
3) 快速獲取用戶的反饋意見,完善產品功能,提升產品質量。
4) 避免停服發布給用戶帶來不便。
5) 具有容災能力:降低全量發布引起的服務器崩潰等風險,逐步發布產品,逐步控制服務器壓力。
3.灰度發布步驟
1)定義目標
2)選定策略:包括用戶規模、發布頻率、功能覆蓋度、回滾策略、運營策略、新舊系統部署策略等
3)篩選用戶:包括用戶特征、用戶數量、用戶常用功能、用戶范圍等
4)部署系統:部署新系統、部署用戶行為分析系統(web analytics)、設定分流規則、運營數據分析、分流規則微調
5)發布總結:用戶行為分析報告、用戶問卷調查、社會化媒體意見收集、形成產品功能改進列表
6)產品完善
7)新一輪灰度發布或完整發布
4.灰度發布注意事項
1) 數據庫變動部分場景無法進行灰度發布
比如,刪除數據庫字段,插入數據計算邏輯變動等
2) 灰度接口作為被調用方
灰度接口作為被調用方,必填參數刪除,返回必填字段刪除等