加快云原生技術(shù)轉(zhuǎn)型, 智能調(diào)度登陸華為云DevOps: 增速,節(jié)源
1. 背景
隨著云計(jì)算、微服務(wù)、容器等技術(shù)的蓬勃發(fā)展,以及云原生的敏捷,適應(yīng)性強(qiáng),易監(jiān)視,云原生技術(shù)的落地成為了各團(tuán)隊(duì)重點(diǎn)關(guān)注和亟待解決的問(wèn)題。DevOps作為一站式平臺(tái),將云原生開發(fā)模式融合到產(chǎn)品中,為廣大開發(fā)者提供好用易用的云原生研發(fā)管理解決方案。開箱即用的敏捷項(xiàng)目管理、代碼管理、自動(dòng)化測(cè)試管理,CICD流水線等功能,讓開發(fā)、測(cè)試、部署全流程與云原生底座平臺(tái)無(wú)縫結(jié)合,進(jìn)一步降低開發(fā)者上手云原生技術(shù)的門檻,加快云原生技術(shù)轉(zhuǎn)型,大幅提升軟件生產(chǎn)效率。DevOps各環(huán)節(jié)如下圖所示:
2. 云化DevOps面臨的痛點(diǎn)問(wèn)題:
1)高峰任務(wù)突增,威脅系統(tǒng)可靠性
整點(diǎn)定時(shí)任務(wù)突增,排隊(duì)數(shù)量過(guò)萬(wàn),容易導(dǎo)致任務(wù)超時(shí)失敗,同時(shí)威脅代碼倉(cāng)、構(gòu)建系統(tǒng)、包倉(cāng)庫(kù)及測(cè)試系統(tǒng)可靠性。
2)資源平均空閑時(shí)間長(zhǎng),利用率整體偏低
① ?資源池平均利用率低,抽樣統(tǒng)計(jì)CPU利用率低, RAM利用率低。
② ?虛擬機(jī)數(shù)目以峰值任務(wù)做靜態(tài)配備,未按需做動(dòng)態(tài)調(diào)整,容易導(dǎo)致大量機(jī)器在非峰值時(shí)段空閑。
③ ?任務(wù)調(diào)度未充分利用虛擬機(jī)CPU、RAM等實(shí)時(shí)信息與任務(wù)實(shí)時(shí)信息,導(dǎo)致機(jī)器利用率低。
3. 云化DevOps資源調(diào)度各環(huán)節(jié)場(chǎng)景分析及解決方案
場(chǎng)景一:代碼托管服務(wù)資源調(diào)度
問(wèn)題描述:分布式版本控制代碼倉(cāng)服務(wù)將大大提高開發(fā)者協(xié)同開發(fā),支撐項(xiàng)目代碼托管,支撐大規(guī)模并發(fā)作業(yè),千人團(tuán)隊(duì)協(xié)作,億級(jí)代碼下載,支撐大規(guī)模團(tuán)隊(duì)寫協(xié)同作業(yè),高并發(fā)MR代碼提交,其中高并發(fā),負(fù)載不均等問(wèn)題將會(huì)對(duì)系統(tǒng)穩(wěn)定性造成致命的影響。
解決方案:副本均衡,分布策略,提高下載速率
代碼倉(cāng)彈性調(diào)度,根據(jù)用戶流量建立模型進(jìn)行提前動(dòng)態(tài)副本注入,綜合考慮IO,CPU負(fù)載,并發(fā),磁盤大小等多因素,探究目標(biāo)因子與優(yōu)化目標(biāo)的關(guān)聯(lián)性(倉(cāng)庫(kù)大小、并發(fā)下載對(duì)機(jī)器性能的影響)及有限空間裝箱問(wèn)題(磁盤空間有限),改善負(fù)載均衡、安全性、性能和管理,以提供快速、不間斷的應(yīng)用訪問(wèn)。如下圖所示:
與此同時(shí),為提升系統(tǒng)穩(wěn)定性,減少系統(tǒng)GC對(duì)用戶行為造成的沖突影響,我們開發(fā)了基于智能GC時(shí)間段推薦系統(tǒng),如下圖所示,在合理時(shí)間段進(jìn)行GC,減少系統(tǒng)GC對(duì)用戶操作造成的沖突,提升系統(tǒng)穩(wěn)定性,有效減少?zèng)_突率。
場(chǎng)景二:代碼檢查,編譯構(gòu)建服務(wù)資源調(diào)度
問(wèn)題描述:虛擬機(jī)數(shù)目以峰值任務(wù)做靜態(tài)配備,容易導(dǎo)致大量機(jī)器在非峰值時(shí)段空閑,任務(wù)調(diào)度未充分利用虛擬機(jī)CPU、RAM等實(shí)時(shí)信息與任務(wù)實(shí)時(shí)信息,導(dǎo)致機(jī)器利用率低, 虛擬機(jī)數(shù)目配置較低又容易造成任務(wù)排隊(duì)數(shù)過(guò)多,嚴(yán)重影響用戶體驗(yàn)。為此我們提出了共享資源池的彈性伸縮調(diào)度服務(wù)。
解決方案一: 虛擬機(jī)環(huán)境下資源池共享的彈性調(diào)度
通過(guò)彈性伸縮調(diào)控資源水位和任務(wù)智能調(diào)度實(shí)時(shí)最優(yōu)化調(diào)整資源消費(fèi),閑時(shí)將資源釋放到共享資源池,忙時(shí)從資源池中進(jìn)行資源擴(kuò)充,提升構(gòu)建/代碼檢查資源使用效率。如圖所示:
其中采取的彈性伸縮模式:
定時(shí)模式:配置定時(shí)任務(wù),根據(jù)產(chǎn)品線不同配置不同的定時(shí)任務(wù)進(jìn)行彈性擴(kuò)張和縮容
動(dòng)態(tài)模式:根據(jù)實(shí)時(shí)任務(wù)數(shù)及監(jiān)控?cái)?shù)據(jù),進(jìn)行自動(dòng)的資源增加或減少
混合模式:定時(shí)及動(dòng)態(tài)模式兼容,按需按時(shí)分配。
解決方案二:基于容器的智能化預(yù)測(cè)彈性資源調(diào)度
虛擬機(jī)的啟動(dòng)時(shí)間可能是分鐘級(jí)的,而Docker容器創(chuàng)建是秒級(jí)別同時(shí)容器化的環(huán)境隔離,資源控制,文件系統(tǒng),使得更加靈活及輕量級(jí),與此同時(shí)云上資源使用預(yù)測(cè)算法面臨如下挑戰(zhàn):波形的多樣性(平穩(wěn)型、突發(fā)型、隨機(jī)型、條形碼型等),任務(wù)規(guī)格多樣性,業(yè)務(wù)周期不斷變化,周期性不明確。如下圖所示:
通過(guò)挖掘連續(xù)時(shí)間維度上的變化特征,如任務(wù)特征,阻塞情況,CPU使用情況,MEM使用情況等,采用預(yù)測(cè)模型預(yù)測(cè)下一階段需要的資源數(shù),同時(shí)增加模型峰值檢測(cè)能力,應(yīng)峰能力,提前進(jìn)行資源分配,減少阻塞同時(shí),降低資源浪費(fèi)情況,如圖所示:
場(chǎng)景三:部署環(huán)節(jié)版本包資源調(diào)度
問(wèn)題描述:產(chǎn)品軟件包放置地域與多數(shù)開發(fā)者地域不一致會(huì)導(dǎo)致大量廣域網(wǎng)傳輸,占用出口帶寬,造成網(wǎng)絡(luò)擁塞和倉(cāng)庫(kù)性能問(wèn)題。
解決方案一:資源調(diào)度中的流量分析
通過(guò)分析業(yè)務(wù)日志,考慮倉(cāng)庫(kù)負(fù)載、開發(fā)者地域等多種因素來(lái)建模,推薦軟件包最佳地域,節(jié)約帶寬資源,同時(shí)平衡倉(cāng)庫(kù)負(fù)載。如下圖所示,監(jiān)測(cè)某版本包流量主要來(lái)源于上海,經(jīng)過(guò)對(duì)倉(cāng)庫(kù)各因素模型分析,推薦部署地為廊坊,可提升速度XX%。
解決方案二:資源調(diào)度中的經(jīng)典裝箱算法
從云服務(wù)提供商來(lái)說(shuō),降低1%資源碎片 = 成百上千萬(wàn)美元的成本下降, 因此如何提升分配率將大大降低成本,提升競(jìng)爭(zhēng)力,從提升分配率上看,資源調(diào)度中可以應(yīng)用經(jīng)典的裝箱算法,與傳統(tǒng)的裝箱算法相比我們提供了多種約束條件共存的裝箱優(yōu)化算法,解決了單一難以滿足可持續(xù)資源效能優(yōu)化要求,有效提升資源利用率。
4. 小結(jié)
本文對(duì)智能資源調(diào)度服務(wù)在DevOps各環(huán)節(jié)中的應(yīng)用問(wèn)題進(jìn)行了分析并給出了相應(yīng)的解決方案,致力于使用智能算法,實(shí)現(xiàn)“合理調(diào)度資源,最優(yōu)供給”目標(biāo),在提高資源利用率,降低成本,提升軟件生產(chǎn)效率,降低風(fēng)險(xiǎn)等方面起到顯著作用。
PaaS技術(shù)創(chuàng)新Lab隸屬于華為云(華為內(nèi)部當(dāng)前發(fā)展最為迅猛的部門之一,目前國(guó)內(nèi)公有云市場(chǎng)份額第二,全球第五),致力于綜合利用軟件分析、數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)等技術(shù),為軟件研發(fā)人員提供下一代智能研發(fā)工具服務(wù)的核心引擎和智慧大腦。我們將聚焦軟件工程領(lǐng)域硬核能力,不斷構(gòu)筑研發(fā)利器,持續(xù)交付高價(jià)值商業(yè)特性!加入我們,一起開創(chuàng)研發(fā)新“境界”!(招聘接口人:guodongshuo@huawei.com;?huwei18@huawei.com)。
PaaS技術(shù)創(chuàng)新Lab主頁(yè)鏈接:https://www.huaweicloud.com/lab/paas/home.html
好了,今天就聊到這兒吧!別忘了點(diǎn)個(gè)贊,給個(gè)在看和轉(zhuǎn)發(fā),讓更多的人看到,一起學(xué)習(xí),一起進(jìn)步!!
DevOps 云原生 任務(wù)調(diào)度
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。