天天看點

【通俗易懂】藍綠部署、滾動釋出、灰階釋出

在一般情況下,更新伺服器端應用,需要将應用源碼或程式包上傳到伺服器,然後停止掉老版本服務,再啟動新版本。但是這種簡單的釋出方式存在兩個問題,一方面,在新版本更新過程中,服務是暫時中斷的,另一方面,如果新版本有BUG,更新失敗,復原起來也非常麻煩,容易造成更長時間的服務不可用。

為了解決這些問題,人們研究出了多種釋出政策,下面我們一一介紹。

藍綠部署

【通俗易懂】藍綠部署、滾動釋出、灰階釋出

所謂藍綠部署,是指同時運作兩個版本的應用,如上圖所示,藍綠部署的時候,并不停止掉老版本,而是直接部署一套新版本,等新版本運作起來後,再将流量切換到新版本上。但是藍綠部署要求在更新過程中,同時運作兩套程式,對硬體的要求就是日常所需的二倍,比如日常運作時,需要10台伺服器支撐業務,那麼使用藍綠部署,你就需要購置二十台伺服器。

滾動釋出

滾動釋出能夠解決掉藍綠部署時對硬體要求增倍的問題。

【通俗易懂】藍綠部署、滾動釋出、灰階釋出

所謂滾動更新,就是在更新過程中,并不一下子啟動所有新版本,是先啟動一台新版本,再停止一台老版本,然後再啟動一台新版本,再停止一台老版本,直到更新完成,這樣的話,如果日常需要10台伺服器,那麼更新過程中也就隻需要11台就行了。

但是滾動更新有一個問題,在開始滾動更新後,流量會直接流向已經啟動起來的新版本,但是這個時候,新版本是不一定可用的,比如需要進一步的測試才能确認。那麼在滾動更新期間,整個系統就處于非常不穩定的狀态,如果發現了問題,也比較難以确定是新版本還是老版本造成的問題。

為了解決這個問題,我們需要為滾動更新實作流量控制能力。

灰階釋出

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

【通俗易懂】藍綠部署、滾動釋出、灰階釋出