亚洲农村老熟妇肥BBBB_无码人妻精品一区二区蜜桃色_精品亚洲AⅤ无码午夜在线观看_中文字幕熟妇人妻在线视频_囯产色无码精品视频免费

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

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

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

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

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

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

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

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

2. 流量配比

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

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

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

4. 快速回滾

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

5. 告警功能

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

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


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

推薦內(nèi)容