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