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