Ruby on rails 如何以敏捷的方式部署web应用程序

Ruby on rails 如何以敏捷的方式部署web应用程序,ruby-on-rails,web-applications,deployment,agile,Ruby On Rails,Web Applications,Deployment,Agile,在web应用程序的持续部署中,支持我的最佳实践和工具集是什么 我们应该能够一天轻松部署几次 这是一个RubyonRails3应用程序。我们使用Git和Github 最佳实践是什么 我假设你在这里试图变得敏捷。您试图为部署导出一组最佳实践有点可怕。就这一点而言,对于敏捷团队来说,任何种类的最佳实践列表都是可怕的。如果您仔细研究敏捷,您将意识到它需要团队进行检查、调整和持续改进,当您认为您的团队已经找到“最佳实践”时,您默认同意您可以停止改进,从而停止检查、调整和改进。敏捷评估和规划的作者迈克·科恩

在web应用程序的持续部署中,支持我的最佳实践和工具集是什么

我们应该能够一天轻松部署几次

这是一个RubyonRails3应用程序。我们使用Git和Github

最佳实践是什么

我假设你在这里试图变得敏捷。您试图为部署导出一组最佳实践有点可怕。就这一点而言,对于敏捷团队来说,任何种类的最佳实践列表都是可怕的。如果您仔细研究敏捷,您将意识到它需要团队进行检查、调整和持续改进,当您认为您的团队已经找到“最佳实践”时,您默认同意您可以停止改进,从而停止检查、调整和改进。敏捷评估和规划的作者迈克·科恩(Mike Cohn)建议,敏捷团队不应该提出一套最佳实践,而应该通过检查和调整不断改进

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

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

  • 在开发环境中有一个夜间构建,由哈德逊ci每晚自动触发

  • 在特性准备好并在开发环境中进行初步测试之后,团队的QA触发了Hudson ci构建并部署到集成服务器,在那里可以对特性进行集成测试。集成环境是生产环境的精确副本
  • 生产部署通常根据发布计划再次使用Hudson完成
以及支持我持续部署web应用程序的工具


有几种CI工具。我最喜欢的是哈德逊ci。其他的是连续体和巡航控制。但我认为Hudson是最通用、最易于使用的工具,因为它有社区驱动的插件,所以你很容易找到适合git和ruby on rails应用的插件。

IMVU是持续部署的典范,他们通过遵循“如果我们确信我们没有破坏任何需要立即部署的东西。”他们现在在流程中实现了令人印象深刻的自动化,但这是从这条规则开始的

我认为有助于持续部署的一些要素包括:

  • 始终有一个工作的构建。这意味着持续集成在提交时运行自动单元测试,并立即对任何失败作出响应。在IMVU,它们甚至可以自动恢复破坏构建的提交
  • 广泛的功能测试。这会让你确信你没有破坏任何东西。这些测试往往很慢,因此你需要一种策略来缩短测试时间,例如在多台机器上并行运行测试或使用SauceLabs之类的服务
  • 自动部署。从不手动部署。从不手动更改配置。使用相同技术部署到所有环境
  • 当你说连续部署时,大多数人都会想到在没有人工干预的情况下自动投入生产。你可以在这一点上停下来——按按钮进行生产部署——但仍然可以获得很多价值。我们(urbancode,生产商)帮助许多客户将这类元素放在适当的位置。很少有人进行自动生产部署,但自动部署对每个人都有帮助


    Jtf

    放在一边:RoR允许极快的应用程序开发。一个包含管理部分和降价的博客可以在十分钟内写出来。@TimeMachine-真的吗?现在我想学习Ruby和RoR。我在Mac OS X上。RoR的原始网站有一个名为“在20分钟内创建博客”的教程。是的,20岁,但这是because这是为不熟悉RoR的人准备的。Mac OS X已经用Xcode安装了RoR。如果安装了Xcode,你可以使用RoR。否则,安装Xcode。我最喜欢的学习RoR的网站是。为新手和新手准备了大量的教程。+1代表Hudson推荐。+1代表“任何敏捷团队的最佳实践列表都是可怕的。”。“谢谢你的回答。当系统升级时,我希望我的用户看到“我们正在升级”页面,而不是404。我想我必须使用2 Rails应用程序,对吗?