2012-02-08 92 views
7

我很想知道其他开发人员如何处理Web应用程序的版本控制和部署不同版本。根本的问题是,当你部署一个新版本时,有人可能会使用你的网络应用程序,在这一点上,他们没有在客户端的Javascript等已经过时了。网络应用程序部署和多个版本

版本控制在媒体上的客户端是很容易的,但如果你的版本,你还需要版本的业务逻辑和数据库,这就是事情会变得凌乱......

所以我看到有几种处理方法:

  1. 部署新版本时,在网站上显示“升级”通知。

  2. 版本标记客户端并拒绝从旧客户端来源提交到新版本的任何提交。不够公平,但它并不真正与持续部署并驾齐驱。

  3. 连续数据库迁移 - 同时运行多个版本的应用程序(尽可能将用户迁移到新版本)。这需要将旧数据库模式上的任何更新“转发”到新模式。看起来对部署最有吸引力,但也可能非常复杂。

  4. 在所有三个中间的某个地方。

我要指出,我知道担心这样的事情是超出了大多数应用程序的需求,但我想这个问题,我很好奇,想知道别人如何对待它。

+0

复杂的问题。结帐以下回答: http://stackoverflow.com/questions/389169/best-practices-for-api-versioning – 2012-02-08 22:32:00

+0

好问题问 – bhargav 2012-10-23 11:21:26

回答

-2

有很多工具可用于您的确切要求。像Phing和Phingistrano。 Git也使它很简单,但不会显示脱机通知和数据库部署。我建议不要在活动服务器上进行自动部署,在分段和手动部署上使用自动部署。也期待在谷歌持续整合,并尝试teamcity