天天看點

第二十五篇:穩定性之灰階釋出

随着使用者規模逐漸增長、産品的更新頻繁,新版的每次上線,各方都要承受極大的壓力,一旦産品釋出出現事故,可能影響的範圍和損失都比較大,為了解決産品釋出過程中的風險控制,要有部分的使用者參與到新産品中,體驗使用觀測其真實回報,如果沒有使用者的參與,直接面對全量使用者,那麼風險是可想而知的。

灰階釋出

為了控制産品釋出過程中的風險、故有了灰階釋出,百度百科的解釋是這樣的:

灰階釋出是指在黑與白之間,能夠平滑過渡的一種釋出方式,在其上可以進行A/B testing,即讓一部分使用者繼續用産品特性A,一部分使用者開始用産品特性B,如果使用者對B沒有什麼反對意見,那麼逐漸擴大範圍,把所有使用者都遷移到B上面來。灰階釋出可以保證整體系統的穩定,在初始灰階的時候就可以發現、調整問題,以保證其影響度;灰階期:灰階釋出開始到結束期間的這一段時間,稱為灰階期。

灰階釋出也叫金絲雀釋出,起源是,礦井勞工發現,金絲雀對瓦斯氣體很敏感,礦工會在下井之前,先放一隻金絲雀到井中,如果金絲雀不叫了,就代表瓦斯濃度高。

灰階釋出是線上上同時存在新舊兩個版本,根據不同政策,按需配置設定部分流量比例到新的版本,支援流量新舊切換、及切換流量比例,也可支援快速復原,通過觀測這部分使用者使用新版本的狀态狀況資料,漸進式完成新版本的全量上線,最大限度地控制新版本釋出帶來的業務風險,降低故障帶來的影響面。

灰階類型

灰階釋出的類型,通常情況下可分為前端、用戶端、服務端,灰階有個原則就是要能夠保證使用者請求的完整性,例如:要麼該使用者的全部請求有新版本提供服務,要麼由舊版本提供服務,不可能一會舊版本一會新版本,原因是可能存資料依賴問題。

灰階政策

灰階政策是我們要選擇哪些使用者體驗新版本,比較常用的就是按照人劃分,可按照使用者ID、使用者IP、裝置等其他标簽多元度政策,來觀測使用效果,還有其他的方式例如随機配置設定流量百分比、管道等等。

可觀測性

流量染色

  • 邏輯染色:該方式是通過攜帶灰階因子,通過層層調用傳遞的方式進行程式邏輯控制。
  • 實體染色:該方式是按照機器的次元分流。

小結

繼續閱讀