從敏捷開(kāi)發(fā)、敏捷運(yùn)維到敏捷基礎(chǔ)設(shè)施

一、DevOps:

什么是DevOps?WikiPedia上說(shuō):"DevOps是軟件開(kāi)發(fā)、運(yùn)維和質(zhì)量保證三個(gè)部門(mén)之間的溝通、協(xié)作和集成所采用的流程、方法和體系的一個(gè)集合。

142.JPEG

想實(shí)現(xiàn)DevOps相關(guān)解決方案,以下三方面需要關(guān)注:

評(píng)價(jià)和鼓勵(lì)改變文化

改變文化和激勵(lì)系統(tǒng)從來(lái)不是一件易事。但是,如果你不改變企業(yè)文化,兌現(xiàn)DevOps的承諾將非常困難。考察一個(gè)企業(yè)的主導(dǎo)文化時(shí),你需要緊密關(guān)注如何評(píng)價(jià)和判斷企業(yè)業(yè)績(jī)。評(píng)價(jià)的內(nèi)容將影響和刺激行為的發(fā)生。開(kāi)發(fā)-運(yùn)維生命周期中的所有當(dāng)事方需要明白,在更大的企業(yè)流程中自己只是其中一部分。個(gè)體和團(tuán)隊(duì)的成功都要放在整個(gè)開(kāi)發(fā)-運(yùn)維生命周期內(nèi)來(lái)進(jìn)行評(píng)價(jià)。對(duì)于許多機(jī)構(gòu)來(lái)說(shuō),這是一個(gè)轉(zhuǎn)變,不再是孤立的來(lái)進(jìn)行業(yè)績(jī)?cè)u(píng)價(jià),每一個(gè)團(tuán)隊(duì)不再是基于自己的團(tuán)隊(duì)來(lái)評(píng)價(jià)和判斷業(yè)績(jī)好壞。

統(tǒng)一標(biāo)準(zhǔn)化的流程

這是DevOps的一個(gè)重要主題,整個(gè)開(kāi)發(fā)-運(yùn)維生命周期必須被看作一個(gè)端對(duì)端過(guò)流程。流程的不同階段可以采取不同的方法,只要這些流程可以被組合到一起創(chuàng)建一個(gè)統(tǒng)一的流程。與評(píng)價(jià)和激勵(lì)的問(wèn)題相似的是,實(shí)現(xiàn)這個(gè)統(tǒng)一的流程時(shí)每個(gè)組織可能會(huì)有略微不同的需求。

統(tǒng)一的工具

這是大多數(shù)DevOps討論一直在關(guān)注的領(lǐng)域。這一點(diǎn)不令人吃驚,因?yàn)楫?dāng)技術(shù)專家在考慮解決一個(gè)問(wèn)題時(shí),第一反應(yīng)往往就是直接跳轉(zhuǎn)到工具討論上。如果你關(guān)注Puppet、Chef或ControlTier等工具社區(qū),那么你可能已經(jīng)意識(shí)到人們對(duì)在開(kāi)發(fā)和運(yùn)維工具之間建立橋梁的重大關(guān)注?!盎A(chǔ)設(shè)施即代碼(Infrastructure as code)”、“模型驅(qū)動(dòng)自動(dòng)化(model driven automation)”和“持續(xù)性部署(continuous deployment)”都是可以劃歸DevOps旗下的概念

敏捷基礎(chǔ)設(shè)施

敏捷基礎(chǔ)設(shè)施到底是干嘛的呢?能給我們提供什么價(jià)值呢?

那我們先說(shuō)說(shuō)基礎(chǔ)設(shè)施運(yùn)維的階段:

第一階段:純手機(jī)階段。

全部人肉,物理機(jī)安裝軟件,有專門(mén)的運(yùn)維團(tuán)隊(duì)負(fù)責(zé)部署。A物理機(jī)是給訂單用的,B物理機(jī)是給登錄用的,絕對(duì)不能互相干擾。常常因?yàn)榍缅e(cuò)命令,導(dǎo)致故障。標(biāo)準(zhǔn)化通過(guò)規(guī)范約束,效果甚微,效率十分低下。

