關(guān)于DevOps你該了解的幾點(diǎn)
【編者的話】什么是DevOps?它能幫助我們實(shí)現(xiàn)什么目標(biāo)?帶來(lái)什么好處?本篇文章和你逐點(diǎn)談?wù)劇?/p>
一旦一個(gè)行業(yè)術(shù)語(yǔ),尤其是技術(shù)方面的術(shù)語(yǔ),變得流行,想知道關(guān)于這個(gè)術(shù)語(yǔ)的確切定義也變得困難了。大家都假定這是眾所周知的,并在此基礎(chǔ)上展開(kāi)討論。不管怎樣,如果你所在的公司也有關(guān)于DevOps的討論,或是你想這方面有進(jìn)一步的深入。那關(guān)于DevOps的這幾點(diǎn),你或許應(yīng)該要注意。
何為DevOps
DevOps指對(duì)傳統(tǒng)軟件應(yīng)用生命周期的重構(gòu)以支持敏捷開(kāi)發(fā)和持續(xù)集成持續(xù)交付的一套方法論。在過(guò)去,一般是龐大的單體應(yīng)用較為常見(jiàn)。想要追加新功能或新發(fā)布版本,都要涉及到整個(gè)單體應(yīng)用的重新打包,然后全量更新。在這種情況之下,應(yīng)用版本迭代相對(duì)緩慢。
這樣的開(kāi)發(fā)流程已經(jīng)不適用于當(dāng)代商業(yè)環(huán)境了。與日俱增的競(jìng)爭(zhēng)壓力促使企業(yè)采用更靈活敏捷的方式,對(duì)市場(chǎng)中的變化迅速作出響應(yīng)以保持競(jìng)爭(zhēng)力。軟件開(kāi)發(fā)流程也需要作出相應(yīng)調(diào)整以適應(yīng)頻繁的需求變化——極端情況下,一天可能會(huì)發(fā)布好幾個(gè)迭代版本。
然而,徹底顛覆原有開(kāi)發(fā)方式需要人員、企業(yè)文化、流程、開(kāi)發(fā)工具等多方面的改變。DevOps打破原來(lái)的開(kāi)發(fā)和運(yùn)維之間的界限,將分離的兩個(gè)流程融合到了應(yīng)用的研發(fā)過(guò)程中。這些改變的目的是為了支持和適應(yīng)應(yīng)用快速、安全、可持續(xù)和頻繁的版本發(fā)布。
DevOps的目標(biāo)
提高發(fā)布頻率
原來(lái)的流程是將一系列新增和改善的功能,捆綁到一塊合并在一個(gè)大版本發(fā)布,發(fā)布頻率低。在DevOps思想指導(dǎo)下,新應(yīng)用或功能特性增強(qiáng)將會(huì)采取小步快跑的方式發(fā)布。這使得用戶可以在第一時(shí)間體驗(yàn)到應(yīng)用的新功能,改善終端用戶體驗(yàn)。
更快地響應(yīng)市場(chǎng)
對(duì)于面向消費(fèi)者的應(yīng)用,實(shí)現(xiàn)對(duì)市場(chǎng)需求的快速響應(yīng)可以提高消費(fèi)者滿意度,進(jìn)而獲得更豐厚的回報(bào),提高應(yīng)用的市場(chǎng)份額,甚至是全方位的領(lǐng)先優(yōu)勢(shì)。
更低的失敗幾率
DevOps強(qiáng)調(diào)將應(yīng)用開(kāi)發(fā)周期中的關(guān)鍵流程標(biāo)準(zhǔn)化和自動(dòng)化,包括在盡可能和生產(chǎn)一致的運(yùn)行環(huán)境中進(jìn)行測(cè)試從而保障代碼質(zhì)量。在準(zhǔn)生產(chǎn)環(huán)境的標(biāo)準(zhǔn)化預(yù)發(fā)布和測(cè)試,可以幫助我們?cè)谡桨l(fā)布前識(shí)別并解決問(wèn)題。還有,應(yīng)用頻繁地小規(guī)模增量迭代使得測(cè)試更準(zhǔn)確更充分,這比試圖在一次發(fā)布中集中測(cè)試驗(yàn)證好幾百項(xiàng)功能變化是否生效靠譜得多。
DevOps帶來(lái)的好處
流水線作業(yè)
流水線、標(biāo)準(zhǔn)化、自動(dòng)化的作業(yè)流程是一大好處。這有效減少了錯(cuò)誤的發(fā)生,同時(shí)使得各種資源可以被投入到更高層次的戰(zhàn)略目標(biāo)中。不僅應(yīng)用開(kāi)發(fā)效率提高,同時(shí)技術(shù)人員的情緒也會(huì)更積極,因?yàn)樗麄兛梢陨倩ê芏鄷r(shí)間在那些低效的人工流程和緊急情況處理上。
協(xié)同工作
DevOps的一個(gè)基本特征,就如它名稱所預(yù)示的,打破開(kāi)發(fā)和運(yùn)維之間的部門(mén)界限。當(dāng)開(kāi)發(fā)和運(yùn)維人員作為一個(gè)團(tuán)隊(duì),他們就必須開(kāi)始熟悉跨界技能和信息共享,為了一個(gè)共同的目標(biāo)去協(xié)作,提高效率。
增強(qiáng)靈活性
DevOps的流程,在設(shè)計(jì)上就防止團(tuán)隊(duì)構(gòu)建出一個(gè)龐大的單體應(yīng)用發(fā)布到線上。DevOps聚焦于少量多次的發(fā)布,這使得流程、團(tuán)隊(duì)、組織在響應(yīng)市場(chǎng)環(huán)境中的變化時(shí)更靈活,先發(fā)制人。
選擇DevOps的考量
在企業(yè)中采取DevOps流程,涉及到許多方面的考量。為了實(shí)施成功,采用DevOps要求有一個(gè)清晰的戰(zhàn)略目標(biāo)。獲得相關(guān)高層領(lǐng)導(dǎo)的支持,管理方式的變革,并且有合適的基礎(chǔ)設(shè)施去支持這樣的轉(zhuǎn)變。
DevOps技術(shù)可以為轉(zhuǎn)型成功的企業(yè)帶來(lái)諸多好處。然而企業(yè)做出相應(yīng)的調(diào)整改變也要顧及各個(gè)方面。在現(xiàn)有的技術(shù)人員中找到一些熟練且有經(jīng)驗(yàn)的員工去貫徹普及DevOps流程并不容易。這也是許多企業(yè)選擇一些已經(jīng)成功推廣DevOps技術(shù)的組織作為合作伙伴,來(lái)支持推進(jìn)DevOps普及的原因。