于海水
摘要:本文,首先分析基于云服務(wù)的Devops知識獲取及應(yīng)用問題,其次闡述其知識管理,最后總結(jié)Devops知識獲取及應(yīng)用需求等,旨在實現(xiàn)對DevOps知識庫的最有效使用。
關(guān)鍵詞:云服務(wù);Devops知識庫;知識獲取
中圖分類號:TP393 文獻標識碼:A 文章編號:1007-9416(2018)09-0032-02
Devops是一組過程、方法與系統(tǒng)的統(tǒng)稱,用于促進IT運維之間的協(xié)同,它可提高開發(fā)生產(chǎn)環(huán)境穩(wěn)定性、安全性。在互聯(lián)網(wǎng)信息技術(shù)快速發(fā)展背景下,用戶對軟件和服務(wù)系統(tǒng)功能提出了更高的要求,而Devops作為一種新興范型是提高系統(tǒng)開發(fā)環(huán)境穩(wěn)定性的關(guān)鍵,下面將深入探討基于云服務(wù)的Devops知識獲取及應(yīng)用,望其能為應(yīng)用與服務(wù)的持續(xù)交付提供有利參考。
1 基于云服務(wù)的Devops知識獲取及應(yīng)用問題分析
在互聯(lián)網(wǎng)信息技術(shù)快速發(fā)展背景下,Devops和云服務(wù)正在不斷更新著。其中,Devops在更新?lián)Q代過程中慢慢開發(fā)出了多種多樣的使用工具,這些工具的使用功能非常相似,面對這些功能相似的Devops使用工具與方法,我們在服務(wù)開發(fā)過程中要注意選擇最為合適的,這是一個難題,影響著Devops自動化效果。在Devops使用過程中會發(fā)現(xiàn),其相關(guān)知識通常是被分散于互聯(lián)網(wǎng)各個網(wǎng)站上,尚未實現(xiàn)對Devops相關(guān)知識的統(tǒng)一化管理,這一問題的出現(xiàn)限制了Devops自動化的實現(xiàn),需積極探索Devops知識管理方法,讓Devops得到有效的利用。
目前,人們在使用開源博客應(yīng)用系統(tǒng)時,通常會采用WordPress這一應(yīng)用系統(tǒng),WordPress作為一種比較流行的應(yīng)用系統(tǒng),它在實際設(shè)計過程中采取了三層架構(gòu)設(shè)計形式,而運維需求主要包括了5.0以上版本MySQL數(shù)據(jù)庫服務(wù)器、5.24以上版本PHP運行環(huán)境和Apache HTTP Server的Web服務(wù)器。但是,為保障WordPress應(yīng)用系統(tǒng)部署和運維的穩(wěn)定性、安全性,需要獲得Devops的支持,Devops是實現(xiàn)上述三個運維需求的關(guān)鍵。而WordPress多層體系架構(gòu)中不同類型中間件組件可在不同可選技術(shù)支持下實現(xiàn)。
2 基于云服務(wù)的Devops知識管理
在應(yīng)用系統(tǒng)運維中,有豐富的Devops知識可供選擇使用,比如Chef cookbook repository等分散在互聯(lián)網(wǎng)上,操作人員在應(yīng)用系統(tǒng)運維過程中可使用這些Devops知識所提供的腳本、模板、鏡像。從Devops知識分散在互聯(lián)網(wǎng)的形式來看,其可分為非結(jié)構(gòu)化數(shù)據(jù)形式和半結(jié)構(gòu)化數(shù)據(jù)形式兩種類型。其中,基于云服務(wù)的非結(jié)構(gòu)化數(shù)據(jù)形式Devops知識獲取行為將面對一些難題,為解決這一種類型Devops知識的自動發(fā)現(xiàn)與獲取難題,操作人員可以人工操作為主抽取Devops工具、文檔等非結(jié)構(gòu)化數(shù)據(jù),用于應(yīng)用系統(tǒng)運維環(huán)境下。在人工方式的非結(jié)構(gòu)化數(shù)據(jù)獲取工作中,又可展開領(lǐng)域?qū)<曳绞?、眾包方式兩種操作方式。前者,已經(jīng)積累了豐富的經(jīng)驗,可在非結(jié)構(gòu)化數(shù)據(jù)獲取中整理出可信度較高的數(shù)據(jù)。后者,可通過Chef、Docker等的使用完成非結(jié)構(gòu)化數(shù)據(jù)收集。
3 基于云服務(wù)的Devops知識庫
3.1 知識分類
在Devops知識具體使用過程中,實現(xiàn)對知識的科學分類有利于知識的系統(tǒng)化管理,方便于開發(fā)人員和運維人員使用知識,快速查詢到自己所需要的知識?;谠品?wù)的Devops知識庫知識分類方法有很多種,本文將詳細闡述一組Devops領(lǐng)域知識的分類,給開發(fā)和運維人員的Devops工具、制品、服務(wù)分類提供一定參考。從現(xiàn)階段來看,在Devops知識庫中知識使用管理過程中常常會遇到中間件、基礎(chǔ)設(shè)施、服務(wù)提供方、Devops自動化工具等幾種不同的知識類型,這幾種類型可作為知識分類的抽象類型。其中,中間件作為Devops知識分類的一種,它主要包括了運行環(huán)境、Web服務(wù)器、數(shù)據(jù)庫、消息服務(wù)多個子類型,而運行環(huán)境又可細分為Java VM和PHP兩種類型。Web服務(wù)器可細分為Apache HTTP Sever子類型。數(shù)據(jù)庫,可細分為關(guān)系數(shù)據(jù)庫等子類型。Devops自動化工具類型多種多樣,它又可分為版本控制、自動化構(gòu)建、持續(xù)集成等多個子類型。其中,用于版本控制的Devops自動化工具有GitHub、GitLab、BitBucket等等,用于自動化構(gòu)建的Devops自動化工具主要有Apache Ant、Maven、Selenium等等,用于持續(xù)集成的Devops自動化工具主要有Jenkins、Capistrano、BuildBot、Fabric等等。開發(fā)和運維人員要做好Devops知識的分類,為實現(xiàn)Devops知識系統(tǒng)化存儲打下良好基礎(chǔ)。
3.2 知識庫原型
在標準的Devops知識分類和Devops知識管理方法支持下,可實現(xiàn)對基于云服務(wù)Devops知識庫原型的設(shè)計。首先,在基于云服務(wù)Devops知識庫原型具體設(shè)計過程中,要采用Node.js完成知識庫構(gòu)造器的科學部署,借助知識庫構(gòu)造器讀取Devops知識庫內(nèi)容,再以分級存儲方式進行Devops知識庫創(chuàng)建。同時,在基于云服務(wù)的Devops知識庫原型設(shè)計中,選擇好知識庫構(gòu)造器,能夠更好的實現(xiàn)對Devops知識的直觀展現(xiàn),提高Devops知識的利用。其次,在基于云服務(wù)的Devops知識庫原型設(shè)計中,要從非結(jié)構(gòu)化數(shù)據(jù)和半結(jié)構(gòu)化數(shù)據(jù)中提取出Amzon、Google、Chef、Juju四種類型知識,將Amzon、Google、Chef、Juju分別存儲到Devops知識庫中,并按照標準的分類方法對這些知識加以關(guān)聯(lián)、標記,便于后續(xù)對知識的使用。其中,在對知識進行具體存儲時,要以單個YAML文件形式完成存儲操作。從現(xiàn)階段來看,一個基于云服務(wù)的Devops知識庫原型設(shè)計要借助4000個中間件類型來實現(xiàn),這4000個中間件類型中一般包括Chef校本、Puppet腳本、Juju charms中間件類型,它們的數(shù)量分別是1430個、2190個、278個,除了這些中間件類型以外,還要有基礎(chǔ)設(shè)施等的支持,只有獲得這些中間件類型才能真正實現(xiàn)Devops知識庫原型設(shè)計目標。為了使Devops知識被運用到更多的場景下,開發(fā)和運維人員應(yīng)注重于系統(tǒng)上設(shè)置知識庫展示器,在知識庫展示器支撐下允許人們通過編程方式使用知識,提高Devops知識使用率,讓Devops知識作用發(fā)揮到最大化。
4 Devops知識獲取及應(yīng)用需求
為了實現(xiàn)對Devops知識庫的查詢,得到滿足Devops需求的方法和工具,對Devops知識獲取及應(yīng)用需求加以描述十分重要。本文,將采用布爾表達式對Devops需求加以描述。布爾表達式對于Devops需求的描述,主要是以謂語邏輯定義和組合描述方法為主。下面就是用布爾表達式描述Devops需求的例子。
ε代表域,謂詞Prequires:ε->{true,false}代表抽象實體和具體實現(xiàn),當賦予這個實體一個布爾值之后,如果它存在一個或者一個以上的子類,那么就代表Prequire值是真的,反之,為false。
在Devops知識庫環(huán)境下,布爾表達式既可以用來描述上述Devops知識應(yīng)用需求,又可以用來描述其他應(yīng)用需求。比如,在基于云服務(wù)的Devops知識庫管理中,可借助布爾表達式描述MySQL必須運行在Ubuntu虛擬機上這個應(yīng)用無關(guān)的約束,還可以闡明對于Devops知識的應(yīng)用不能產(chǎn)生Amazon上任何操作行為,當Amazon操作行為發(fā)生時,Devops知識使用將受到限制。另外,開發(fā)和運維人員為得到滿足Devops需求的工具,還可以銅鼓布爾表達式描述Devops知識使用不允許借助Chef進行部署的附加性條件,明確界定出Devops知識具體使用規(guī)定,避免系統(tǒng)運行環(huán)境下違反Devops需求現(xiàn)象的發(fā)生。
在利用布爾表達式表達Devops附加需求時,有不一樣的表達方法,允許采取自定義附加謂詞進行表達。例如,在利用布爾表達式表達特定實體不允許在任何應(yīng)用棧中包含Amazon 這個需求表達時,可以自定義方式附加謂詞Pexcludes:ε->{true,false}。如此,便可達到附加需求表達目的。
在利用布爾表達式表達Devops需求時,為了取得較好的需求表達效果,也可采取多個謂詞組合的表達形式,這種需求表達方式也可滿足開發(fā)和運維人員透過有關(guān)需求和無關(guān)需求查詢Devops知識庫中知識,得到Devops方法,實現(xiàn)對Devops知識的使用,維護系統(tǒng)安全性、穩(wěn)定性。另外,本文建議在描述Devops知識應(yīng)用需求時,應(yīng)將需求表達式轉(zhuǎn)變?yōu)閃S-Policy標準形式。這樣,既能夠?qū)崿F(xiàn)對表達式的查詢與使用,又可實現(xiàn)各種需求表達的統(tǒng)一,為基于云服務(wù)的Devops知識系統(tǒng)化管理做好充足準備。除了本文所提到的布爾表示以外,系統(tǒng)開發(fā)和運維人員也進入規(guī)則引擎等技術(shù),這些技術(shù)也可用來支撐Devops知識應(yīng)用需求描述。
5 結(jié)語
綜上可知,在軟件自動化管理中,對于Devops的應(yīng)用已經(jīng)普遍起來。經(jīng)過數(shù)次的Devops嘗試與實踐發(fā)現(xiàn),基于云服務(wù)的Devops知識獲取要通過知識庫建立來實現(xiàn),而知識庫的建立要先進行Devops知識分類,再實現(xiàn)Devops的知識庫原型,最后結(jié)合Devops獲取需求,設(shè)計出可行性的Devops知識管理方法,讓其變得更加人性化。
參考文獻
[1]董昕,郭勇,王杰.基于DevOps能力模型的持續(xù)集成方法[J].計算機工程與設(shè)計,2018,39(07):1930-1937.
[2]肖嬋嬋.自動化測試在DevOps體系中的應(yīng)用初探[J].移動通信,2017,41(22):77-83.
[3]孫杰賢.中國銀行:從DevOps實踐到應(yīng)用性能管理[J].中國信息化,2017,20(10):28-29.