從敏捷開發到DevOps,殊途亦同歸

力軟資訊發表於2021-10-08

DevOps是敏捷在軟體開發團隊的另一應用,它借鑑敏捷開發方法,並提出了輕量化運維。目前,DevOps處於高速增長的階段,基於DevOps的變革正在如火如荼地展開,尤其是在大企業中,DevOps受到了廣泛的歡迎。

作為一個熱門的概念,DevOps近年來頻頻出現在各大技術社群和媒體的文章中,備受行業大咖的追捧,吸引了很多吃瓜群眾的圍觀,這也就不可避免的帶來了人們關於敏捷和DevOps的爭論。很多人認為敏捷等於scrum,DevOps等於持續交付,這種過度簡化的理解讓敏捷和DevOps在眾人口中成為了對立存在。

事實上,在2008敏捷大會Patrick DuBois和Andrew Clay Schafer嘗試建立二者之間的關係並提出“敏捷架構”這一概念時,敏捷與DevOps之間的關係就已初現端倪。儘管Patrick後來提出了“DevOps”一詞,但敏捷大會依然被追溯為DevOps的起點。

在最早期時,軟體開發使用的還是瀑布模型。這種模型通過制定計劃、需求分析、軟體設計、程式編寫、軟體測試、執行維護等6個流程將整個軟體生命週期銜接起來。這6個流程有著嚴格的先後次序之分,只有當前面的流程結束之後,下一個流程才能開始運轉。

從敏捷開發到DevOps,殊途亦同歸

但專案不可能是單向運作的,客戶有需求,產品也可能會有問題需要改進。隨著時間推移,使用者對系統的需求不斷增加,與此同時,使用者給的時間週期卻越來越少。在這個情況下,大家發現,笨重遲緩的瀑布式開發已經不合時宜了。於是,軟體開發團隊引入了“敏捷開發”的概念。

敏捷開發是一種能應對快速變化需求的軟體開發方式,它採用 “迭代開發”,將軟體專案需求分成多個迭代,且每個迭代成果在完成開發、測試、反饋等環節後都可以進行交付。

從敏捷開發到DevOps,殊途亦同歸

在這種模式下,每一個迭代就是一個週期,每個迭代後都能交付可獨立執行的成果。不僅資源得到最大化的利用、反饋更加及時,而且交付成果的效率顯著提高,極大地降低了風險。

敏捷開發極大地提高了軟體開發的速度,但它注重的是軟體的開發階段,並未兼顧到運維階段。在開發人員與運維人員進行交接的時候,並沒有體現出敏捷的價值、原則,因此開發與運維之間仍缺乏一些必要的協作效率。這時DevOps就應運而生,DevOps促進開發、運維、測試之間的高效協同,集開發、運維、測試於一體,範圍擴大到軟體的完整生命週期,從而做到用持續軟體交付來修復並更快地解決問題。

從敏捷開發到DevOps,殊途亦同歸

DevOps是基於敏捷開發而出現的,它通過將運維納入產品開發過程的思維方式非常好地補充了敏捷開發。在DevOps框架中所表徵的研發部分主要應用敏捷開發的最佳實踐,比如Scrum方法等。其中敏捷所提倡的時間盒子(Timebox)、限制在製品(WIP)、持續整合(CI)和定義完成(DoD)等管理思想同樣也適用於DevOps。

在軟體生命週期中,不論是瀑布模型還是現如今各大公司都在積極轉型的敏捷開發和DevOps,都是在軟體行業不斷髮展中產生的,迎合了行業發展的需要。而在這個過程裡,敏捷開發和DevOps相互協作一致對外,更像是盟友而非對手,經歷了敏捷革命的洗禮與催化,它們必將殊途同歸,同屬於一片藍天之下。

文.keller


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69965343/viewspace-2794989/,如需轉載,請註明出處,否則將追究法律責任。

相關文章