我很想知道其他开发者如何处理网络应用程序的版本控制以及部署不同的版本。根本问题在于,当您部署新版本时,某人可能正在使用您的网络应用程序,此时他们没有客户端的Javascript等已经过时。
在客户端对媒体进行版本控制很容易,但是如果你的版本,你还需要对业务逻辑和数据库进行版本控制,这可能会让事情变得混乱......
所以我看到了几种处理这个问题的方法:
在部署新版本时,在网站上显示“升级”通知。
版本标记客户端并拒绝从旧客户端源向新版本提交任何内容。很公平,但它并没有真正与持续部署齐头并进。
持续数据库迁移 - 同时运行多个版本的应用程序(尽可能将用户迁移到新版本)。这将需要将旧数据库模式的任何更新“转发”到新模式。似乎最有吸引力的部署,但也可能非常复杂。
在所有三个中间的某个地方。
我应该注意到,我知道担心这种事情超出了大多数应用程序的需求,但我正在思考它,我很想知道别人如何处理它。
答案 0 :(得分:-2)
有很多工具可以满足您的具体要求。像Phing和Phingistrano。 Git也很简单,但不会显示离线通知和数据库部署。我建议不要在实时服务器上进行自动部署,在暂存时使用自动部署,在实时上使用手动部署。还要在google上寻找持续集成并尝试teamcity