天天看點

靈活開發部署方案 —— 藍綠部署、滾動釋出和灰階釋出藍綠部署滾動釋出灰階釋出

滾動釋出和灰階釋出其實都可以用礦工(使用者)下井(使用的版本)來了解,舊礦井(舊版本)和新礦井(新版本)。滾動釋出就是發現新礦井,直接讓礦工排隊下新礦井,結果瓦斯濃度過高(bug),死傷慘重(版本回退)。灰階釋出就是這些人學雞賊了,發現新礦井後,礦工還是留在舊礦井幹活,下新井的就是金絲雀(按規則負載均衡過來的部分使用者、測試者)。直到确認新礦井沒問題,再讓礦工全部從舊礦井遷移到新礦井

藍綠部署

靈活開發部署方案 —— 藍綠部署、滾動釋出和灰階釋出藍綠部署滾動釋出灰階釋出

藍綠部署。指的是同時運作兩個版本的應用,在進行藍綠部署的時候,并不停止掉老版本,而是直接部署一套新版本,等新版本運作起來後,再将流量切換到新把本上。但是藍綠部署要求在更新過程中同時運作兩套程式,對硬體的要求就是日常所需的兩倍。

滾動釋出

滾 動 發 布 能 夠 解 決 掉 藍 綠 部 署 時 對 硬 件 要 求 增 倍 的 問 題 \color{#FF0000}{滾動釋出能夠解決掉藍綠部署時對硬體要求增倍的問題} 滾動釋出能夠解決掉藍綠部署時對硬體要求增倍的問題

靈活開發部署方案 —— 藍綠部署、滾動釋出和灰階釋出藍綠部署滾動釋出灰階釋出

滾動更新。在更新過程中,并不一下子啟動所有新版本,是先啟動一台新版本,再停止一台老版本,然後再啟動一台新版本,再停止一台老版本,直到更新完成。這樣的話,更新時需要的就是日常伺服器數+1

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

灰階釋出

靈活開發部署方案 —— 藍綠部署、滾動釋出和灰階釋出藍綠部署滾動釋出灰階釋出

灰階釋出開始後,先啟動一個新版本應用,但是并不直接将流量切過來,而是測試人員對新版本進行線上測試,啟動的新版本應用。

若測試沒有問題,可以将少量的使用者流量導入到新版本上,在此期間,還可以不斷調整新舊兩個版本的運作的伺服器副本數量,以使得新版本能夠承受越來越大的流量壓力。直到将100%的流量都切換到新版本上,最後關閉剩下的老版本服務,完成灰階釋出。

脈沖雲實作灰階釋出

脈沖雲的部署管理可以輕松實作上述的帶有流量管理功能的灰階釋出。正常編輯應用資訊後點選儲存,然後脈沖雲會提示直接更新或灰階釋出:

  1. 直接更新就是使用一般的滾動更新
  2. 灰階釋出可以人工幹預更新過程,進行流量控制
  3. 選擇灰階釋出後,呈現灰階釋出控制台。在控制台上可以脫拉滑塊,快速調整新舊版本的運作副本數量。同時也可以按百分比,将流量導入到新版本上。
  4. 此外,通過比對 HTTP Header,指定個别使用者的流量到最新版本上。
  5. 除了比對使用者流量的 HTTP 請求頭,還可以直接指定請求頭中 Cookie 資訊,比對規則支援精确比對、包含、正則、字首和字尾等,甚至還允許反向比對。
  6. 确認新版本運作無誤後,就可以點選 完成更新 按鈕,就會将流量全部切換到新版本上,并且銷毀掉所有老版本應用。如果新版本出了問題,可以點選 取消更新 按鈕,立即将流量切回老版本,并銷毀掉新版本應用

繼續閱讀