亚洲全黄无码一级在线看_国产剧情久久久性色_无码av一区二区三区无码_亚洲成a×人片在线观看

當(dāng)前位置: 首頁 > 科技新聞 >

實現(xiàn)一套灰度發(fā)布系統(tǒng)需要考慮哪些問題?

時間:2020-06-19 17:33來源:網(wǎng)絡(luò)整理 瀏覽:
要了解一個灰度發(fā)布系統(tǒng)的功能,個人覺得有必要先了解灰度發(fā)布的概念定義和灰度發(fā)布流程,從概念和流程中明確灰度的目的并梳理出流程中系統(tǒng)工具可以支

要了解一個灰度發(fā)布系統(tǒng)的功能,個人覺得有必要先了解灰度發(fā)布的概念定義和灰度發(fā)布流程,從概念和流程中明確灰度的目的并梳理出流程中系統(tǒng)工具可以支撐的地方,那么實現(xiàn)一套發(fā)布系統(tǒng)需要考慮的地方也就清楚了?;叶劝l(fā)布的目的首先是為了應(yīng)用從老版本升級到新版本的時候能做到平滑升級,升級過程中通常會先按照一定發(fā)布策略選取部分用戶流量,先行請求新版本的應(yīng)用,通過收集這部分用戶對新版本應(yīng)用的反饋,以及新版本應(yīng)用實例本身的日志、性能、穩(wěn)定性等指標(biāo)來評審新版應(yīng)用。根據(jù)評審情況,決定是否繼續(xù)增加新版本的應(yīng)用實例和流量占比,直至全量升級,或者發(fā)現(xiàn)問題回滾至老版本。對應(yīng)的灰度發(fā)布流程圖如下:

實現(xiàn)一套灰度發(fā)布系統(tǒng)需要考慮哪些問題?

根據(jù)以上的灰度發(fā)布的概念和流程定義,一套灰度發(fā)布系統(tǒng)需要我們考慮的問題也就一目了然。

1. 發(fā)布策略定制

新版本應(yīng)用的部署在灰度發(fā)布流程中往往會分多個階段,并逐漸增加實例數(shù),例如一次灰度發(fā)布一共分3個階段,新版本的部署實例數(shù)量會在3個階段中逐漸增加,從10個、50個一直增加到100個。這樣做是為了保證應(yīng)用整體功能的穩(wěn)定運行,在每個階段結(jié)束時我們都可以觀察評審新版本的效果,根據(jù)階段發(fā)布效果來決定是否繼續(xù)增加新版本的實例,或者在發(fā)現(xiàn)問題的時候采取策略回滾。另一方面,為了增加發(fā)布流程的自動化程度,灰度發(fā)布系統(tǒng)會考慮支持在不同階段之間增加自動化執(zhí)行的功能,當(dāng)然用戶也會有階段之間加入人工審核的需求需要灰度發(fā)布平臺支持。因此支持定制多階段發(fā)布策略的功能對灰度發(fā)布系統(tǒng)來說是必要的。

2. 流量配比

在灰度發(fā)布流程中,當(dāng)流量入口的負(fù)載均衡策略是簡單的按實例數(shù)均衡分配的話,那不同應(yīng)用版本處理的流量比就是實例數(shù)量比,但在一定場景下這樣實現(xiàn)就限制了用戶流量配置的使用方式,例如假設(shè)用戶受到資源限制想用較少新版實例來處理較大的流量比例就做不到了?;叶劝l(fā)布平臺還是需要考慮應(yīng)用新舊版本流量配比的功能,這樣結(jié)合上一點中提到的定制發(fā)布策略的功能,用戶能夠?qū)π掳姘姹咎幚淼挠脩袅髁勘葘崿F(xiàn)更加精確的控制。像網(wǎng)易輕舟產(chǎn)品實現(xiàn)的灰度發(fā)布功能,已經(jīng)實現(xiàn)了與服務(wù)網(wǎng)格(service mesh)技術(shù)的協(xié)同,能夠精確控制每個應(yīng)用版本的流量配比。

3. 日志與監(jiān)控

在灰度發(fā)布流程的每個階段,發(fā)布人都需要根據(jù)當(dāng)時新版本的運行情況來決定后續(xù)是繼續(xù)升級流程還是發(fā)現(xiàn)問題直接回滾,而灰度發(fā)布系統(tǒng)就需要為用戶提供盡可能多的判斷指標(biāo)和參考數(shù)據(jù),例如需要支持用戶查看部署實例的運行日志,以及提供CPU、內(nèi)存使用率、網(wǎng)卡流量等監(jiān)控數(shù)據(jù)來為新版應(yīng)用的功能和穩(wěn)定性判斷提供依據(jù)。

4. 快速回滾

對部署系統(tǒng)來說,應(yīng)用的任何一次上線升級都需要具備快速回滾的能力,以便當(dāng)出現(xiàn)問題能夠及時恢復(fù)老的穩(wěn)定版本,控制損失。回滾功能具體要實現(xiàn)新版實例的下線或刪除,老版實例的重新創(chuàng)建,以及流量重新切換到老版本。

5. 告警功能

發(fā)布系統(tǒng)需要對整個發(fā)布流程負(fù)責(zé)。在對接用戶的過程中,本人也碰到過用戶反饋灰度過程新舊版本共存時間較長,希望對未完成的灰度流程給出即時告警的需求,例如一些移動端app的新版本上線后,需要運行一段時間,來調(diào)研獲取用戶對新功能的反饋,這時候發(fā)布系統(tǒng)如果能夠及時提醒用戶當(dāng)前未完成的灰度發(fā)布流程,以及流程中的新舊版本應(yīng)用信息就顯得十分必要了。另一方面,發(fā)布系統(tǒng)也需要及時對監(jiān)控指標(biāo)給出告警,比如由于新版本上線導(dǎo)致的CPU使用率、內(nèi)存使用率上升的情況能夠及時通知發(fā)布人員進行處理。

從網(wǎng)易云多年的devops產(chǎn)品設(shè)計和開發(fā)經(jīng)驗來看,以上五點是一個灰度發(fā)布系統(tǒng)必不可缺的,目前網(wǎng)易輕舟devops產(chǎn)品正是按著這些要求實現(xiàn)了主機和容器的灰度發(fā)布功能,當(dāng)用戶在輕舟平臺上進行灰度發(fā)布的時候,能夠定制發(fā)布時每個階段新老版本實例比例和流量比例,同時控制每個階段結(jié)束時系統(tǒng)自動入下一階段或者人工審核操作的關(guān)鍵節(jié)點,一旦發(fā)現(xiàn)問題,支持用戶快速回滾,同時系統(tǒng)也對接了應(yīng)用日志和監(jiān)控數(shù)據(jù)查看、告警通知、應(yīng)用版本管理、制品管理等功能,實現(xiàn)了應(yīng)用發(fā)布的閉環(huán)管理。


實現(xiàn)一套灰度發(fā)布系統(tǒng)需要考慮哪些問題?

推薦內(nèi)容