DevOps進(jìn)化論:新時(shí)代的土豪
原創(chuàng)DevOps的出現(xiàn)受到眾多的企業(yè)人士熱捧,每個(gè)人的引用也只是只言片語(yǔ),真正了解的人極少。更多的只是單純從“研發(fā)團(tuán)隊(duì)”與“運(yùn)維團(tuán)隊(duì)”之間的轉(zhuǎn)變談起。現(xiàn)在大家的關(guān)注慢慢從最開始的開發(fā)轉(zhuǎn)移到了狹義當(dāng)中來(lái)講DevOps的概念或者方法論,特別是創(chuàng)業(yè)中的企業(yè)或者中小型企業(yè)紛紛效仿,慢慢的覺得這個(gè)概念很好,從自動(dòng)化代替了大部分開發(fā)人力時(shí),短期見效很快,然后開始量化。但是當(dāng)更高的業(yè)務(wù)端去擴(kuò)展的時(shí)候就會(huì)發(fā)現(xiàn)財(cái)力(新技術(shù)財(cái)力,新角色財(cái)力,工具購(gòu)買財(cái)力等等)支撐不住,又開始去抱怨。當(dāng)然,土豪公司除外。
在前段時(shí)間,IBM收購(gòu)DevOp(開發(fā)與運(yùn)營(yíng)合作)解決方案提供商UrbanCode,如果從狹義的DevOps去定義UrbanCode這個(gè)領(lǐng)域,它實(shí)際上就是全球的NO.1,而在去年1月也收購(gòu)了Greenhat公司,對(duì)其在測(cè)試領(lǐng)域中的DevOP概念形成了支持;再去年5月收購(gòu)了Tealeaf公司,則是在反饋領(lǐng)域中加強(qiáng)了這種概念。那么這一連串的收購(gòu),IBM真正的目的是為了什么?小編認(rèn)為,IBM真正的目的就是為了加快DevOps的落地,減少開發(fā)流程費(fèi)用,把開發(fā)測(cè)試打通到運(yùn)維發(fā)布端,穩(wěn)固自己在軟件行業(yè)的競(jìng)爭(zhēng)力。
這時(shí)候問題來(lái)了,中小企業(yè)和創(chuàng)業(yè)公司沒有那么大的財(cái)力支撐怎么辦?其實(shí)對(duì)于DevOps很多人理解不同,根據(jù)小編的理解以及對(duì)前段時(shí)間與IBM 大中華區(qū)技術(shù)總監(jiān) 孫昕對(duì)DevOps交流的總結(jié),給大家列出一二三,如有不同觀點(diǎn)歡迎共同探討。
DevOps為什么盛行
這個(gè)我們得從軟件工程開始說(shuō)起,從軟件工程初期發(fā)展的獨(dú)立主義,那時(shí)候的軟件其實(shí)就是一個(gè)人獨(dú)立開發(fā),從需求到開發(fā)到測(cè)試,都一個(gè)人完成。因此那時(shí)候的軟件很簡(jiǎn)單,功能單一,所以一個(gè)人完全可以。當(dāng)從90年代開始強(qiáng)調(diào)了軟件工程化至今完全進(jìn)化成為一個(gè)產(chǎn)業(yè)鏈,軟件工程應(yīng)是由最早的需求、架構(gòu)設(shè)計(jì)、開發(fā)、測(cè)試、發(fā)布一個(gè)完整的過程進(jìn)化的時(shí)候,這時(shí)孫昕談到了一個(gè)概念, 那就是ALM。如何去理解這個(gè)ALM?就是把你的軟件當(dāng)成一個(gè)應(yīng)用,這個(gè)應(yīng)用就像人一樣,有出生到成熟到死亡。官方專業(yè)的說(shuō)法就是應(yīng)用程序生命周期管理。但是時(shí)代在進(jìn)步,我們的需求越來(lái)越大,軟件的生產(chǎn)鏈條還要擴(kuò)展,所以就是這次談的DevOps這個(gè)概念。
為什么這么說(shuō)?
在任何公司里,開發(fā)一個(gè)軟件最終都是為了賺到錢,于是它有了大的商業(yè)規(guī)劃,產(chǎn)品的需求,才有軟件的開發(fā)這樣的一個(gè)流程。那么軟件再往上端走就直接到業(yè)務(wù)層,而軟件的下一端理所當(dāng)然是運(yùn)維了。為什么這么說(shuō)?如果在金融業(yè),電信業(yè),一出問題不及時(shí)解決就是個(gè)災(zāi)難。所以軟件往下走一定是運(yùn)維,不斷產(chǎn)生缺陷不斷及時(shí)修復(fù),所以現(xiàn)在的軟件工程鏈條變得非常長(zhǎng),這就是DevOps這么個(gè)概念。
DevOps為什么這幾年才開始提提及?用孫昕在IT客上的話說(shuō),就是有一個(gè)重要的技術(shù)瓶頸是這幾年才突破的,在前幾年一直在談的一個(gè)概念叫JAZZ,翻譯過來(lái)就是爵士樂,意思是需要協(xié)同起來(lái)才能奏出非常好的爵士樂。JAZZ的出現(xiàn)就是為了讓軟件真正的與底層全部打穿數(shù)據(jù),讓數(shù)據(jù)在說(shuō)話。在之前還沒有這個(gè)國(guó)際化標(biāo)準(zhǔn)的時(shí)候,但是今天我們能夠看到了希望。
JAZZ的出現(xiàn)對(duì)整個(gè)行業(yè)包括軟件,從業(yè)者等都會(huì)有著一定的改變。這個(gè)改變就是把程序員或者測(cè)試人員一直一來(lái)做的復(fù)雜且重復(fù)性的工作完全脫離出來(lái),用更多的時(shí)間去做更有創(chuàng)造性的工作。小編記得孫昕說(shuō)過這么一句話,如果沒有JAZZ提及出來(lái),就不會(huì)有今天的DevOps真正的出現(xiàn)。(詳細(xì)請(qǐng)關(guān)注DevOps專題)
說(shuō)到這里用一句話來(lái)感慨一下:軟件從業(yè)者本身就是一個(gè)藝術(shù)家,不停地用創(chuàng)意改變著世界。
“土豪”的本質(zhì)
如果從上面來(lái)看你對(duì)DevOps的概念有了了解,那么DevOps到底是用來(lái)解決什么問題呢?是解決公司的技術(shù)問題還是業(yè)務(wù)問題?
剛剛也說(shuō)了,軟件的上一端是業(yè)務(wù)端,任何一家企業(yè)開發(fā)軟件,其實(shí)目的就是為了賺到錢。雖然說(shuō)技術(shù)也是DevOps中的關(guān)鍵部分,但是從DevOps本質(zhì)來(lái)說(shuō)就是個(gè)就是個(gè)業(yè)務(wù)問題。不解決業(yè)務(wù)如何賺錢?光靠技術(shù)當(dāng)然是不行的。
那么這個(gè)業(yè)務(wù)的流程是怎么組成的呢?從DevOps的活動(dòng)組成部分中分為兩種,第一是技術(shù)的驅(qū)動(dòng),第二是人為的驅(qū)動(dòng)。比如說(shuō)開發(fā)者,QA,架構(gòu),發(fā)布,安全,運(yùn)維,其實(shí)都在這一流程中發(fā)揮了自己的作用。
無(wú)論是在傳統(tǒng)行業(yè)或者軟件研發(fā)這條工具生產(chǎn)線上做一些業(yè)務(wù)的規(guī)劃,我們叫做產(chǎn)品線工程(PRE),在這些產(chǎn)品線本身其實(shí)就受到很好的工程化管理。從規(guī)劃到實(shí)現(xiàn),業(yè)務(wù)這部分已經(jīng)占據(jù)了非常重要的地位。其實(shí)大家可以理解為項(xiàng)目管理,企業(yè)架構(gòu),數(shù)據(jù)架構(gòu),或者流程整合等等,做好哪些決策,投入到哪些大的項(xiàng)目中,這些都跟DevOps相關(guān),實(shí)際上這些規(guī)劃好了以后需求才會(huì)變成業(yè)務(wù)往前推,這樣才能更好的獲取你的需求是來(lái)自于支撐你的業(yè)務(wù)目標(biāo),對(duì)市場(chǎng)的壓力做出快速,高效,經(jīng)濟(jì),可靠的變化能力。小編認(rèn)為,如果把業(yè)務(wù)拋開去談DevOps,其實(shí)毫無(wú)意義。
也許有人會(huì)說(shuō),既然DevOps是業(yè)務(wù)流程的,為什么還要管它叫“DevOps”?
在早期,DevOps的出現(xiàn)就是為了解決開發(fā)與運(yùn)維之間的問題,沒有指明DevOps到底真是的范圍,即使是解決問題到底多大,工程鏈條到底有多長(zhǎng)。但是經(jīng)過了在不斷的實(shí)踐過程中,大多的實(shí)踐者就認(rèn)識(shí)到面對(duì)市場(chǎng)壓力的業(yè)務(wù)問題不解決,再怎么實(shí)踐DevOps都沒法真正意義上去解決企業(yè)上的問題。
所以要解決業(yè)務(wù)問題,我們就要從開發(fā)與運(yùn)維兩者之間的文化開始說(shuō)起,這兩者從誕生以來(lái)到現(xiàn)在已經(jīng)存在著很大的沖突與脫節(jié),每個(gè)企業(yè)的組織結(jié)構(gòu)不同也會(huì)影響他們之間劃分程度。要解決兩者之間的脫節(jié),所以你現(xiàn)在看到的談DevOps最多的就是如何改善部署問題上,這是一種合理的選擇。但是如果你說(shuō)DevOps的出現(xiàn)就是為了改善部署問題那就是誤導(dǎo)別人了。
#p#
發(fā)掘“土豪”的共性
現(xiàn)在我們來(lái)談?wù)凞evOps的發(fā)展需要落實(shí)哪些事情,其實(shí)小編認(rèn)為,新的話題出現(xiàn)都有一個(gè)共性特點(diǎn),找到解決方案發(fā)展就越來(lái)越快。下面說(shuō)3個(gè)共性:
1.標(biāo)準(zhǔn)流程統(tǒng)一化
回歸到上面概念講到應(yīng)用程序生命周期管理,其實(shí)就是一個(gè)點(diǎn)對(duì)點(diǎn)的過程,那么在這個(gè)過程中不同階段采取什么樣的方法,這都需要建立起一套標(biāo)準(zhǔn)流程規(guī)范。這就得是國(guó)內(nèi)外的土豪廠商們聯(lián)合起來(lái)規(guī)劃一個(gè)行業(yè)標(biāo)準(zhǔn)。
2.統(tǒng)一的工具使用
簡(jiǎn)單的說(shuō),一個(gè)大的團(tuán)隊(duì),分布到世界各地的時(shí)候要做溝通和協(xié)調(diào),你的第一反應(yīng)是必須依賴工具,你必須花大量的金錢去購(gòu)買工具,無(wú)論是利用云的技術(shù),或者自動(dòng)化部署,自動(dòng)化發(fā)布,這都要依賴工具建立起來(lái)的橋梁下完成。
3.公司文化
我們都知道如果企業(yè)有心的技術(shù)出現(xiàn),當(dāng)你需要把其中某個(gè)部門合并了,那么他們之間就會(huì)造成很大的隔閡。這些隔閡可能會(huì)造成公司文化,工作習(xí)慣的改變,再者是一些角色的改變。如何讓他們慢慢的整合在一起形成一條業(yè)務(wù)線,這也是一件不易的事??偠灾桓淖兤髽I(yè)文化,就別談DevOps。
所以,三者的依賴關(guān)系決定著企業(yè)實(shí)現(xiàn)DevOps的成敗關(guān)鍵。
認(rèn)識(shí)DevOps的落地
說(shuō)到落地才是本文的關(guān)鍵,但小編的理解甚少,所以這里更多的借用孫昕的話來(lái)表達(dá)。
一個(gè)新興技術(shù)或者方法的落地,其實(shí)我們不能用狹義的眼光去看它,廣義才是它真正的本意,也是最有說(shuō)服力的。
從狹義方面去講的話其實(shí)DevOps已經(jīng)落地,如果從廣義來(lái)講,目前DevOps還只是雛形。孫昕認(rèn)為,落地現(xiàn)在主要是聚焦在開發(fā)和運(yùn)維本身現(xiàn)在兩部分,其實(shí)現(xiàn)在就已經(jīng)有非常多的企業(yè)做到了,當(dāng)然這只能說(shuō)是市場(chǎng)的成熟度。在國(guó)外,特別是美國(guó)很多地方其實(shí)都已經(jīng)有很多大的應(yīng)用案例,但是在國(guó)內(nèi),據(jù)孫昕所說(shuō),據(jù)他觀察,尤其是在國(guó)內(nèi)的開發(fā)領(lǐng)域,我們經(jīng)常比別人晚2-4年的時(shí)間。所以這就造成了為什么國(guó)外在實(shí)踐,國(guó)內(nèi)開始談的局面。
想真正的落地你就要認(rèn)識(shí)到:按時(shí)交付軟件產(chǎn)品和服務(wù),開發(fā)和運(yùn)營(yíng)工作必須緊密合作,只有才能更快,更安全,更準(zhǔn)確的推進(jìn)公司的業(yè)務(wù),這才是DevOps的過程。
愿景:
最后總結(jié)的話其實(shí)對(duì)于DevOps也不好說(shuō),我們就來(lái)說(shuō)說(shuō)對(duì)它的愿景吧。
我們之所以能看到軟件工程的將來(lái),DevOps實(shí)際上就是軟件從事于行業(yè)下一代發(fā)展的一個(gè)未來(lái)。那么所有以軟件為驅(qū)動(dòng)的創(chuàng)新將來(lái)是一個(gè)軟件爆炸的時(shí)代,同時(shí)DevOps也將會(huì)是解決當(dāng)代大數(shù)據(jù)上的移動(dòng)互聯(lián),云計(jì)算轉(zhuǎn)型的關(guān)鍵,將會(huì)更加驅(qū)動(dòng)很多創(chuàng)新來(lái)改變?nèi)祟惖纳睢?/p>