持续交付的本质
共 836字,需浏览 2分钟
· 2021-11-04
开发速度是一项团队运动,最佳的工作流程需要借助于模块化的架构进行持续集成;
对新特性通过功能开关的方式才能尽早的隔离特性;
使用灰度部署策略,解决设备多样性、用户多样性的影响广度问题;
尽可能采用类生产环境做发布验证,否则,上线之后可能发现预期之外的故障;
任何监控和隔离都是有成本的,需要评估成本与收益,只发布对用户有价值、有用的功能;
引入CI和持续交付策略,在所有变更之前实现更快、具有数据策略的决策;
应尽量小批量、频繁的发布,降低单次大批量功能发布引发的风险、更加安全,同时可以大幅缩短上线时间;
两个版本之间的变更越少,问题和风险也就越小,解决问题的成本也就更低;
组织长期成功的关键在于能将产品想法快速交付到用户手中,并对用户反馈进行快速响应,形成价值闭环;
软件工作最大的风险,是交付的东西是无用的,当我们将一个有用户价值的产品更早、更频繁的交付到用户面前时,就可以越早的得到反馈,从而实现它的真正价值;
那些长时间处于进行中高成本、高风险的任务,如果不能尽早给用户交付出用户价值,会消耗士气;
缩短代码完成到用户反馈之间的时间,可以最大限度的降低正在进行中工作的成本;
为更快的交付有用户价值的需求,我们需要管理风险,并行交付,评估每个功能的成本与价值;
持续交付与敏捷方法的核心原则是,小批量变更、交付会带来更高的质量,也更安全,当然还包括自动化测试;
敏捷说的是:频繁小批量的发布;
自动化说的是:降低或避免重复的开销;
隔离说的是:采用模块化架构隔离变更,使得隔离与排查故障更容易;
可靠说的是:关注于度量模块的核心健康指标,并不断优化;
数据驱动说的是:对核心指标相关能力进行ab测试,确保质量;
灰度发布说的是:新功能先对少数用户发布;