在某些组织中,通常是由独立的运维团队负责将应用程序部署到试运行环境和生产环境。在这种工作方式下,运维人员只有在产品被发布到生产环境时才第一次见到这个软件。...开发团队将正确的安装程序、配置文件、数据库迁移脚本和部署文档一同交给那些真正执行部署任务的人员,而所有这些都没有在类生产环境或试运行环境中进行过测试。...一旦将应用程序部署到了试运行环境,我们常常会发现新的缺陷。遗憾的是,我们常常没有时间修复所有问题,因为最后期限马上就到了,而且项目进行到这个阶段时,推迟发布日期是不能被人接受的。...如果把这样一个修改记录下来,那么就相当于是变更管理数据库中的一条记录了。这种反模式的特征如下。
多次部署到试运行环境都非常成功,但当部署到生产环境时就失败。
集群中各节点的行为有所不同。...我们也应该有能力在部署出错时,通过同一个自动化过程将系统回滚到之前的版本。
四、问题的答案:自动化部署
实现一个完善的自动构建、部署、测试和发布系统。