【问题标题】:How to deploy web apps in the agile way [closed]如何以敏捷的方式部署 Web 应用程序 [关闭]
【发布时间】:2010-12-05 23:55:29
【问题描述】:

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

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

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

【问题讨论】:

  • 顺便说一句:RoR 允许极其快速地开发应用程序。一个带有 admin-section 和 Markdown 的博客可以在十分钟内写完。
  • @TimeMachine - 真的吗?现在我想学习 Ruby 和 RoR。我在哪里可以得到这方面的一些信息?我在 Mac OS X 上。
  • 最初的 RoR 网站有一个名为“在 20 分钟内创建博客”的教程。是的,20 岁,但这是因为它适用于不熟悉 RoR 的人。 Mac OS X 已随 Xcode 一起安装了 RoR。如果安装了 Xcode,则可以使用 RoR。否则,安装 Xcode。
  • 我最喜欢的学习 RoR 的网站是railscasts.com。为新手和新手准备的大量教程。

标签: ruby-on-rails web-applications deployment agile


【解决方案1】:

最佳实践是什么

我假设您在这里尝试变得敏捷。你试图为部署推导出一组最佳实践有点吓人。就此而言,任何类型的敏捷团队最佳实践列表都是可怕的。如果你仔细研究过敏捷,你会意识到它需要团队去检查和适应并不断改进,当你认为你的团队找到了“最佳实践”的那一刻,你默认同意你可以停止改进,因此停止检查,适应和改进。敏捷估算与规划的作者 Mike Cohn 建议,敏捷团队不应提出一套最佳实践,而应通过检查和调整来不断改进。

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

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

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

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

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

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

【讨论】:

  • +1 哈德森推荐。
  • +1 表示“任何类型的敏捷团队最佳实践列表都很可怕。”
  • 感谢您的出色回答。当系统升级时,我希望我的用户看到“我们正在升级”页面而不是 404。我想我必须使用 2 Rails 应用程序,对吧?
【解决方案2】:

IMVU 是持续部署的典型代表,他们遵循“如果我们确定没有破坏任何需要立即部署的东西”的规则。他们现在的流程自动化程度令人印象深刻,但它始于这条规则。

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

  1. 总是有一个工作版本。这意味着持续集成在提交时运行自动化单元测试,并立即响应任何故障。在 IMVU,他们会自动恢复破坏构建的提交
  2. 广泛的功能测试。这就是让你确信你没有破坏任何东西的原因。这些测试往往很慢,因此您需要一种策略来缩短测试时间,例如在多台机器上并行运行测试或使用像 SauceLabs 这样的服务。
  3. 自动部署。永远不要手动部署。永远不要手动更改配置。使用相同的技术部署到所有环境。

当您提到持续部署时,大多数人会想到无需人工干预即可自动投入生产。您可以不做这些——按钮式生产部署——仍然可以获得很多价值。我们(urbancode,AnthillPro 的制造商)帮助很多客户将这些元素放在适当的位置。很少有人进行自动生产部署,但自动部署对每个人都有帮助。

jtf

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 2016-04-27
    • 1970-01-01
    相关资源
    最近更新 更多