持續(xù)交付的本質(zhì)

開發(fā)速度是一項團(tuán)隊運動,最佳的工作流程需要借助于模塊化的架構(gòu)進(jìn)行持續(xù)集成;
對新特性通過功能開關(guān)的方式才能盡早的隔離特性;
使用灰度部署策略,解決設(shè)備多樣性、用戶多樣性的影響廣度問題;
盡可能采用類生產(chǎn)環(huán)境做發(fā)布驗證,否則,上線之后可能發(fā)現(xiàn)預(yù)期之外的故障;
任何監(jiān)控和隔離都是有成本的,需要評估成本與收益,只發(fā)布對用戶有價值、有用的功能;
引入CI和持續(xù)交付策略,在所有變更之前實現(xiàn)更快、具有數(shù)據(jù)策略的決策;
應(yīng)盡量小批量、頻繁的發(fā)布,降低單次大批量功能發(fā)布引發(fā)的風(fēng)險、更加安全,同時可以大幅縮短上線時間;
兩個版本之間的變更越少,問題和風(fēng)險也就越小,解決問題的成本也就更低;
組織長期成功的關(guān)鍵在于能將產(chǎn)品想法快速交付到用戶手中,并對用戶反饋進(jìn)行快速響應(yīng),形成價值閉環(huán);
軟件工作最大的風(fēng)險,是交付的東西是無用的,當(dāng)我們將一個有用戶價值的產(chǎn)品更早、更頻繁的交付到用戶面前時,就可以越早的得到反饋,從而實現(xiàn)它的真正價值;
那些長時間處于進(jìn)行中高成本、高風(fēng)險的任務(wù),如果不能盡早給用戶交付出用戶價值,會消耗士氣;
縮短代碼完成到用戶反饋之間的時間,可以最大限度的降低正在進(jìn)行中工作的成本;
為更快的交付有用戶價值的需求,我們需要管理風(fēng)險,并行交付,評估每個功能的成本與價值;
持續(xù)交付與敏捷方法的核心原則是,小批量變更、交付會帶來更高的質(zhì)量,也更安全,當(dāng)然還包括自動化測試;
敏捷說的是:頻繁小批量的發(fā)布;
自動化說的是:降低或避免重復(fù)的開銷;
隔離說的是:采用模塊化架構(gòu)隔離變更,使得隔離與排查故障更容易;
可靠說的是:關(guān)注于度量模塊的核心健康指標(biāo),并不斷優(yōu)化;
數(shù)據(jù)驅(qū)動說的是:對核心指標(biāo)相關(guān)能力進(jìn)行ab測試,確保質(zhì)量;
灰度發(fā)布說的是:新功能先對少數(shù)用戶發(fā)布;
