很显然我们在版本升级的时候不希望有用户正在操作,更多的是希望升级以后能有一个简短的线上测试。因此我们可能会选择服务中断一定的时间来完成这些任务,当我们在维护的时候,关闭访问,呈现给用户一个维护页面。这个其实称不上解决方案,GAE本身提供了这么一个隐性的功能,利用版本号(version: 0)的差异,使我们可以无缝升级。
1 2 3 4 |
application: oops version: 0 runtime: python api_version: 1 |
只是当数据库有变动的时候这种操作就比较危险了,还是提示给用户一个维护页面较安全。因此我做了一个通用的“System is maintenance.”页面,版本号为0,将application: oops改成相应应用的名字,部署到服务器上去,在需要关闭访问的时候切换到这个版本即可。维护和测试人员可以访问http://2.latest.app-id.appspot.com 形式的版本网址进行维护和测试。
下载 [download id=”18″]
-EOF-