如何以敏捷方式部署Web应用程序

Ner*_*ian 5 deployment agile web-applications ruby-on-rails

什么是可以支持我持续部署Web应用程序的最佳实践和工具集?

我们应该能够每天轻松地部署几次.

这是一个Ruby on Rails 3应用程序.我们使用Git和Github.

sjt*_*sjt 4

最好的做法是什么

我假设您正在努力保持敏捷。您试图导出一组最佳部署实践有点可怕。就此而言,敏捷团队的任何最佳实践列表都是令人恐惧的。如果你仔细研究敏捷,你会发现它需要团队检查、适应、不断改进,当你认为你的团队找到了“最佳实践”的那一刻,你就默认同意你可以停止改进,从而停止检查、适应和改进。《敏捷估算和规划》一书的作者 Mike Cohn 建议,敏捷团队不应该提出一套最佳实践,而应该通过检查和适应来不断改进。

为了给您一些建设性的反馈,以下是我们的 Scrum 团队遵循的一些实践,这些实践是我们自己通过检查和调整我们自己的部署流程得出的。我还将添加有关我们的源代码检查实践以及部署的信息。

  • 每次开发人员签入代码时,Hudson-ci 都会使用 scm poll 触发器并自动构建代码并将其部署到开发环境中。它通过电子邮件发送适当的成功或失败通知。

  • 开发环境中有一个夜间构建,由 Hudson-ci 每晚自动触发。

  • 在功能准备就绪并在开发环境中进行初步测试后,团队的 QA 触发了 Hudson-ci 构建并部署到集成服务器,可以在其中对功能进行集成测试。集成环境是生产环境的精确复制品。
  • 生产部署通常根据发布计划再次使用 Hudson 完成。

以及可以支持我持续部署 Web 应用程序的工具?

有几种 CI 工具。其中我最喜欢的是 Hudson-ci。其他是 Continuum 和 Cruise 控制。但我认为 Hudson 是最通用且易于使用的工具,并且因为它具有社区驱动的插件,所以您可以很容易地找到适合 git 和 ruby​​ on Rails 应用程序的插件。