核心思想
严格分离构建、发布和运行阶段。
基准代码部署的三个阶段
构建阶段
将基准代码转化为可执行包,包括获取依赖项、编译成二进制文件和资源文件。
构建阶段可以相对复杂,并且需要人为触发,错误信息可以立即展现在开发人员面前,从而得到妥善处理。
发布阶段
将构建得到的结果与部署所需配置结合,形成可立即运行的版本。
每发布一个版本必须对应一个唯一的发布 ID,例如使用发布时的时间戳或一个增长的数字。
发布的版本就像一本只能追加的账本,一旦发布就不可修改,任何的变动都应该产生一个新的发布版本。
运行阶段
在执行环境中启动应用程序进程,使用选定的发布版本运行。
运行阶段是可以自动进行的,如服务器重启,或是进程管理器重启了一个崩溃的进程。因此,运行阶段应该保持尽可能少的模块,这样假设半夜发生系统故障而开发人员又捉襟见肘也不会引起太大问题。