您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[2024 第22届 GOPS 全球运维大会暨 XOps 技术创新峰会 · 深圳站]:董越-超越持续集成与持续交付 - 发现报告
当前位置:首页/行业研究/报告详情/

董越-超越持续集成与持续交付

AI智能总结
查看更多
董越-超越持续集成与持续交付

超越持续集成与持续交付 董越DevOps咨询师 董越 DevOps咨询师 《研发运营一体化(DevOps)能力成熟度模型》核心专家,曾任阿里巴巴集团研发效能事业部架构师。当前主要从事企业级DevOps体系建设的咨询工作。《软件交付通识》等畅销技术书作者。 GOPS全球运维大会2024·深圳站 01持续集成及其不足之处 目02特性间解耦 contents 录03持续交付及其不足之处 04特性间进一步解耦 04小结 PART01 持续集成及其不足之处 持续集成 持续 均匀频繁 集成 汇聚测试 “(它是)一种软件开发实践,即团队的成员经常集成他们的工作,通常每个成员每天至少集成一次——这导致每天发生多次集成。每次集成都通过自动化的构建(包括测试)来验证,从而尽快地检测出集成错误。”--MartinFowler 持续集成的价值1:小批量,减少等待 完成开发 集成频 开始集成 完成集成可供测试 繁时时间 完成开发 集成不 开始集成 完成集成可供测试 频繁时时间 持续集成的价值2: 问题早发现、早修复、代价小 在较小的范围内查找有问题的源代码的位置 开发人员还记着当时的开发上下文 还没有基于有问题的代码进行新的修改 从项目管理的角度也期望早发现问题 10人日 持续集成的价值3:频繁同步,减少冲突 20人日 持续集成可能遇到这些问题 场景3 场景1 未完成的特性A导致已完成的特性B无法发布 场景2 未完成的特性A干扰了已完成的特性B的测试 有问题的特性A难以摘除 PART02 特性间解耦 GOPS全球运维大会2024·深圳站 持续集成vs逐特性集成 代码改动提交 持续集成 特性 逐特性集成 如何实现特性隔离? 特性分支 每个特性对应一条特性分支 KeystoneInterface 前端无入口使得功能被隐藏 单一提交 一个commit就实现了一个特性 特性开关 开关决定一个特性是否显现 单一特性 串行开发各特性 GOPS全球运维大会2024·深圳站 混合自测:当个人开发环境无法充分自测时 特性1 特性2 特性3 特性4特性5 自测未通过 混合自测环境分支 GOPS全球运维大会2024·深圳站 集成分支 PART03 持续交付及其不足之处 持续交付 “持续交付是一种软件开发实践,令软件可随时发布上线……为此需要持续地集成软件开发成果,构建可执行程序,并运行自动测试以发现问题,进而把可执行程序逐步推送到越来越像生产环境的各个测试环境中(并测试),以保证它最终可以在生产环境中运行。”--MartinFowler 持续集成的延伸 各类测试直到发布 适度频繁 测试发布 GOPS全球运维大会2024·深圳站 持续交付的价值 小批量、减少等待 问题早发现、早修复、代价小 持续交付让发布更可靠 版本晋级机制 版本1版本2版本3版本4版本5 持续交付可能遇到这些问题 场景1 特性A已通过测试,而特性B还需要较长的时间。 场景2 特性A、B都已通过测试,但从业务角度还不能发 布特性B。 PART04 特性间进一步解耦 集成特性1 集成特性2 集成特性3 摘除特性2 特性摘除 集成特性4 时间 特性1特性12特性123特性13特性134已集成特性 用进行反向改动的方法摘除特性 特性分支A 特性分支B 集成分支 增增减 ABA 用重建集成发布分支的方法摘除特性 重建的集成发布分支集成发布分支 特性分支A 特性分支B 特性分支C 生产分支 混合测试 特性1 特性2 特性3 特性4特性5 测试未通过 混合测试环境分支 发布分支 以特性来运作安排 特性1 特性2特性1 特性2特性3 逐特性交付 特性分支A 特性分支B 生产分支 成本视角 成本成本 可变成本 固定成本 固定成本 改动量 可变成本 发布次数 单次发布的成本一段时间发布的总成本 PART05 小结 三个思路 特性间解耦 特性间隔离特性摘除 特性间随时重组 逐特性集成逐特性交付混合自测 混合测试 Thanks 高效运维社区DevOps时代 荣誉出品 THANKS 感谢聆听