Web服务的发布/部署/维护过程

时间:2008-12-09 22:18:26

标签: release system-administration

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

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

寻找技术洞察力。请不要“给客户提供足够的警告”类型回复。

谢谢!

2 个答案:

答案 0 :(得分:1)

我认为有几个原则可以确保:

  1. 仅从源控制系统(主线上的专用分支或标签)释放。不可能直接从工作目录中释放。
  2. 完全自动化推送到生产和推送到暂存的流程(包括架构更新)
  3. 拥有自动回滚脚本,如果出现任何问题,请不要害怕使用它。
  4. 所有数据库架构更改都使用增量前滚/回滚功能工具(如ActiveRecord或Liquibase)完成。要求完整的数据库恢复应该很少见。
  5. (对于真正的大型集群)进行滚动升级;使用两个负载平衡器,一个用于版本N版本,另一个用于N + 1版本。当附加节点加入N + 1组时连续测试。

答案 1 :(得分:0)

丹尼斯轩尼诗写了一篇精彩的总结。至于工具,请查看Capistrano