遗留系统现代化实战
姚琪琳
Thoughtworks 资深咨询师
5615 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 30 讲
用户故事 (1讲)
遗留系统现代化实战
15
15
1.0x
00:00/00:00
登录|注册

17 | DevOps现代化:从持续集成到持续部署

你好,我是姚琪琳。
上节课,我们讲了任务分解、小步提交、质量门禁、分级构建、制品晋级等 DevOps 实践,它们都可以看做是持续集成的基础。只有做好任务分解和小步提交,才能放心大胆地 PUSH 代码,触发持续构建;只有通过质量门禁,才能得到一个有信心的制品;分级构建可以让我们更加快速地得到反馈;而制品晋级才真正地让持续集成流水线流动起来。
不过,有了一个初始版本的 DevOps 持续集成流水线还不够,今天我们就继续聊聊 DevOps 现代化的高阶话题,即如何从持续集成演进到持续部署和持续交付。
开始学习之前,我想给你提个醒。这节课内容相当长(特别是分支策略这里),本可以拆成两篇甚至三篇。但为了让你一次看个够,我还是决定不拆分。如果你耐心看完,一定可以从根本上理解从持续集成到持续部署的关键知识点。毕竟只有筑牢基础,未来 DevOps 实践里才可能大展身手。

持续集成

要想做到真正的持续集成,需要一个与之匹配的代码分支策略。这方面的话题历来就十分有争议,我来说说我的观点。

分支策略:特性分支 or 基于主干开发?

要说现在国内最流行的分支策略,非特性分支(Feature Branch)莫属,它还有一个更响亮的名字—— GitFlow。不过,虽然名字叫 GitFlow,但它并不是 Git 官方推荐的做法,而只是 Vincent Driessen 的发明创造而已。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了DevOps现代化的高级话题,重点讨论了从持续集成演进到持续部署和持续交付的过程。文章首先强调了持续集成的基础实践,如任务分解、小步提交、质量门禁、分级构建和制品晋级的重要性。接着,探讨了代码分支策略的争议,特别是特性分支和基于主干开发的分支策略。此外,文章还涉及了DevOps文化、需求管理和Code Review对持续集成的影响。最后,文章提到了当团队内部形成了良好的DevOps文化之后,可以考虑加快部署频率。总的来说,本文为读者提供了对DevOps现代化的深入理解,强调了团队文化、需求管理和Code Review对持续集成和持续部署的重要性。文章还介绍了高频发布、自动化部署、低风险发布和应用回滚等与持续部署相关的内容,为读者提供了实用的建议和策略。文章内容丰富,涵盖了现代化软件开发中的关键技术和实践,对于正在进行DevOps转型的企业和团队具有重要的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《遗留系统现代化实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(3)

  • 最新
  • 精选
  • hzecool
    基于主干开发,发布前还是要拉一个分支出来进行测试吧,测试通过后再把该分支合并到一个线上发版分支进行部署。感觉是否至少需要三个分支?

    作者回复: 不需要拉测试分支。CI/CD是基于主干的,提交到主干的代码通过CI/CD后就部署到测试环境了,不需要再单独拉分支。只有上线前拉一个发布分支作为当前线上版本的分支即可,下次发布后删除这次的发布分支。

    2022-06-09
  • 子夜枯灯
    老师,文中说到"因为采用了基于业务场景的任务分解和小步提交,理论上每个 commit 都能提供业务价值,也是可以部署和交付的。"这里能使用一个复杂的场景做个拆解举例么?这里没有理解上去,如何实际操作,谢谢

    作者回复: 可以参考第16节课里讲任务分解的例子,一个登录功能可以拆分成三个任务,每个任务可以是一个或多个commit,但都是这种完成一个端到端场景的

    2022-05-20
  • peter
    请教老师几个问题: Q1:“用细粒度的用户故事替代落后的需求文档。”,这句话怎么理解? 是不要需求文档吗? Q2:每天提交代码和code review,是不是太频繁?这样做的话,写代码的时间只有半天, 时间不够啊。我自己感觉做一个功能都需要好几天,至少两三天吧。 Q3:Jenkins除了持续集成功能外,还有部署功能吗?

    作者回复: Q1:用户故事就是需求文档,替换掉老式的动不动就一百多页的需求文档。 Q2:要算总时间。做完一个功能两三天,后续还要code review、测试、改bug,如果业务理解错了或者不符合规范,还要返工。每天code review可以及时发现这个问题。而且每天都做的话,量就不会很多,前提是团队不要太大。 Q3:Jenkins的功能都是靠插件提供的,你想要啥都能有。

    2022-05-18
收起评论
显示
设置
留言
3
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部