Dave Farley:持續交付的基本原理
原文 http://www.infoq.com/cn/news/2015/03/dave-farley-continuous-delivery
Dave Farley 在 倫敦QCon 2015大會上提出,盡管在過去的時間里軟件開發尚未達到最佳的水平,但當前的研究正表明持續交付的實行會帶來重大的改進。Farley說, 持續交付 給軟件開發經濟模式帶來了改變,使大家可以更迅速地驗證商業思路,并降低了缺陷率,當故障發生時也可以更加快速地恢復服務。
Farley在討論中展開討論了“軟件開發在過去的時間里尚未達到最佳的水平”,他引用了KPMG和Logica發布的一系列 報告 ,以及麥肯錫的質量統計報告。在過去的20多年里,軟件行業一直在努力改進開發方法論,其中包括將順序的方式(比如 瀑布法 )換成更加迭代化的過程(比如 Scrum ),但是Farley提出,我們卻未能從根本性錯誤中汲取到教訓。
軟件交付的根本目的是為客戶提供一個產品,為其驗證商業思路,最后為最終用戶提供價值。在客戶和商業之間反饋是必不可少的,迭代過程一定要執行得快速、廉價、可靠。
Farley提出,科學和科學的方法是人類最偉大的發明。在軟件交付中,實現快速的反饋周期是這種科學方法的關鍵。Farley說,科學方法的基本步驟包括描述問題、形成假設、推理論證和校驗求證。
描述 - 基于經驗和觀察進行猜測。
假設 - 提出一種解釋。
推導 - 對假設進行預測。
實驗 - 對推導進行試驗。
重復!
Farley接著說 精益思想 的原則(比如“一體化質量”、“尋求整體最佳”和“增強了解”)能夠大幅縮短軟件交付的周期。Farley舉了一個傳統軟件開發方法的例子,它的交付周期 有103天,我們再來看看換成精益的持續交付方法,交付周期只有57分鐘。短的周期時間使商業理念得以快速地驗證,從而改變了軟件交付的經濟模式。如果系 統引入了缺陷,快速的周期可以縮短MTTR(修復前平均時間),因為較短的周期會更易于推斷出要做哪些修改。
Farley引用敏捷軟件開發宣言的第一準則強調了持續交付的重要性,“我們的最高目標是,通過盡早和持續地交付有價值的軟件來滿足客戶”,并用一連串陳述句完整地定義了持續交付的概念:
敏捷宣言的第一準則。
持續集成的邏輯延伸。
著眼全局看開發。
每次提交創造一個候選版本。
發到生產環境中才意味著結束!
Farley說,持續交付的核心原則包括創建一個可重復的、可靠的軟件發布流程,保持每件事都在版本控制之下,一體化質量,重新定義“完成”就表示已經發布了,使每個人都對發布流程負責,實行持續的改進。
這個核心原則應包含在部署流程的實現內,它的目的是使“開發人員提交了代碼”就意味著這些修改是為客戶價值的提供,是針對任何會給生產環境帶來問題的變更的檢測和預防。 部署流程 應支持各類組織間涉及到軟件交付的工作協作,讓每個人都能夠看到系統內與流程相關的變更。
Farley說,常常會有一系列反對組織內部實施持續交付的論點。第一個證據是,“持續交付只適合小型的項目,它不可能用于大型的項目”,看看 谷歌的構建過程這個論點就不攻自破了。谷歌主要使用一個單獨整體的代碼庫,針對每次提交運行持續構建和測試,這個庫中有超過1億行代碼,每年有6千多萬次 的構建。
第二個論點是,“這風險太高了,發布始終是造成災難的因素”,讓我們看看亞馬遜構建過程就可以回擊這個論點。Farley說2006到2011年間,在亞馬遜上實現的持續交付將部署導致的運行中斷降低了75%,將部署導致的運行中斷分鐘數降低了90%。
最后一個反對實施持續交付的論點是這么說的,“這種方式合適簡單的網站,但我的技術太復雜了”。Farley用惠普的故事進行了反駁,惠普轉換了所有 HP LaserJet Firmware 產品開發方法,這是一個大型的、復雜的、基于硬件的項目,具有多個產品并歷時4年。實施持續交付后開發人員生產力得到了10倍的增長。
Farley最后的結論是實施持續交付會對商業產生積極的影響,并提出“持續交付改變軟件交付的經濟模式”。Farley引用了企業管理協會 (EMA)“DevOps和持續交付”2014年度報告大會的數據,有87%具有開發和運維職能的公司收入增長被評為“卓越的”,它們比2013年至少有 10%的收入增長,與此相反,只有13%具有開發和運維職能的公司被評為只取得“普通的”或者是更糟的增長。
Farley引用了Puppet實驗室的“ DevOps 2014年度狀態 報告 ”,說明持續交付促成更高的生產能力和更高的可靠性,故障發生時的12次服務都得到更加快速的恢復。Farley再次引用Puppet實驗室報告,說組織文化是IT性能和組織整體性能最重要的預測因子。
我們現在可以信心十足地斷言,高的IT性能與強勁的經營業績是分不開的,它有助于生產力、贏利能力和市場占有率的提升。
Dave Farley演講的幻燈片可以在倫敦QCon 2015大會網站日程頁上找到,可點擊“ 持續交付的基本原理(良好軟件開發的文化與實踐) ”下載。
查看英文原文: Dave Farley on the Rationale for Continuous Delivery