本文整理自 GOPS2017.北京站演講《魅族持續(xù)交付平臺建設(shè)》,高效運(yùn)維社區(qū)致力于陪伴您共同成長。
主動應(yīng)對變化和風(fēng)險(xiǎn)是做好運(yùn)維的一個(gè)重要能力,魅族運(yùn)維團(tuán)隊(duì)通過構(gòu)建持續(xù)集成平臺提高應(yīng)對變化的能力,實(shí)現(xiàn)主動應(yīng)對變化提高效益的價(jià)值目標(biāo),向用戶以及產(chǎn)品團(tuán)隊(duì)提供最高效最好的交付體驗(yàn)。通過這段自研歷程希望能給大家?guī)硇┑膯⑹?。運(yùn)維能交付的價(jià)值不是背鍋,填坑和救火。我們能交付更多的價(jià)值,價(jià)值不在別人眼里而在自己手里。
一、互聯(lián)網(wǎng)發(fā)展帶來的運(yùn)維問題1.1 魅族發(fā)展史李恒
2009~2015 就職于金山軟件,任職獵豹移動開發(fā)經(jīng)理。參與金山云云存儲開發(fā)和維護(hù),目前就職于魅族,任運(yùn)維架構(gòu)師,負(fù)責(zé)魅族云平臺虛擬化及基礎(chǔ)設(shè)施監(jiān)控等研發(fā)。
2003年到2008年是互聯(lián)網(wǎng)1.0時(shí)代,2003年魅族成立,當(dāng)時(shí)公司的主營業(yè)務(wù)是MP3,互聯(lián)網(wǎng)業(yè)務(wù)只有官網(wǎng)和BBS。
2009年到2010年是互聯(lián)網(wǎng)2.0時(shí)代,2008年公司推出了領(lǐng)先中國智能時(shí)代,公司從MP3業(yè)務(wù)轉(zhuǎn)型到了手機(jī)業(yè)務(wù),互聯(lián)網(wǎng)作為基礎(chǔ)的支撐服務(wù),有電商BBS和云端服務(wù),這個(gè)時(shí)候有了真正的運(yùn)維和服務(wù)端開發(fā)和主動復(fù)制。
2012年到2013年是互聯(lián)網(wǎng)2.5時(shí)代,MA率先登陸了安卓平臺,互聯(lián)網(wǎng)的主要功能是做手機(jī)的固件的更新以及互聯(lián)網(wǎng)產(chǎn)品的迭代,這個(gè)時(shí)候的互聯(lián)網(wǎng)業(yè)務(wù)有官網(wǎng)電商以及微信微博活動,這個(gè)時(shí)候架構(gòu)就比較復(fù)雜,出現(xiàn)了數(shù)據(jù)庫的分庫分表,存儲使用了MFS,前端的調(diào)度使用了GSB等等,
2014年以后進(jìn)入了互聯(lián)網(wǎng)3.0+時(shí)代,主要的互聯(lián)網(wǎng)業(yè)務(wù)有游戲中心、應(yīng)用中心、多媒體、O2O這些,這里有一個(gè)重要的標(biāo)識就是互聯(lián)網(wǎng)運(yùn)營成為公司的主營業(yè)務(wù)之一,一個(gè)系統(tǒng)兩個(gè)平臺多個(gè)生態(tài),以云平臺和大數(shù)據(jù)為支撐,打造開放共享的生態(tài)。
1.2 時(shí)代變遷帶來的運(yùn)維挑戰(zhàn)互聯(lián)網(wǎng)從1.0到3.0的變遷給我們運(yùn)維帶來了什么?
首先是從質(zhì)量上來說,我們遇到了各種坑,有硬件的、架構(gòu)的、我們的業(yè)務(wù)可用性比較低,監(jiān)控覆蓋率比較低,可能會造成各種監(jiān)控的漏報(bào)誤報(bào),變得監(jiān)控不可用。
監(jiān)控的可信度比較低,我們的流程和自動化沒有很好的結(jié)合起來,成本沒有制訂比較貫穿的流程,導(dǎo)致流程不完善,工作不透明,沒有建立一些容量的體系,就是我們沒有辦法評估業(yè)務(wù)使用的容量怎么樣,使用的資源怎么樣,也沒有辦法對業(yè)務(wù)的一些資源進(jìn)行評估。救火,填坑,背鍋成了常態(tài)。讓人不禁的開始思考運(yùn)維存在的價(jià)值問題以及如何實(shí)現(xiàn)價(jià)值。
那么如何去實(shí)現(xiàn)運(yùn)維的價(jià)值呢?這些價(jià)值如何衡量?我們通過:“質(zhì)量、效率、成本、安全、”這四個(gè)維度來衡量。
質(zhì)量
衡量質(zhì)量的最佳方式是評估可用性,可以評估可用性的指標(biāo)有很多,有直接的也有間接的,直接的我們通過監(jiān)控能獲得,如我們網(wǎng)絡(luò)的可用性,系統(tǒng)的可用性,業(yè)務(wù)程序的可用性等等。間接的可以對標(biāo)相關(guān)的體驗(yàn)性指標(biāo),如速度,另外還有些業(yè)務(wù)性指標(biāo),比如手機(jī)短信的到達(dá)率指標(biāo)。
效率
效率是衡量運(yùn)維平臺功能性的標(biāo)準(zhǔn),如服務(wù)器的交付,線上的變更,以及發(fā)布和擴(kuò)容,另外故障發(fā)現(xiàn),故障定位處理,這些都可以通過韻味的效率來解決。
成本
成本是最終校驗(yàn)運(yùn)維自動化效率的標(biāo)準(zhǔn),面向業(yè)務(wù)的整體調(diào)度和整體的交付能力都需要考慮資源的使用率,評估每個(gè)業(yè)務(wù)使用的資源多少,像服務(wù)器利用率,網(wǎng)絡(luò)利用率,以及人力成本等。是運(yùn)維價(jià)值的直接體現(xiàn)。
安全
安全是互聯(lián)網(wǎng)產(chǎn)品的生命基線,對于安全,應(yīng)該盡早的制訂安全的制度和規(guī)范,并且需要多個(gè)維度來進(jìn)行評估,我們可以從服務(wù)器的維度,數(shù)據(jù)的維度,應(yīng)用的維度來看待安全問題。針對數(shù)據(jù)維度,我們可以對數(shù)據(jù)建立起分級制度,不同的數(shù)據(jù)需要有不同幾倍的訪問策略和管理策略,這些策略包括了像加密訪問,訪問日志脫敏,數(shù)據(jù)權(quán)限隔離,數(shù)據(jù)備份,以及數(shù)據(jù)的加密獲取等等。
圍繞運(yùn)維的四個(gè)業(yè)務(wù)就需要有四個(gè)團(tuán)隊(duì)來支持,比如質(zhì)量由運(yùn)維優(yōu)化團(tuán)隊(duì)負(fù)責(zé),效率由運(yùn)維開發(fā)團(tuán)隊(duì)掌握,基礎(chǔ)運(yùn)維團(tuán)隊(duì)可能就會掌握一些成本的東西,還有安全運(yùn)維相關(guān)的建設(shè),以價(jià)值為導(dǎo)向我們建立了一些系統(tǒng)。
1.3 魅族運(yùn)維平臺介紹二、魅族持續(xù)發(fā)布平臺2.1 發(fā)布平臺演進(jìn)歷程
資源管理系統(tǒng)
首先,魅族運(yùn)維團(tuán)隊(duì)在資源管理系統(tǒng)上建立了業(yè)務(wù)樹,通過KVM和Docker建立了云平臺,組成了以基礎(chǔ)的虛擬化計(jì)算網(wǎng)絡(luò)和存儲構(gòu)成的計(jì)算機(jī)資源管理系統(tǒng)。并通過CMDB進(jìn)行管控。
配置管理系統(tǒng)
配置管理上魅族運(yùn)維團(tuán)隊(duì)建設(shè)了IOS的管理系統(tǒng),CDN的管理系統(tǒng),DNS的管理系統(tǒng),并提供了相應(yīng)的API。
自動化系統(tǒng)
在自動化系統(tǒng)方面,魅族運(yùn)維團(tuán)隊(duì)建設(shè)了工單系統(tǒng)、日志系統(tǒng)、發(fā)布系統(tǒng)、應(yīng)用管理系統(tǒng)、自研運(yùn)維通道、自動巡檢系統(tǒng),幫助運(yùn)維解決了交付和變更以及相關(guān)的效率。
監(jiān)控系統(tǒng)與容量管理
監(jiān)控與容量方面,我們首先建立了基礎(chǔ)監(jiān)控,制訂監(jiān)控業(yè)務(wù)監(jiān)控等一系列監(jiān)控設(shè)施,建立了容量體系,對服務(wù)器的容量和內(nèi)存利用率以及帶寬利用率,機(jī)房的每個(gè)業(yè)務(wù)的帶寬使用的情況怎么樣,這樣就可以精確的衡量每個(gè)業(yè)務(wù)使用了多少資源,資源的利用率如何。
安全系統(tǒng)
在安全維度上魅族運(yùn)維團(tuán)隊(duì)建立了堡壘機(jī),運(yùn)維所有的登陸都會經(jīng)過它,通過堡壘機(jī)進(jìn)行管控和審計(jì)用戶的操作,我們還建設(shè)了WAF系統(tǒng)和漏洞管理系統(tǒng),這個(gè)系統(tǒng)可以主動的發(fā)現(xiàn)和攻擊漏洞,把漏洞轉(zhuǎn)化成我們自有的漏洞管理系統(tǒng)進(jìn)行迭代修復(fù),并且根據(jù)漏洞做積分,對業(yè)務(wù)進(jìn)行考核。
魅族發(fā)布平臺經(jīng)歷了周發(fā)布、日發(fā)布、自助發(fā)布的發(fā)展歷程。最早的發(fā)布肯定是經(jīng)過人肉的發(fā)布,對于當(dāng)時(shí)的情況業(yè)務(wù)只是簡單的進(jìn)行發(fā)布,因?yàn)樗麤]有任何流程的限制,但是當(dāng)業(yè)務(wù)增多的時(shí)候,人肉肯定扛不住了,這個(gè)時(shí)候運(yùn)維發(fā)布平臺自然而然的出現(xiàn)了。
我們前期的架構(gòu)比較簡單,我們對每臺有服務(wù)端的機(jī)器下發(fā)命令和任務(wù),解決了一部分問題。但是它的發(fā)布效率和成功率比較差,可能會做一些誤操作之類的,基于這種情況我們構(gòu)建了一些和發(fā)布相關(guān)的指標(biāo),打通了業(yè)務(wù)的模塊進(jìn)行關(guān)聯(lián),保證提升我們的發(fā)布效率和比較好的容錯性。
為了讓發(fā)布做得更靈活,我們就會把我們發(fā)布的審核權(quán)限下放給各個(gè)業(yè)務(wù),由業(yè)務(wù)的負(fù)責(zé)人進(jìn)行審核,發(fā)布流程就不需要運(yùn)維進(jìn)行參與。
發(fā)布平臺的現(xiàn)狀,我們現(xiàn)在有一些特點(diǎn),比如我們的發(fā)布策略比較多,有自助發(fā)布、組發(fā)布、一鍵重啟、靜態(tài)文件發(fā)布等等,我們支持比較多的類型,比如jetty、task、static等等。右圖的就是比較直觀的展示,首先看我們的發(fā)布成功率,始終保持在98%以上,我們的自助發(fā)布率是逐步上升的,我們是有90%的業(yè)務(wù)迭代發(fā)布是不需要運(yùn)維進(jìn)行操作的。
我們看一下現(xiàn)在整個(gè)的交付流程,分為三個(gè)環(huán)境,比如我們有開發(fā)的環(huán)境,有測試環(huán)境,有生態(tài)環(huán)境,開發(fā)人員拿到需求以后,可能會在本地寫代碼,寫完代碼以后可能會進(jìn)行一些測試,比如說在本地測試或者在服務(wù)器上驗(yàn)證,驗(yàn)證以后觸發(fā)了構(gòu)件,就會在平臺上填寫單,測試人員就會手動或者自動的進(jìn)行發(fā)布,運(yùn)維人員準(zhǔn)備基礎(chǔ)環(huán)境,提供自動部署服務(wù),并進(jìn)行日志收集、報(bào)警監(jiān)控應(yīng)用快速擴(kuò)容。
2.2 發(fā)布平臺交付流程這是一個(gè)微妙的平衡,這種平衡在我們有一套完善的技術(shù)戰(zhàn)和環(huán)境自動化的流程上,我們的團(tuán)隊(duì)技術(shù)框架盡可能的穩(wěn)定,有良好的技術(shù)文檔和技術(shù)積累,團(tuán)隊(duì)成員比較穩(wěn)定的情況下,這是沒有什么問題的,但是如果這個(gè)平衡被打破了,比如有一些流程沒有被遵守,或者說有一些無關(guān)的員工離職,我們的架構(gòu)變化的比較快,這個(gè)時(shí)候整個(gè)平衡就會被打破,變成了交付不可完成。
2.3 交付流程存在的問題看一下我們現(xiàn)有的交付存在什么問題。
2.4追求價(jià)值交付發(fā)布需求
在質(zhì)量上,我們的代碼單元這次有沒有通過,覆蓋率怎么樣,有沒有遺留bug,接口測試覆蓋率怎么樣,能不能通過。
在效率上,自動化部署,自動化測試,自動化構(gòu)建,這些分散在各個(gè)智能部門,沒有和流程打通,這就造成一些浪費(fèi),我們沒有辦法做到精細(xì)化的運(yùn)營,
在成本方面上,就造成我們的溝通成本比較高,交付變得比較復(fù)雜。
在安全方面上,如開發(fā)代碼有沒有安全問題,有沒有進(jìn)行安全測試。
首先在最底層是一些開發(fā)框架,云平臺能保證我們環(huán)境的落地標(biāo)準(zhǔn)化的流程,保證交付所有的系統(tǒng)都是標(biāo)準(zhǔn)化的,在那之上,就是開發(fā)框架,本來就是我們的技術(shù)委員會推廣的各種服務(wù)和框架,保證我們的技術(shù)比較統(tǒng)一,架構(gòu)比較穩(wěn)定,有比較豐富的技術(shù)文檔和技術(shù)沉淀之類。
之后建設(shè)持續(xù)交付的流水線,持續(xù)交付的流水線核心原則就是標(biāo)準(zhǔn)化流程化自動化,里面會定義比較多的流程和規(guī)范,比如開發(fā)代碼質(zhì)量的規(guī)范以及開發(fā)的代碼發(fā)布的一些流程?;谶@個(gè)核心原則,我們建設(shè)了一些子系統(tǒng),比如配置管理的,持續(xù)集成的,環(huán)境自動化的一些集成自動化的東西,能達(dá)到一個(gè)可靠可重復(fù)的持續(xù)發(fā)布的流水線。
可能包括用戶提交測試階段的并行研發(fā),編譯構(gòu)建,單元測試,測試與驗(yàn)證階段的環(huán)境部署,系統(tǒng)測試,以及集成測試,發(fā)布會的生產(chǎn)交付以及生產(chǎn)質(zhì)量相關(guān)的東西,都是在這一個(gè)平臺上進(jìn)行運(yùn)行的,我們還可以建立起來項(xiàng)目管理的一些子系統(tǒng),獲取到開發(fā)的一些效率,開發(fā)的一些其他數(shù)據(jù),一些質(zhì)量的數(shù)據(jù),這個(gè)平臺上會有不同的用戶在使用,比如有開發(fā)測試運(yùn)維,有項(xiàng)目經(jīng)理,能打破各個(gè)團(tuán)隊(duì)的一些職能壁壘,能對得到進(jìn)行相互促進(jìn)的作用。
三、持續(xù)交付平臺演進(jìn)之路3.1 標(biāo)準(zhǔn)化建設(shè)我們運(yùn)維進(jìn)階之路可以分為三個(gè)階段,分別是標(biāo)準(zhǔn)化、自動化、智能化。
第一步,定義標(biāo)準(zhǔn)標(biāo)準(zhǔn)為基礎(chǔ)的,我們看一下我們現(xiàn)在定義的一些標(biāo)準(zhǔn)流程,
第二步,技術(shù)選型
服務(wù)器標(biāo)準(zhǔn)化,有硬件的標(biāo)準(zhǔn)化、軟件的操作系統(tǒng),
日志標(biāo)準(zhǔn)化,如業(yè)務(wù)日志。
監(jiān)控標(biāo)準(zhǔn)化,如技術(shù)監(jiān)控、應(yīng)用監(jiān)控。
技術(shù)棧標(biāo)準(zhǔn)化,如協(xié)議的標(biāo)準(zhǔn)化等
服務(wù)標(biāo)準(zhǔn)化,如通用的中間件和服務(wù)化規(guī)范方面等
自動化測試標(biāo)準(zhǔn)化。測試階段可能比較多,會有單元測試,通過率之類的東西,還有測試的準(zhǔn)入準(zhǔn)出條件,比如準(zhǔn)出會不會有一些bug。
建設(shè)持續(xù)交付流水線的過程中,可能會有很多種做法,一般會講兩種。
第一種,全開源的方案,我們可以用docker做環(huán)境自動化的標(biāo)準(zhǔn)的東西,我們的日志可以使用ES,這種方案可能對我們現(xiàn)有的系統(tǒng)的沖擊比較大,我們要使用一套全新的東西。
第二種,基于現(xiàn)有系統(tǒng)自建。基于我們現(xiàn)有的云平臺加上我們的一些發(fā)布平臺這些東西進(jìn)行規(guī)范和標(biāo)準(zhǔn)。
我們選用自建系統(tǒng)這種方案以后,對我們來說阻力比較大。平臺要對接各種系統(tǒng),這個(gè)系統(tǒng)會分散在各個(gè)職能部門。主要會有亮點(diǎn)問題。
第一,會分散在PMO測試或者運(yùn)維,要推行規(guī)范,讓各個(gè)平臺的各個(gè)職能部門的人去改這些東西,阻力就會比較大。
第二,是各個(gè)平臺的已有的系統(tǒng),可能會有各種不同的規(guī)范。
像我們的運(yùn)維這邊發(fā)布平臺可能都會有規(guī)范,比如說像發(fā)布平臺,每個(gè)機(jī)房有哪些服務(wù)器,服務(wù)器上跑了什么模塊,哪些機(jī)器有生產(chǎn)環(huán)境,我們環(huán)境的自動化也是一樣的,都是基于我們的業(yè)務(wù)處來運(yùn)行。
但是開發(fā)這邊使用的各個(gè)平臺都是全開源的,比如之前使用的jekins都是全開源的,完全就沒有進(jìn)行改造,這個(gè)時(shí)候就會有問題,它里面的名字之類的標(biāo)識完全都是自定義的,想改造確實(shí)是比較麻煩。
第三步,統(tǒng)一入口為了打造持續(xù)交付的平臺,我們的做法就是做一個(gè)統(tǒng)一的入口,例如在jekins構(gòu)建,我們把構(gòu)建的操作移入到我們的持續(xù)交付的平臺上面去。
我們通過調(diào)用jekins api這些,之前我們是做需求管理以及bug跟蹤,這個(gè)時(shí)候我們就可以把需求管理和bug跟蹤錄入到平臺里,像bug管理我們在持續(xù)交付的平臺錄入,這樣我們就能保證收集到我們想要的數(shù)據(jù),我們某一個(gè)需求遺留的bug是多少,修bug的時(shí)候怎么修,保證兩方的沖突比較小。
之后的路徑是怎么樣?這個(gè)平臺會有多種的用戶在使用,可能有開發(fā)人員、測試人員、運(yùn)維人員、項(xiàng)目經(jīng)理之類的,我們會把相關(guān)的一些信息同步過來,把這些人員的信息錄入。
其次是還會記錄某個(gè)項(xiàng)目模塊中它的一些和發(fā)布相關(guān)的信息,比如IT發(fā)布,特的發(fā)布類型是什么,它的git路徑是什么,因?yàn)檫@些東西會和構(gòu)件有關(guān)聯(lián),把這個(gè)東西和我們的服務(wù)器結(jié)合起來。
3.2 自動化建設(shè)第一階段,持續(xù)集成流程梳理首先項(xiàng)目經(jīng)理會提一些需求,錄入進(jìn)來,這個(gè)時(shí)候是一個(gè)需求的階段。
其次,我們的開發(fā)負(fù)責(zé)人會針對這個(gè)需求進(jìn)行評估,進(jìn)行一些分析和預(yù)演之類的,評估出來項(xiàng)目交付的日期,這個(gè)時(shí)候就進(jìn)入開發(fā)階段,這個(gè)時(shí)候我們的開發(fā)就按照需求進(jìn)行,當(dāng)然可能我們的開發(fā)也要遵循我們的開發(fā)規(guī)范,開飯完了以后可能就會提交代碼,就會觸發(fā)編譯構(gòu)件,之后我們會有一些靜態(tài)的掃描。
如果這個(gè)掃描滿足我們之前的測試的標(biāo)準(zhǔn),那么這個(gè)時(shí)候就會進(jìn)入到測試階段,第一部分就會進(jìn)行測試發(fā)布,測試發(fā)布以后就會有一些自動化的測試,里面包括我們進(jìn)行接口相關(guān)的測試,我們進(jìn)行安全的測試,我們進(jìn)行性能方面的測試,甚至可能有一些時(shí)候我們需要進(jìn)行一些手工的驗(yàn)證,如果這個(gè)時(shí)候驗(yàn)證不通過,可能就會開發(fā)以后再修復(fù),如果驗(yàn)證通過我們就可以把這些東西發(fā)到生產(chǎn)階段。
生產(chǎn)階段的時(shí)候,我們會有開發(fā)或者運(yùn)維的人進(jìn)行一些審核,審核完以后我們進(jìn)行灰度發(fā)布,發(fā)布完了以后會驗(yàn)證,用自動化的程序來驗(yàn)證它的安全性是怎么樣,接口通過率怎么樣,這塊結(jié)束以后我們就會進(jìn)行一些生產(chǎn)的發(fā)布。
第二階段,發(fā)布流程梳理從需求到發(fā)布的階段,整個(gè)它的工作流程或者生命周期的管理都會在這一個(gè)平臺上進(jìn)行管控,可以給整個(gè)交付流程會有一個(gè)比較可視化的進(jìn)度管理。
我們單獨(dú)看一下發(fā)布流程。
第一步,環(huán)境監(jiān)測,包括我們發(fā)布的服務(wù)器上相關(guān)的環(huán)境,比如它的用戶* 是不是存在,目錄是不是存在,還有相關(guān)的權(quán)限,
第二步,文件拉取,拉取我們相應(yīng)的包。
第三步,關(guān)閉監(jiān)控,我們都知道發(fā)布的時(shí)候可能會造成短暫的服務(wù)不可用,或者發(fā)布期間不會有誤報(bào),那么我們可能會針對發(fā)布的機(jī)器做一些關(guān)閉監(jiān)控的操作,
第四步,web下線,保證沒有流量進(jìn)來,
第五步,停止服務(wù),保證文件不被訪問占用。
第六步,更新文件,對文件進(jìn)行更新。
第七步,啟動服務(wù),恢復(fù)web服務(wù)。
第八步,健康檢查,根據(jù)健康檢測我們能確定并保證我們的服務(wù)運(yùn)行正常。
第九步,web上線,健康檢測以后我們會把我們的web服務(wù)加入IOS集群上。
第十步,開啟監(jiān)控,最后總的發(fā)布就完成。
最后總的發(fā)布就完成,我們可以選用串行發(fā)布和并行發(fā)布,保證我們發(fā)布的成功率,也能保證我們比較快的發(fā)布效率。
第三階段,確認(rèn)產(chǎn)品研發(fā)模式有了持續(xù)交付平臺就能保證滿足互聯(lián)網(wǎng)研發(fā)的模式,現(xiàn)在我們都會使用一些比較常用的,比如極速的迭代模式,整個(gè)平臺上可以滿足需求和進(jìn)化階段,比如迭代性的需求和進(jìn)化階段,迭代中的開發(fā)測試和發(fā)布,還有迭代后的回顧。
第四階段,價(jià)值數(shù)據(jù)的驅(qū)動和輸出完成了這些以后我們會有價(jià)值數(shù)據(jù)的驅(qū)動和輸出。
首先這里會有幾方面的數(shù)據(jù),在代碼的一些規(guī)范性上面,我們可能會評估有嚴(yán)重問題是多少,阻隔問題有多少。
在代碼的可讀性上,可能會有一些重復(fù)率之類的,還有一些接口和單元測試,我們單元測試的覆蓋率怎么樣,通過率怎么樣。
我們的接口測試的通過率還有一些像性能測試的一些數(shù)據(jù),安全測試的一些數(shù)據(jù),甚至我們的人員構(gòu)建的成功率之類的,還有發(fā)布的一些成功率,還有發(fā)布的效率。
總之我們可以根據(jù)一些代碼的規(guī)范,代碼的可讀性,接口和單元測試以及安全這幾個(gè)方面,可以知道一個(gè)項(xiàng)目它從開始到現(xiàn)在它所有的質(zhì)量數(shù)據(jù)的變化,通過這些質(zhì)量數(shù)據(jù)的驅(qū)動能提升技術(shù)的能力,把系統(tǒng)上線前質(zhì)量是OK的。
當(dāng)然我們還可以根據(jù)這些數(shù)據(jù)來考核我們的相關(guān)得子系統(tǒng)。
四、發(fā)展與展望—向進(jìn)軍智能運(yùn)維回頭看一下我們的進(jìn)階之路,包括了像標(biāo)準(zhǔn)化、自動化、智能化,智能運(yùn)維是根據(jù)收集上來的數(shù)據(jù)進(jìn)行有監(jiān)督或者不監(jiān)督的學(xué)習(xí),從而達(dá)到預(yù)測和分析的目的。
這里我們最常見的就是預(yù)測和分析,比如說我們有基于機(jī)器學(xué)習(xí)的系統(tǒng)優(yōu)化,比如參數(shù)的一些優(yōu)化,當(dāng)然還有一些預(yù)測,比如根據(jù)我們的預(yù)報(bào)的數(shù)據(jù)統(tǒng)計(jì)說我們最近硬盤的換盤率特別多,我們是不是能預(yù)測說我們的數(shù)據(jù)硬盤什么時(shí)候損壞。
其次還有可以根據(jù)我們的一些數(shù)據(jù)進(jìn)行效率上的提升,比如說像故障方面,就是故障的發(fā)現(xiàn),故障定位和故障處理,首先根據(jù)我們收集上來的監(jiān)控?cái)?shù)據(jù),我們基礎(chǔ)監(jiān)控的數(shù)據(jù),還有網(wǎng)絡(luò)監(jiān)控的數(shù)據(jù),應(yīng)用監(jiān)控的數(shù)據(jù),還有業(yè)務(wù)監(jiān)控,甚至還有我們服務(wù)的調(diào)用的數(shù)據(jù),根據(jù)這些數(shù)據(jù)我們會對我們故障的分析故障的發(fā)現(xiàn)和故障的定位做一個(gè)比較有力的支持。
甚至達(dá)到故障預(yù)測,這里可能就會包括一些數(shù)據(jù)中心的故障的預(yù)測,因?yàn)檫@個(gè)東西在當(dāng)時(shí)肯定是全癱瘓了,那么像這種故障能否做到事前的預(yù)測,這就是我們現(xiàn)在要解決或者想進(jìn)一步解決的一些問題。
END
聯(lián)系客服