91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 服務器 > 
  • 云計算 > 
  • 微服務中藍綠部署、紅黑部署、AB測試、灰度發布、金絲雀發布、滾動發布的概念與區別是什么

微服務中藍綠部署、紅黑部署、AB測試、灰度發布、金絲雀發布、滾動發布的概念與區別是什么

發布時間:2021-12-30 11:33:56 來源:億速云 閱讀:139 作者:柒染 欄目:云計算

本篇文章給大家分享的是有關微服務中藍綠部署、紅黑部署、AB測試、灰度發布、金絲雀發布、滾動發布的概念與區別是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

在有關微服務、DevOps、Cloud-native、系統部署等的討論中,藍綠部署、A/B 測試、灰度發布、滾動發布、紅黑部署等概念經常被提到,它們有什么區別呢?通過搜索相關資料,做一個簡單的辨析,如下:
一、藍綠部署(Blue/Green Deployment)
過去的 10 年里,很多公司都在使用藍綠部署(發布)來實現熱部署,這種部署方式具有安全、可靠的特點。藍綠部署雖然算不上“ Sliver Bullet”,但確實很實用。
藍綠部署是最常見的一種0 downtime部署的方式,是一種以可預測的方式發布應用的技術,目的是減少發布過程中服務停止的時間。藍綠部署原理上很簡單,就是通過冗余來解決問題。通常生產環境需要兩組配置(藍綠配置),一組是active的生產環境的配置(綠配置),一組是inactive的配置(藍綠配置)。用戶訪問的時候,只會讓用戶訪問active的服務器集群。在綠色環境(active)運行當前生產環境中的應用,也就是舊版本應用version1。當你想要升級到version2 ,在藍色環境(inactive)中進行操作,即部署新版本應用,并進行測試。如果測試沒問題,就可以把負載均衡器/反向代理/路由指向藍色環境了。隨后需要監測新版本應用,也就是version2 是否有故障和異常。如果運行良好,就可以刪除version1 使用的資源。如果運行出現了問題,可以通過負載均衡器指向快速回滾到綠色環境。
藍綠部署的優點:
這種方式的好處在你可以始終很放心的去部署inactive環境,如果出錯并不影響生產環境的服務,如果切換后出現問題,也可以在非常短的時間內把再做一次切換,就完成了回滾。而且同時在線的只有一個版本。藍綠部署無需停機,并且風險較小。
(1) 部署版本1的應用(一開始的狀態),所有外部請求的流量都打到這個版本上。
(2) 部署版本2的應用,版本2的代碼與版本1不同(新功能、Bug修復等)。
(3) 將流量從版本1切換到版本2。
(4) 如版本2測試正常,就刪除版本1正在使用的資源(例如實例),從此正式用版本2。
從過程不難發現,在部署的過程中,應用始終在線。并且,新版本上線的過程中,并沒有修改老版本的任何內容,在部署期間,老版本的狀態不受影響。這樣風險很小,并且,只要老版本的資源不被刪除,理論上,可以在任何時間回滾到老版本。
藍綠部署的弱點:
使用藍綠部署需要注意的一些細節包括:
1、當切換到藍色環境時,需要妥當處理未完成的業務和新的業務。如果數據庫后端無法處理,會是一個比較麻煩的問題。
2、有可能會出現需要同時處理“微服務架構應用”和“傳統架構應用”的情況,如果在藍綠部署中協調不好這兩者,還是有可能導致服務停止;
3、需要提前考慮數據庫與應用部署同步遷移/回滾的問題。
4、藍綠部署需要有基礎設施支持。
5、在非隔離基礎架構( VM 、 Docker 等)上執行藍綠部署,藍色環境和綠色環境有被摧毀的風險。
6、另外,這種方式不好的地方還在于冗余產生的額外維護、配置的成本,以及服務器本身運行的開銷。
藍綠部署適用的場景:
1、不停止老版本,額外搞一套新版本,等測試發現新版本OK后,刪除老版本。
2、藍綠發布是一種用于升級與更新的發布策略,部署的最小維度是容器,而發布的最小維度是應用。
3、藍綠發布對于增量升級有比較好的支持,但是對于涉及數據表結構變更等等不可逆轉的升級,并不完全合適用藍綠發布來實現,需要結合一些業務的邏輯以及數據遷移與回滾的策略才可以完全滿足需求。

A/B 測試(A/B Testing)
A/B 測試跟藍綠部署完全是兩碼事。A/B 測試是用來測試應用功能表現的方法,例如可用性、受歡迎程度、可見性等等。 藍綠部署的目的是安全穩定地發布新版本應用,并在必要時回滾。
A/B 測試與藍綠部署的區別在于, A/B 測試目的在于通過科學的實驗設計、采樣樣本代表性、流量分割與小流量測試等方式來獲得具有代表性的實驗結論,并確信該結論在推廣到全部流量可信。
A/B 測試和藍綠部署可以同時使用。

