知识卡片
部署流水线与持续集成的本质区别
内容
持续集成聚焦于”尽早尽频繁地把代码集成到一起”,本质上是所有任务成功才算构建通过的单一关卡;部署流水线则把这些任务拆分成先后独立的多个阶段(构建、原子适应度函数、整体适应度函数、手动审查、生产部署),每个阶段承担不同粒度和复杂度的验证职责。用持续集成硬撑部署流水线的角色,很快就会发现任务和反馈没法按阶段拆开、验证信息混杂在一起,这正是演进式架构必须依赖部署流水线而非单纯持续集成的原因。
参考来源
- 位置:《演进式架构(原书第2版)》第3章《实现增量变更》3.1.1节「部署流水线」之「持续集成与部署流水线」小节(源文件:_epub-src/EPUB/xhtml/chapter07.xhtml)
- 结论依据:原文明确持续集成是所有任务成功即构建成功的单一关卡,部署流水线则划分多阶段,并指出用持续集成勉强代替部署流水线会无法拆分任务和反馈,直接支持卡片论点。
- 原始内容:"对很多项目而言,持续集成服务器包含了一系列要执行的任务,所有任务的成功就表示构建成功……部署流水线鼓励开发人员将不同的任务划分到不同的阶段……有些开发人员尝试用持续集成来勉强代替部署流水线,但很快便发现它们无法对任务和反馈进行必要的拆分。"