Web应用程序部署和多个版本

All*_*ine 8 database versioning deployment web-applications

我很想知道其他开发者如何处理网络应用程序的版本和部署不同的版本.根本问题在于,当您部署新版本时,有人可能正在使用您的Web应用程序,此时他们没有客户端的Javascript等已过时.

在客户端对媒体进行版本控制很容易,但如果你的版本,你还需要对你的业务逻辑和数据库进行版本控制,这可能会让事情变得混乱......

所以我看到了几种解决方法:

  1. 部署新版本时,在站点上显示"升级"通知.

  2. 版本标记客户端并拒绝从旧客户端源向新版本提交任何内容.很公平,但它并没有真正与持续部署齐头并进.

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

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

我应该注意到,我知道担心这种事情超出了大多数应用程序的需求,但我正在思考它,我很想知道别人如何处理它.

use*_*914 -2

有大量工具可满足您的具体要求。比如 Phing 和 Phingistrano。Git也使它变得简单,但不会显示离线通知和数据库部署。我建议不要在实时服务器上进行自动部署,在临时服务器上使用自动部署,在实时服务器上使用手动部署。还可以在 google 上寻找持续集成并尝试 teamcity