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

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框架中所表徵的研發部分主要應用敏捷開發的最佳實踐,比如Scrum方法等。其中敏捷所提倡的時間盒子(Timebox)、限制在製品(WIP)、持續集成(CI)和定義完成(DoD)等管理思想同樣也適用於DevOps。

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

敏捷開發演示案例:www.learun.cn/Home/VerificationForm

文.keller

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章