在定義上,DevOps是一個(gè)涵蓋著幾條線的領(lǐng)域。它既非常實(shí)用又貼近實(shí)踐。但與此同時(shí),你需要了解的不僅有技術(shù)背景,還有非技術(shù)的文化方面。中培偉業(yè)專(zhuān)家指出,DevOps最佳實(shí)踐的動(dòng)手和軟技能兩個(gè)部分。
DevOps由開(kāi)發(fā)(developments)和運(yùn)維(operations)兩個(gè)單詞組成。這個(gè)雙關(guān)語(yǔ)已經(jīng)揭示了DevOps的本意,那就是鼓勵(lì)不同的軟件開(kāi)發(fā)部門(mén)共同協(xié)作。
DevOps這個(gè)詞的起源和DevOps運(yùn)動(dòng)的早期還是很清晰的:Patrick Debois是一名在IT行業(yè)的許多領(lǐng)域里很有經(jīng)驗(yàn)的軟件開(kāi)發(fā)工程師兼顧問(wèn)。他本人對(duì)于開(kāi)發(fā)和運(yùn)維之間的對(duì)立感到相當(dāng)不爽。他試圖在會(huì)議中引起大家對(duì)這個(gè)問(wèn)題的興趣,但是一開(kāi)始并沒(méi)有什么效果。
在2009年,O’Reilly Velocity大會(huì)上有個(gè)深得好評(píng)的演講:“每日至少十次部署:開(kāi)發(fā)和運(yùn)維在Flickr的合作”。Patrick隨即決定在比利時(shí)根特市組織一場(chǎng)名為DevOps之日的活動(dòng)。這次,感興趣的人變多了,這場(chǎng)大會(huì)獲得了成功。“DevOps之日”這個(gè)名字引起了共鳴,而這場(chǎng)大會(huì)也延續(xù)了下來(lái)。在Twitter和大多數(shù)論壇里,DevOps之日被簡(jiǎn)稱(chēng)為DevOps。
DevOps運(yùn)動(dòng)的根源寫(xiě)在了敏捷軟件開(kāi)發(fā)原則里。在2001年,有些人想要改進(jìn)一成不變的軟件開(kāi)發(fā)模式,并尋找新的工作方法,他們編寫(xiě)了敏捷宣言。下面是敏捷宣言里被奉為經(jīng)典的摘錄,可以在http://agilemanifesto.org/上閱讀“個(gè)體和互動(dòng)高于流程和工具工作的軟件高于詳盡的文檔客戶合作高于合同談判響應(yīng)變化高于遵循計(jì)劃也就是說(shuō),盡管右項(xiàng)有其價(jià)值,我們更重視左項(xiàng)的價(jià)值。”
由此可見(jiàn),DevOps可以說(shuō)是與第一條原則密切相關(guān)的--“個(gè)體和互動(dòng)高于流程和工具。”顯然這能夠給工作帶來(lái)好處——那為什么我們還要強(qiáng)調(diào)這么明顯的事呢?如果你在大型企業(yè)里工作過(guò),你就會(huì)知道事實(shí)上經(jīng)常是反著來(lái)的。哪怕是看起來(lái)沒(méi)什么障礙的小企業(yè),里面的各個(gè)部門(mén)也很容易就筑起高墻。
DevOps,想要強(qiáng)調(diào)個(gè)體和互動(dòng)是非常重要的,并且這個(gè)技術(shù)很可能有助于拆除企業(yè)里的部門(mén)墻。看起來(lái)可能有點(diǎn)兒反直覺(jué),因?yàn)榈谝粭l原則更青睞于交互而不是工具。但是我認(rèn)為使用任何工具都能起到多種效果。只要工具用得適當(dāng),就能幫我們得到所有想要在敏捷中獲得的東西。
舉個(gè)非常簡(jiǎn)單的例子,一個(gè)選擇系統(tǒng)過(guò)去經(jīng)常有缺陷。通常,開(kāi)發(fā)團(tuán)隊(duì)和測(cè)試團(tuán)隊(duì)會(huì)用不同的系統(tǒng)來(lái)處理任務(wù)和缺陷。這樣的事不僅在團(tuán)隊(duì)中導(dǎo)致了不必要的摩擦,并且把本應(yīng)一起工作的雙方隔離開(kāi)了。而運(yùn)維團(tuán)隊(duì)很可能又會(huì)用第三種系統(tǒng)來(lái)處理服務(wù)器的部署請(qǐng)求。
另一方面,有DevOps觀念的工程師,會(huì)立即意識(shí)到所有的三個(gè)系統(tǒng)都是相似的工作流程。三個(gè)囡隊(duì)里的每個(gè)人應(yīng)該都有使用一個(gè)相同系統(tǒng)的可能性,也許只需要為不同的角色展示不同的界面就可以了。因?yàn)槿齻€(gè)系統(tǒng)變成了一個(gè),所以會(huì)帶來(lái)減少維護(hù)成本的長(zhǎng)期利益。
DevOps的另一個(gè)核心目標(biāo)是自動(dòng)化和持續(xù)交付。簡(jiǎn)單來(lái)說(shuō),自動(dòng)化一切可重復(fù)的乏味的工作,把更多時(shí)間留給人與人之間的交流,這才能產(chǎn)生真實(shí)的價(jià)值。
想了解更多IT資訊,請(qǐng)?jiān)L問(wèn)中培偉業(yè)官網(wǎng):中培偉業(yè)