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