跳到正文

第7章学习笔记:CI/CD与发布工程

课程笔记

让每次变更自动经过构建、验证、制品、部署和回退链路。

关联:章节 第7章 CI/CD与发布工程

第7章笔记:CI/CD与发布工程

本章目标

让每次变更自动经过构建、验证、制品、部署和回退链路。 本章不是术语表,而是一条从问题到证据的工作链。先确认用户或团队要保护的结果,再把决定写进可版本化制品,最后由测试、指标、反例或演练证明它在边界与故障下仍成立。

七节联系

  • 持续集成的最小闭环:CI要求频繁合入主干并快速获得可信反馈,不等于拥有一台构建服务器;关键规则是主干必须始终可恢复;门禁失败不可长期忽略或靠重复点击掩盖。
  • 流水线分层与反馈预算:便宜且定位清晰的检查在前,昂贵和环境型检查在后;关键规则是优化端到端反馈时间,同时保留失败可诊断性和必要真实度。
  • 构建一次、逐环境提升:同一不可变制品从测试提升到生产,避免环境中重新编译造成漂移;关键规则是版本、依赖、SBOM、签名和来源证明必须与制品绑定。
  • 数据库迁移与向前兼容:应用和模式不能假设同时切换,迁移要经扩展—迁移—收缩;关键规则是每一步允许旧新版本并存;破坏性步骤必须等消费者和回滚窗口结束。
  • 蓝绿、金丝雀与渐进交付:发布策略控制影响范围,但只有配套指标和自动停止条件才降低风险;关键规则是每级放量声明样本量、观察窗、通过阈值、停止阈值和回滚动作。
  • 回滚、前滚与灾难场景:代码可回滚不代表数据和外部副作用可逆,需提前选择补偿或前滚;关键规则是发布计划同时覆盖制品、配置、模式、消息和外部动作的恢复策略。
  • 部署频率与变更失败率:交付指标应联合解释速度和稳定性,单独追求部署次数会被游戏化;关键规则是指标用于改进系统,不用于简单排名个人;趋势和分布比单点平均更可信。

学习时给七节画依赖箭头:前一节产出的对象、规则或制品如何成为后一节输入?若某节可以被随意挪走而完全不影响上下文,说明你仍在孤立背诵,需要用一个贯穿案例重新连接。

章内练习

  1. 用“提交触发格式、静态检查、单元、集成、制品签名,失败由提交者立即修复”重做正常、边界和故障三类验收,产出可由同伴复核的制品。
  2. 用“两分钟内完成编译与单元,十分钟完成集成,夜间跑长稳;关键安全扫描进入阻断路径”重做正常、边界和故障三类验收,产出可由同伴复核的制品。
  3. 用“容器镜像以摘要标识,测试通过后仅改变部署配置与审批记录”重做正常、边界和故障三类验收,产出可由同伴复核的制品。
  4. 用“先加可空新列并双写,回填校验后切读,最后删除旧列”重做正常、边界和故障三类验收,产出可由同伴复核的制品。

每次练习都保留背景、输入、决定、输出、验证、失败处置和负责人。只写结论不算完成;只贴截图也不算证据。完成后交换给同伴,只允许对方根据制品复现你的判断,无法复现处就是下一轮修改入口。

错误复盘

把错题标成目标误判、边界遗漏、责任空缺、契约不清、验证不足或恢复缺失。不要写“粗心”。一周后更换领域重做一道情境题;能在新名词下保持同一证据链,才说明方法已经迁移。阶段卷使用独立题池,不能靠记住随课题答案过关。