DevOps:從理念到實(shí)施
為什么會(huì)有DevOps的出現(xiàn)?
DevOps這個(gè)新理念的出現(xiàn),是為了應(yīng)對(duì)IT環(huán)境中普遍面臨的一些挑戰(zhàn)。
敏捷的出現(xiàn)縮小了上圖所示的***個(gè)隔閡,也就是商業(yè)需求和開(kāi)發(fā)之間的隔閡,有效的加快了產(chǎn)品開(kāi)發(fā)的周期和效率。那么這無(wú)疑為運(yùn)營(yíng)團(tuán)隊(duì)增加了很多壓力。
于是上圖中第二個(gè)隔閡,也就是開(kāi)發(fā)和運(yùn)維之間的隔閡需要解決,于是DevOps的理念應(yīng)運(yùn)而生。
如何解決開(kāi)發(fā)和運(yùn)維的隔閡呢?
首先要明白隔閡產(chǎn)生的原因。開(kāi)發(fā)人員和運(yùn)維人員認(rèn)識(shí)的方法,以及各自所處的角色,都存在根本性的差別。
開(kāi)發(fā)團(tuán)隊(duì)要求的不斷滿足新的客戶需求,并快速實(shí)現(xiàn)新的功能。而運(yùn)營(yíng)最關(guān)心的是“穩(wěn)定壓倒一切”,任何差錯(cuò)都有可能對(duì)生產(chǎn)環(huán)境中的用戶造成直接影響。有些服務(wù)提供商都和客戶簽署Service Level Agreement。服務(wù)中斷意味著直接的財(cái)政損失。衡量指標(biāo)不同,自然工作的重點(diǎn)不同。
那么我們首先要從文化上著手。
根本上要從文化上著手。文化的改變是***位。了解自己的工作隊(duì)全局的影響。
運(yùn)維團(tuán)隊(duì)必須明確的認(rèn)識(shí)到,如果不能快速把開(kāi)發(fā)成果推倒生產(chǎn)環(huán)境,企業(yè)就很可能被其他競(jìng)爭(zhēng)對(duì)手超越。長(zhǎng)久以來(lái)就很有可能被市場(chǎng)淘汰。覆巢之下,焉有完卵?那么運(yùn)維團(tuán)隊(duì)也就沒(méi)有存在的意義了。但不是說(shuō)穩(wěn)定不重要,我們需要實(shí)施一系列手段來(lái)實(shí)現(xiàn)即快又穩(wěn)。
開(kāi)發(fā)團(tuán)隊(duì)必須明確認(rèn)識(shí)到開(kāi)發(fā)代碼或者更改設(shè)置時(shí),可能會(huì)對(duì)整個(gè)系統(tǒng)穩(wěn)定性和性能的影響。
其次要從組織結(jié)構(gòu)上著手,考慮開(kāi)發(fā)團(tuán)隊(duì)和運(yùn)維團(tuán)隊(duì)的直接領(lǐng)導(dǎo)是同一個(gè)人,盡量避免部門(mén)直接互相指責(zé)和扯皮。
第三要實(shí)施一些工具及方法。
如何具體實(shí)施?
正如很多企業(yè)采用敏捷開(kāi)發(fā)一樣,這需要一個(gè)準(zhǔn)備,嘗試和逐步實(shí)施的過(guò)程。其實(shí)DevOps僅僅是一個(gè)理念,而且這個(gè)理念在不斷變化和發(fā)展中。無(wú)論公司大小,IT環(huán)境面臨的有很多挑戰(zhàn)是共通的。大公司組織結(jié)構(gòu)相對(duì)發(fā)雜,人員理念和文化的形成非一夕一朝之功。在實(shí)施DevOps反面,反而小公司有很多的優(yōu)勢(shì)。
除了IT企業(yè)外,DevOps對(duì)于傳統(tǒng)的行業(yè)(金融,電信等等)也同樣有借鑒意義。因?yàn)樵诓痪玫膶?lái),每一個(gè)公司都是數(shù)字化的公司。沒(méi)必要強(qiáng)調(diào)你的企業(yè)是不是采用DevOps,應(yīng)該開(kāi)始深入了解你的環(huán)境中需要解決的問(wèn)題是什么,再看DevOps中的一些方法是不是會(huì)幫到你,然后再具體實(shí)施一些措施和借用一些工具來(lái)幫助你。比如我所關(guān)注的虛擬化平臺(tái)的運(yùn)維,就可以借鑒DevOps的很多思想。
標(biāo)準(zhǔn)化和自動(dòng)化:
盡量采用模板和指定好的流程來(lái)更新Master Image,采用Puppet,Chef等工具來(lái)實(shí)現(xiàn)系統(tǒng)管理自動(dòng)化,盡量減少人為干預(yù)。同時(shí)也避免了不必要的人為失誤。
像管理代碼一樣管理系統(tǒng)配置:
很多應(yīng)用的配置,因?yàn)樾枨笞兓摹5臋n往往沒(méi)有同步更新。需要有工具來(lái)記錄系統(tǒng)的配置參數(shù)。也就是說(shuō)借鑒軟件開(kāi)發(fā)中管理Code的方式,來(lái)對(duì)系統(tǒng)環(huán)境的設(shè)置進(jìn)行版本控制和同一的管理。從而保證環(huán)境的一致性和穩(wěn)定性。
這樣可以捕捉到和規(guī)定配置不一致的情況,也可以快速的找到問(wèn)題所在,提高排錯(cuò)的效率并縮短時(shí)間。
要有獨(dú)立Dev/Test環(huán)境
新的配置必須在獨(dú)立的Dev環(huán)境中充分測(cè)試后,才能在生產(chǎn)環(huán)境中實(shí)施。
測(cè)試自動(dòng)化
采用一些工具和方法,自動(dòng)測(cè)試系統(tǒng)改動(dòng)后的各項(xiàng)功能和指標(biāo)。大大減少測(cè)試需要的人力和時(shí)間。
開(kāi)發(fā)人員能自己創(chuàng)建開(kāi)發(fā)環(huán)境
vCloud Director 可以很好的滿足這個(gè)需求。系統(tǒng)管理員可以把運(yùn)算、網(wǎng)絡(luò)和存儲(chǔ)的資源專門(mén)分配給開(kāi)發(fā)團(tuán)隊(duì),并授予適當(dāng)權(quán)限。開(kāi)發(fā)人員自己可以瞬間創(chuàng)建模板以及新的環(huán)境。