gpt4 book ai didi

php - 如何管理 Web 应用程序的逐步部署

转载 作者:搜寻专家 更新时间:2023-10-31 20:53:38 25 4
gpt4 key购买 nike

我正在开发一个网络应用程序,并希望能够在我们的用户之间错开新构建和版本的部署。例如……

  • 部署新版本的应用程序并将几个测试帐户迁移到它进行测试
  • 当测试成功时,将 5% 的客户转移到新版本并监控这些客户的支持问题和服务器负载问题。
  • 如果仍然正常,请逐渐将越来越多的客户转移到新版本,直到每个人都更新为止。

来自 FogCreek 的 Fogbugz 和 Kiln正在使用这样的部署系统。你可以阅读它here...

我目前要解决的问题是系统上的不同帐户可以使用不同版本的代码

管理和控制它的好方法是什么? Apache 可以在这里做一些繁重的工作吗?我想避免过多的开销或奇怪的加载程序脚本来确定将请求发送到哪里。 Fogbugz on Demand 等网络应用程序如何处理这个问题?是否有公认的设计模式?

用户通过域名识别(例如 user1.example.com、user-bob.example.com 等)。

最佳答案

有数百种方法可以轻松实现这一目标;因此,让我们在不讨论架构细节的情况下从高层次思考:

  • Yahoo 和 MSN 等大型公共(public)网站使用随机样本处理设计更改,并设置超时时间较长的 cookie 以确定谁应该接收新设计。
  • 对于付费升级和测试版邀请,您应该能够识别和标记哪些客户帐户将在登录时收到新的“设计”或功能集。例如,Digg v4 的新更新仅适用于登录和选择加入的客户。 Facebook 通过新的个人资料页面在他们的系统中进行了类似的展示。
  • 您可以决定为 Beta 测试人员付费。您可以轻松使用亚马逊的 Mechanical Turk 或 custfeedback.com 等网站

具体情况取决于您和您的架构。希望您在编写软件时考虑到了此功能;希望您已经提供了在部署时轻松提供应用程序和数据库升级的简便方法。 Magento(一个开源电子商务平台)可以很好地处理这个问题。每个模块都以插件的形式构建,其每个组件都记录自己的版本。根据配置文件中保留的新/ future 版本,使用安装和升级脚本即时执行数据库升级。

您可以选择将您的 Beta 测试人员转移到一个新的域或数据库,这些域或数据库比您的生产机器具有更详细的日志记录和实时分析。这是 Kiln 博客文章中提到的方法 - 他们引用了网站 http://martinfowler.com/bliki/BlueGreenDeployment.html - 最终,无论您如何完成帐户和流量的隔离,您最终都必须合并。您很可能需要在维护窗口中执行迁移,并让每个人都升级到相同的版本。

祝你好运!

关于php - 如何管理 Web 应用程序的逐步部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4960759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com