陳云暉
摘要:研究針對以往DevOps知識組織、管理不佳及使用效率低等問題,提出了基于云服務(wù)DevOps知識獲取管理方法,首先通過多種方式對一組知識源進(jìn)行獲取、轉(zhuǎn)換、存儲等,并提出了DevOps知識分類方法,設(shè)計了DevOps知識庫原型系統(tǒng),最后分析了基于需求的DevOps知識庫應(yīng)用情況。
關(guān)鍵詞:云服務(wù);Decops知識獲取;知識分類;知識庫原型;需求
中圖分類號:TP393.09 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2020)07-0099-02
1 DevOps知識管理
DevOps是一種軟件開發(fā)策略,將開發(fā)和運營團(tuán)隊整合為一個協(xié)作小組。它通常包括敏捷方法、持續(xù)集成(CI)/持續(xù)交付/(CD)工作流和自動化工具。DevOps的目標(biāo)是盡快交付高質(zhì)量的軟件。DevOps要求團(tuán)隊成員之間進(jìn)行清晰的溝通,并且通常需要從傳統(tǒng)工作流程的角度進(jìn)行重大改變[1]。作為交換,它可以使團(tuán)隊開發(fā)高效、有效、可持續(xù)和安全的工作流程。DevOps的興起及發(fā)展使得互聯(lián)網(wǎng)上DevOps知識呈現(xiàn)出非結(jié)構(gòu)化及半結(jié)構(gòu)化數(shù)據(jù)形式,其信息來源越來越廣泛。與半結(jié)構(gòu)化數(shù)據(jù)相比,非結(jié)構(gòu)化數(shù)據(jù)發(fā)現(xiàn)及獲取自動化實現(xiàn)較為困難,在文檔分類、自然語言處理等方面存在的不準(zhǔn)確的問題。而對文檔、DevOps工具等數(shù)據(jù)進(jìn)行人工抽取、評價,則能夠提高可信度、準(zhǔn)確度。
在應(yīng)用DevOps知識時,首先由運行維護(hù)人員或軟件開發(fā)者結(jié)合實際情況提出相應(yīng)的DevOps需求,為保障需求的實現(xiàn),需要在DevOps知識庫中對可選方法進(jìn)行查詢,需要注意的是DevOps知識庫需要不斷的更新,及時的進(jìn)行DevOps知識信息添加,如中間件組件部署腳本等,該知識庫能夠容納較多的知識規(guī)模,存儲內(nèi)容也在不斷更新中。通常,應(yīng)用系統(tǒng)運行能夠?qū)崿F(xiàn)實時監(jiān)控,以便用戶了解系統(tǒng)運行狀態(tài),及時發(fā)現(xiàn)系統(tǒng)運行存在的問題,并隨時對DevOps需求做出相應(yīng)的調(diào)整[2]。DevOps知識系統(tǒng)中任何一個組件發(fā)生變化,都會引起DevOps需求的變化?;谶@一特點,需要保障DevOps知識管理能夠保持持續(xù)性,可以進(jìn)行迭代式積累,便于組織管理與使用。
2 基于云服務(wù)的DevOps知識庫
2.1 知識分類
云服務(wù)下DevOps知識庫知識分類是實現(xiàn)系統(tǒng)化管理的重要前提前,其不僅是開發(fā)人員、運行維護(hù)人員對使用知識的獲取需求,同時也是查詢所需知識的內(nèi)在要求。在云服務(wù)技術(shù)支持下,DevOps知識庫分類方法也呈現(xiàn)出多樣化特點。此次研究就DevOps知識庫的分類問題進(jìn)行專門闡述,以期為相關(guān)行業(yè)工作者提供參考。從知識類型看,DevOps知識庫使用主要包括中間件、基礎(chǔ)設(shè)施、DevOps自動化工具等,上述幾種知識分類都具有一定的抽象性特征。其中以中間件應(yīng)用最為常見,對中間件進(jìn)行細(xì)分,又包括運行環(huán)境(Java、PHP)、Web環(huán)境(Apache HTTP Sever)、數(shù)據(jù)庫以及消息服務(wù)等子類型,具體見圖1。根據(jù)控制類型可以將DevOps自動化工具分為版本控制、自動化構(gòu)建以及持續(xù)集成等多種類型。目前常用的GitHub、BitBucket等則屬于版本控制自動化工具。Apache Ant、Maven則屬于自動化構(gòu)建DevOps自動化工具。綜上,由于DevOps知識分類多種多樣,一定運維人員及軟件開發(fā)者必須重視DevOps知識分類問題,確保DevOps知識庫系統(tǒng)化存儲的實現(xiàn)。
2.2 知識庫原型
云服務(wù)背景下DevOps知識庫原型的設(shè)計,首先需要建立標(biāo)準(zhǔn)化DevOps知識分類及管理系統(tǒng)。知識分類在2.1已經(jīng)有所闡述,設(shè)計云服務(wù)DevOps知識庫原型時,要借助Node.js對知識庫構(gòu)造器進(jìn)行科學(xué)部署,在知識庫構(gòu)造器作用下對DevOps知識庫內(nèi)容進(jìn)行讀取,然后分級存儲知識庫內(nèi)容,創(chuàng)建DevOps知識庫。DevOps知識庫原型設(shè)計,首先要選擇與之相適應(yīng)的知識庫構(gòu)造器,直觀、形象的顯示出DevOps知識,完成對DevOps知識的高效利用。其次,設(shè)計DevOps知識庫原型時,要借助非結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)對Amzon、Google等類型知識進(jìn)行提取,并將其保存在DevOps知識庫中,采用DevOps知識分類標(biāo)準(zhǔn)使得知識建立關(guān)聯(lián)性,并做好相應(yīng)的標(biāo)記,該操作能夠為后續(xù)對知識的使用提供極大的便利。需要注意的是,在存儲知識數(shù)據(jù)時,應(yīng)采用單個YAML文件形式進(jìn)行操作。一般情況下,云服務(wù)下DevOps知識庫原型設(shè)計得到實現(xiàn)需要由4000個中間件支持,常見的中間件類型包括Chef校本、Puppet腳本等,其中Puppet腳本數(shù)量最多,為2000個左右。除此之外,DevOps知識庫原型的設(shè)計還需要有基礎(chǔ)設(shè)備作為保障,中間件類型是確保DevOps知識庫原型設(shè)計的重要構(gòu)成。最后,運行維護(hù)人員、軟件開發(fā)者應(yīng)在知識庫系統(tǒng)上設(shè)計安裝展示器,以便DevOps知識能夠應(yīng)用于多個場景,發(fā)揮DevOps知識最大效益。
3 DevOps應(yīng)用需求
研究描述了云服務(wù)的DevOps知識獲取及應(yīng)用需求,以確保DevOps知識庫查詢功能的實現(xiàn),獲得能夠滿足DevOps需求的方法。描述DevOps采用的是布爾表達(dá)式,主要包括謂語邏輯定義與組合描述的方式。假設(shè)域采用表示,謂詞采用表示,那么對實體進(jìn)行布爾值賦值后,產(chǎn)生一個或一個以上子類表示為真,若無則表示為錯誤。布爾表達(dá)式不僅能夠用于對Devops知識應(yīng)用需求,而且能夠用于對其他應(yīng)用需求的描述。需要注意的是在對Devops附加需求進(jìn)行表達(dá)時,可以采用自定義附加謂詞的形式進(jìn)行表達(dá),表達(dá)可以采用多個謂詞組合的形式,以維持系統(tǒng)的穩(wěn)定性與安全性。
4 結(jié)語
目前,Devops在軟件自動化管理中的應(yīng)用已經(jīng)成為一種趨勢,實踐證明,在云服務(wù)技術(shù)支持下,Devops知識獲取可以通過知識庫建立得以實現(xiàn),經(jīng)過知識分類及原型的構(gòu)建,結(jié)合獲取需求,設(shè)計具有針對性得到Devops管理方法,具有一定的可行性與實用性。
參考文獻(xiàn)
[1] 丁海斌,崔雋,陸凱.基于Docker的DevOps系統(tǒng)設(shè)計與實現(xiàn)[J].指揮信息系統(tǒng)與技術(shù),2017,8(3):87-92.
[2] 肖嬋嬋.自動化測試在DevOps體系中的應(yīng)用初探[J].移動通信,2017,41(22):77-83.