第二階段:腳本階段(半自動(dòng))。

內(nèi)部制定規(guī)范,要求必須嚴(yán)格執(zhí)行。通過(guò)部分腳本實(shí)現(xiàn)部署、啟停。部署還是要通過(guò)運(yùn)維人員操作、配置,半自動(dòng)化方式,仍然需要敲命令。使用虛擬機(jī)隔離,虛擬機(jī)數(shù)量很多,運(yùn)維人員在窗口中來(lái)回切換,可能看錯(cuò)窗口,執(zhí)行了錯(cuò)誤的命令。申請(qǐng)機(jī)器需要提前,每年都要做服務(wù)器需求計(jì)劃。中間加機(jī)器非常麻煩。

第三階段:工具階段(自動(dòng)化)。

少數(shù)運(yùn)維人員,通過(guò)私有云管理虛擬機(jī)。通過(guò)CI工具實(shí)現(xiàn)持續(xù)部署。運(yùn)維人員通過(guò)虛擬機(jī)鏡像來(lái)封裝常用依賴環(huán)境。但是開(kāi)發(fā)環(huán)境和測(cè)試環(huán)境、生產(chǎn)環(huán)境差距很大,可能會(huì)出現(xiàn)開(kāi)發(fā)人員本地測(cè)試通過(guò),測(cè)試人員說(shuō)有問(wèn)題,測(cè)試人員在測(cè)試環(huán)境測(cè)試通過(guò),一上線就有問(wèn)題。

第四階段:敏捷基礎(chǔ)設(shè)施。

無(wú)需運(yùn)維人員,全部自動(dòng)化,通過(guò)容器封裝環(huán)境,開(kāi)發(fā)人員可以直接將所有軟件和依賴直接封裝到容器中,打包成鏡像,生產(chǎn)環(huán)境直接部署鏡像??梢詫?shí)現(xiàn)所有環(huán)境都一樣。容器調(diào)度平臺(tái)管理容器,資源利用率更高,通過(guò)配置文件描述環(huán)境,例如我要部署8臺(tái)Nginx,端口是什么,鏡像用哪個(gè),日志放在什么地方,配置文件用哪個(gè),部署在什么地方等等,都可以直接描述出來(lái)。注意,這個(gè)描述文件以前是運(yùn)維干的,現(xiàn)在開(kāi)發(fā)就能搞定。

劃重點(diǎn)?。?!

敏捷基礎(chǔ)設(shè)施實(shí)際上并不是一個(gè)全新的術(shù)語(yǔ),是指使用腳本或文件配置計(jì)算基礎(chǔ)設(shè)施環(huán)境,而不是手動(dòng)配置環(huán)境的方法。

敏捷基礎(chǔ)設(shè)施也可稱為基礎(chǔ)設(shè)施即代碼(Infrastructure as Code)或者可編程基礎(chǔ)設(shè)施(Programmable Infrastructure),基礎(chǔ)設(shè)施即代碼可以將基礎(chǔ)設(shè)施配置完全當(dāng)作軟件編程來(lái)進(jìn)行。實(shí)際上,這已經(jīng)開(kāi)始讓編寫(xiě)應(yīng)用和創(chuàng)建其運(yùn)行環(huán)境之間的界限變得逐漸模糊起來(lái)。應(yīng)用可能包含用于創(chuàng)建和協(xié)調(diào)其自身虛擬機(jī)或容器的腳本。這是云計(jì)算的基礎(chǔ),并且對(duì)DevOps至關(guān)重要。

為了解決開(kāi)發(fā)和運(yùn)維之間的矛盾,催生了DevOps,DevOps使運(yùn)維人員的職責(zé)發(fā)生了巨大的轉(zhuǎn)變,快速構(gòu)建環(huán)境必須通過(guò)自動(dòng)化實(shí)現(xiàn),基礎(chǔ)設(shè)施即代碼就是快速構(gòu)建環(huán)境的基礎(chǔ)。運(yùn)行業(yè)務(wù)應(yīng)用和配置基礎(chǔ)設(shè)施在統(tǒng)一的CI/CD平臺(tái)執(zhí)行。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容