當前位置:歷史故事大全網 - 歷史上的今天 - 關於灰度釋放的討論

關於灰度釋放的討論

所謂灰度級發布,是壹種可靠的、可持續的軟件發布方式,先將新功能版本的軟件發布到灰度級區域進行可控範圍驗證,如果驗證結果良好則正式發布,或者回滾到灰度級區域取消發布。

灰度發布的核心思想是在不影響軟件系統當前版本可用性的前提下,驗證新版本的功能並發布。

所謂灰色區域,就是在生產環境中創建的與部署待驗證新版本的生產環境版本相同的環境。

對於前端客戶端程序來說,推送並安裝了待驗證的新版客戶端程序的客戶群構成了灰色地帶。

創建壹個灰色區域->;流量控制->;灰色區域驗證->;正式發布/回滾

灰色區域用於驗證新版本的部署和功能。灰色發布的關鍵是將新版本部署到生產環境中,並在驗證後發布。那麽在正式發布之前,如何部署和驗證新版本呢?這其實就是制造灰色地帶的問題,那麽如何制造灰色地帶呢?

典型的做法是首先淘汰在生產環境中運行的集群節點,然後部署壹個新版本來創建壹個灰色區域。在驗證開始之前,禁止將生產流量路由到灰色區域。

選擇群集中失效節點的可能方法有:

1)如果只有壹個集群,可以選擇集群中的少量應用服務節點(就像金絲雀發布選擇金絲雀節點壹樣)。

2)如果有多個集群(例如,跨IDC的多活動系統),您可以選擇其中壹個進行淘汰。

在同壹個生產環境中,部署壹組完全冗余的集群節點,部署壹個新版本,構建壹個灰色區域(類似藍綠發布)。根據冗余集群的提供方式,從物理機、虛擬機到容器,其成本逐漸降低,靈活性逐漸提高。

灰度發布的主要驗證方式是導入真實流量,那麽如何可控的將真實流量引流到創建的灰度區域?

根據路由器/負載平衡器的類型,可以采用不同的排放方法:

使用灰度域名將灰度域名配置指向灰度區域。這種域名引流的方法需要灰色域名接入,增加了域名資源,對外部用戶不壹定適用。

向HTTP請求添加灰度信息的可能方法有:

1)使用不同的URL路徑,例如hello.com.cn/金絲雀/...,缺點是占用urlpath資源。

2)在HTTP頭或URL查詢字符串中添加壹個灰色字段來存儲灰色信息。

3)基於原始HTTP請求的信息和壹定的路由策略,進行灰度引流。例如,基於cookie中的用戶信息,可以基於用戶白名單、用戶區域或其他用戶屬性來實現引流策略。

根據上述方法添加的灰度信息,同時在負責七層路由的負載均衡器上配置基於灰度信息的引流策略,實現引流。

通用灰階需要經過環境適應性、功能、性能和用戶的驗證。

部署的程序能否正常啟動,運行狀態是否穩定;是否使用基礎設施資源(CPU、內存、IO、網絡等。)是正常的;虛擬運行環境(如JVM)是否正常運行等。

通過promethues等基礎設施資源指標監控工具監控響應指標。

通過集成APM工具(如CAT、Zipkin、Pinpoint和Skywalking)來監控和驗證應用程序狀態。

通過冒煙測試驗證程序的基本功能;UAT;用於新功能和缺陷修復;通過導入真實交通數據,驗證了程序的功能。

監控和驗證應用程序/服務開放接口的RT和TPS。

導入真實流量,收集用戶行為數據,分析用戶行為;監控真實用戶流量訪問產生的業務指標等。輿情監測等等。

當驗證結束後,需要正式發布,而正式發布的方式取決於灰色地帶是如何打造的。

如果是canary release的部署模式,首先將官方的生產環境流程策略還原到灰色區域,然後通過滾動的方式無損更新舊版本節點。

如果灰色區域以藍綠色冗余模式構建,則路由配置被修改為將總生產流直接路由到灰色區域,並且灰色區域被轉變為處理生產流的生產環境集群。

當灰度得到驗證,決定取消發布時,需要回滾灰度區域。

Canary部署模式需要回滾灰色節點,恢復正式的流量路由策略。

如果灰色區域采用藍綠冗余模式建設,只需要關閉灰色區域的生產流引流即可。

  • 上一篇:Xi安有多老了?
  • 下一篇:到了唐朝,悟空真的取經了,和玄奘西進路線壹樣。發生了什麽事?
  • copyright 2024歷史故事大全網