2

我正在研究 24x7x365 Web 服务环境中的一些非脆性发布过程技术。将代码从开发环境发布到关键生产环境的一些您最喜欢的方法是什么?这不仅包括代码更改,还包括数据库架构更改。让我们假设一切都已经过测试并在开发环境的生态系统中获得好评。

您接下来采取哪些步骤将其简化为生产?将流量重定向到停机集群并运行一些自动化脚本?如果是这样,你的脚本是做什么的?如果不是脚本,你喜欢什么样的套路?

只寻找技术见解。请不要“给客户足够的警告”类型的回复。

谢谢!

4

2 回答 2

1

我认为有几个原则对确保很重要:

  1. 仅从源代码控制系统(专用分支或主线上的标签)发布。不可能直接从工作目录释放。
  2. 使推送到生产和推送到登台过程完全自动化(包括模式更新)
  3. 手头有自动回滚脚本,如果有任何问题,不要害怕使用它。
  4. 所有数据库模式更改都使用增量前滚/回滚工具(如 ActiveRecord 或 Liquibase)完成。需要完整的数据库还原应该很少见。
  5. (对于非常大的集群)进行滚动升级;使用两个负载均衡器,一个用于版本 N 版本,一个用于 N+1 版本。随着其他节点加入 N+1 组,持续测试。
于 2008-12-09T22:44:08.857 回答
0

丹尼斯轩尼诗写了一个很好的总结。至于工具,看看Capistrano

于 2008-12-09T23:13:42.217 回答