來(lái)源:北大青鳥(niǎo)總部 2023年07月06日 08:55
對(duì)于人工智能,我們通過(guò)機(jī)器學(xué)習(xí)、深度學(xué)習(xí)算法已經(jīng)有很了很多了解了。但實(shí)際上,我們還在人工智能的初級(jí)階段,未來(lái)一段時(shí)間內(nèi)可能處于并將長(zhǎng)期處于人工智能初級(jí)階段。在人工智能逐漸“智能”的過(guò)程中,有一種形態(tài)有點(diǎn)意思,那便是知識(shí)圖譜。
這是Google在2012年5月17日提出的新概念,它本質(zhì)上是實(shí)體之間關(guān)系的語(yǔ)義網(wǎng)絡(luò),把信息轉(zhuǎn)化為知識(shí)。日常生活中我們接觸到的信息是外部的客觀事實(shí),比如這里有一只冰淇淋,它現(xiàn)在是凝固狀態(tài),而知識(shí)是對(duì)外部客觀規(guī)律的歸納和總結(jié),比如冰淇淋的保存維度是0度以下,大于0度時(shí)就會(huì)融化。
DevOps,即研發(fā)運(yùn)維,它指的是技術(shù)團(tuán)隊(duì)一種新的軟件研發(fā)管理思想,把團(tuán)隊(duì)開(kāi)發(fā)人員和運(yùn)維人員一體化,將業(yè)務(wù)需求拆分原子化,使用云計(jì)算、微服務(wù)、持續(xù)集成交付工具來(lái)最大化的將業(yè)務(wù)流程自動(dòng)化,對(duì)所有的過(guò)程進(jìn)行記錄和分析,使用數(shù)據(jù)來(lái)精準(zhǔn)營(yíng)銷(xiāo)與決策。
大家覺(jué)得DevOps和人工智能都是技術(shù)領(lǐng)域的兩個(gè)分支,都是賦能業(yè)務(wù)的,兩者之間不會(huì)有什么交集。那你可就錯(cuò)了。人工智能是技術(shù)領(lǐng)域的一個(gè)分支,它適用的范圍非常廣,只要有數(shù)據(jù)的地方它都能發(fā)揮作用,用戶(hù)使用產(chǎn)品產(chǎn)生的數(shù)據(jù),研發(fā)開(kāi)發(fā)產(chǎn)品所產(chǎn)生的數(shù)據(jù),系統(tǒng)內(nèi)部交互的數(shù)據(jù),它都可以做分析。DevOps可以讓人工智能領(lǐng)域的開(kāi)發(fā)人員更好的開(kāi)發(fā),讓業(yè)務(wù)部門(mén)的開(kāi)發(fā)人員更好的利用人工智能領(lǐng)域的數(shù)據(jù),反過(guò)來(lái),人工智能數(shù)據(jù)也可以讓DevOps更好的進(jìn)行,我們就一起來(lái)看看人工智能的分支知識(shí)圖譜如何在DevOps中大展身手吧。
在軟件研發(fā)過(guò)程中,從需求的開(kāi)發(fā)到上線(xiàn)包含很多數(shù)據(jù)。它包含需求評(píng)審確認(rèn)之后的研發(fā)開(kāi)發(fā)工時(shí)、測(cè)試工時(shí)、整個(gè)需求上線(xiàn)時(shí)長(zhǎng);研發(fā)開(kāi)發(fā)過(guò)程中的代碼提交次數(shù)、代碼量;上線(xiàn)過(guò)程中的成功發(fā)布次數(shù)、回滾次數(shù);運(yùn)行產(chǎn)品的數(shù)據(jù)中心、物理機(jī)、虛擬機(jī)、接入交換機(jī)、核心交換機(jī)、路由、部署實(shí)例。通過(guò)一整套數(shù)據(jù)可以搭建軟硬件研發(fā)運(yùn)維知識(shí)圖譜,以全局的視角只是系統(tǒng)內(nèi)各個(gè)應(yīng)用、軟件、硬件、虛擬機(jī)、物理機(jī)的邏輯、調(diào)用關(guān)系、鏈接關(guān)系,幫助研發(fā)人員在遇到問(wèn)題時(shí)更好的找到問(wèn)題、解決問(wèn)題,幫助產(chǎn)品人員在產(chǎn)品開(kāi)發(fā)時(shí)更好的知道風(fēng)險(xiǎn)、解決風(fēng)險(xiǎn)。
研發(fā)運(yùn)維知識(shí)圖譜其實(shí)很好搭建,它的模型其實(shí)是最簡(jiǎn)單的。為什么這么說(shuō)呢?因?yàn)樗臄?shù)據(jù)來(lái)源、數(shù)據(jù)類(lèi)型、數(shù)據(jù)結(jié)構(gòu)、使用用戶(hù)都是固定的,機(jī)器硬件產(chǎn)生的數(shù)據(jù)、系統(tǒng)之間調(diào)用的數(shù)據(jù)、研發(fā)工具軟件產(chǎn)生的數(shù)據(jù)全匯聚到一起,每一個(gè)實(shí)體與實(shí)體之間的關(guān)系也是相對(duì)固定的,比如系統(tǒng)間的調(diào)用關(guān)系、部署集群與業(yè)務(wù)的所屬關(guān)系、數(shù)據(jù)與數(shù)據(jù)的上下游關(guān)系。相對(duì)業(yè)務(wù)所遇到的不同場(chǎng)景的半結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)的收集與處理,實(shí)體之間關(guān)系的甄別、論證、優(yōu)化來(lái)說(shuō),研發(fā)運(yùn)維知識(shí)圖譜真的太簡(jiǎn)單了。
在研發(fā)運(yùn)維知識(shí)圖譜搭建的過(guò)程中,我們可以使用圖數(shù)據(jù)庫(kù)來(lái)進(jìn)行存儲(chǔ)。圖數(shù)據(jù)庫(kù)的模式天然就是和知識(shí)圖譜匹配的,都以實(shí)體為中心,實(shí)體與實(shí)體之間通過(guò)關(guān)系鏈接起來(lái),因此采用圖數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)是最好的選擇。此外圖數(shù)據(jù)庫(kù)在查詢(xún)數(shù)據(jù)、獲取數(shù)據(jù)時(shí)性能也很好,不需要像關(guān)系型數(shù)據(jù)庫(kù)那么復(fù)雜。圖數(shù)據(jù)庫(kù)的擴(kuò)展性也很好,有新的數(shù)據(jù)增加時(shí)就增加新的實(shí)體屬性、關(guān)系屬性就好了,不用像關(guān)系型數(shù)據(jù)庫(kù)那樣還需要增加新的表、新的字段、新的關(guān)聯(lián)關(guān)系。
在研發(fā)運(yùn)維知識(shí)圖譜搭建好了之后,我們就可以基于此建立我們的告警規(guī)則了。在系統(tǒng)數(shù)據(jù)告警中,可以基于告警數(shù)據(jù)的模型訓(xùn)練來(lái)智能建立告警規(guī)則,也可以通過(guò)人為的經(jīng)驗(yàn)值來(lái)設(shè)定告警閾值,不斷的調(diào)整適應(yīng)。通過(guò)人為經(jīng)驗(yàn)值就比較簡(jiǎn)單了,有經(jīng)驗(yàn)的開(kāi)發(fā)同學(xué)他會(huì)根據(jù)所遇到的業(yè)務(wù)規(guī)模、用戶(hù)流量、機(jī)器系統(tǒng)硬件配置、負(fù)載情況來(lái)設(shè)定,比如設(shè)置CPU達(dá)到90%時(shí)觸發(fā)告警,內(nèi)存使用率超過(guò)80%時(shí)告警。通過(guò)數(shù)據(jù)訓(xùn)練告警模型就是一個(gè)比較長(zhǎng)期的事情,我們需要先采集告警數(shù)據(jù),數(shù)據(jù)分類(lèi),歷史發(fā)生過(guò)的告警次數(shù),準(zhǔn)確告警次數(shù)來(lái)學(xué)習(xí)告警、分類(lèi)告警,最后達(dá)到預(yù)測(cè)告警。
智能運(yùn)維的目標(biāo)是實(shí)現(xiàn)告警風(fēng)暴收斂、告警準(zhǔn)確預(yù)測(cè)、告警自動(dòng)恢復(fù)、根因自動(dòng)定位,這也是研發(fā)運(yùn)維中所期待的內(nèi)容。隨著知識(shí)圖譜技術(shù)不斷的發(fā)展,運(yùn)維知識(shí)圖譜的不斷建設(shè)和豐富,告警知識(shí)圖譜的不斷優(yōu)化和完善,人工智能與DevOps必定會(huì)更好的協(xié)同,共同提升開(kāi)發(fā)運(yùn)維人員的工作效率,為企業(yè)降本提效,為用戶(hù)提供更好服務(wù)~