灰度發布/金絲雀發布
灰度發布是指在黑與白之間,能夠平滑過渡的一種發布方式。灰度發布是增量發布的一種類型,灰度發布是在原有版本可用的情況下,同時部署一個新版本應用作為“金絲雀”(金絲雀對瓦斯極敏感,礦井工人攜帶金絲雀,以便及時發發現危險),測試新版本的性能和表現,以保障整體系統穩定的情況下,盡早發現、調整問題。
灰度發布/金絲雀發布由以下幾個步驟組成:
1、準備好部署各個階段的工件,包括:構建工件,測試腳本,配置文件和部署清單文件。
2、從負載均衡列表中移除掉“金絲雀”服務器。
3、升級“金絲雀”應用(排掉原有流量并進行部署)。
4、對應用進行自動化測試。
5、將“金絲雀”服務器重新添加到負載均衡列表中(連通性和健康檢查)。
6、如果“金絲雀”在線使用測試成功,升級剩余的其他服務器。(否則就回滾)
灰度發布可以保證整體系統的穩定,在初始灰度的時候就可以發現、調整問題,以保證其影響度。
灰度發布/金絲雀部署適用的場景:
1、不停止老版本,額外搞一套新版本,不同版本應用共存。
2、灰度發布中,常常按照用戶設置路由權重,例如90%的用戶維持使用老版本,10%的用戶嘗鮮新版本。
3、經常與A/B測試一起使用,用于測試選擇多種方案。AB test就是一種灰度發布方式,讓一部分用戶繼續用A,一部分用戶開始用B,如果用戶對B沒有什么反對意見,那么逐步擴大范圍,把所有用戶都遷移到B上面來。
趣聞 :
金絲雀部署(同理還有金絲雀測試),“金絲雀”的由來:17世紀,英國礦井工人發現,金絲雀對瓦斯這種氣體十分敏感。空氣中哪怕有極其微量的瓦斯,金絲雀也會停止歌唱;而當瓦斯含量超過一定限度時,雖然魯鈍的人類毫無察覺,金絲雀卻早已毒發身亡。當時在采礦設備相對簡陋的條件下,工人們每次下井都會帶上一只金絲雀作為“瓦斯檢測指標”,以便在危險狀況下緊急撤離。

滾動發布(rolling update)
滾動發布,一般是取出一個或者多個服務器停止服務,執行更新,并重新將其投入使用。周而復始,直到集群中所有的實例都更新成新版本。這種部署方式相對于藍綠部署,更加節約資源——它不需要運行兩個集群、兩倍的實例數。我們可以部分部署,例如每次只取出集群的20%進行升級。
這種方式也有很多缺點,例如:
(1) 沒有一個確定OK的環境。使用藍綠部署,我們能夠清晰地知道老版本是OK的,而使用滾動發布,我們無法確定。
(2) 修改了現有的環境。
(3) 如果需要回滾,很困難。舉個例子,在某一次發布中,我們需要更新100個實例,每次更新10個實例,每次部署需要5分鐘。當滾動發布到第80個實例時,發現了問題,需要回滾。此時,脾氣不好的程序猿很可能想掀桌子,因為回滾是一個痛苦,并且漫長的過程。
(4) 有的時候,我們還可能對系統進行動態伸縮,如果部署期間,系統自動擴容/縮容了,我們還需判斷到底哪個節點使用的是哪個代碼。盡管有一些自動化的運維工具,但是依然令人心驚膽戰。
并不是說滾動發布不好,滾動發布也有它非常合適的場景。

紅黑部署(Red-Black Deployment)
這是Netflix采用的部署手段,Netflix的主要基礎設施是在AWS上,所以它利用AWS的特性,在部署新的版本時,通過AutoScaling Group用包含新版本應用的AMI的LaunchConfiguration創建新的服務器。測試不通過,找到問題原因后,直接干掉新生成的服務器以及Autoscaling Group就可以,測試通過,則將ELB指向新的服務器集群,然后銷毀掉舊的服務器集群以及AutoScaling Group。
紅黑部署的好處是服務始終在線,同時采用不可變部署的方式,也不像藍綠部署一樣得保持冗余的服務始終在線。

以上就是微服務中藍綠部署、紅黑部署、AB測試、灰度發布、金絲雀發布、滾動發布的概念與區別是什么,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

盐城市| 廉江市| 靖宇县| 惠来县| 罗甸县| 万盛区| 巴彦县| 安宁市| 重庆市| 舟曲县| 原平市| 西充县| 宜兰市| 许昌县| 兴隆县| 益阳市| 临潭县| 九龙城区| 南雄市| 西宁市| 五原县| 常山县| 新巴尔虎右旗| 政和县| 来安县| 南汇区| 盱眙县| 安吉县| 柏乡县| 同德县| 会昌县| 安平县| 信宜市| 七台河市| 宿州市| 太谷县| 舞钢市| 涿州市| 咸宁市| 温宿县| 松江区|