如何在不影响用户的情况下与实时网站进行持续集成



我已经使用TFS版本控制和TFS Build 2010实现了持续集成。编译后的网站项目将被放到一个具有版本号的共享文件夹中。

现在我有一个非常基本的问题,可能是一个愚蠢的问题。当我们通常将VS 2010中的网站项目部署到Web服务器时,它会将App_Offline.htm文件上传到网站文件夹,因此不会向用户提供任何请求。发布完成后,将删除App_Offline.htm文件。在这段时间内,用户会看到停机。

如果我们在实时网站上使用CI,那么我们如何消除用户出现的中断。我相信CI的全部意义在于用户可以看到更新的功能,并且网站永远不会停机。

这是如何实现的?如果我们将网站项目部署到根文件夹,那么现有用户将受到影响,这当然是不可取的。

我想知道VS2010、TFS2010 Build&版本控制。

没有真正的万无一失的方法,服务启动时间从来都不是100%,这就是为什么人们通常在"9"中定义它

但是,如果你有多个web服务器(备份、故障转移、镜像等(,你可以在它们之间进行更新,这样当你更新一些服务器时,其他服务器仍然在线(尽管是旧版本(,为用户服务。

一般来说,只有一些最大的网站不得不如此谨慎地担心会出现短暂的几分钟宕机,所以要确保你把精力集中在正确的地方;(

关于在尽可能短的时间内关闭站点,我看到的唯一成功的方法是使用多个站点-负载平衡,或者在同一台机器上的两个站点+在发布/预热后交换主机头。但在大多数情况下,这是不值得的,发布不应该在几秒钟内关闭网站,在这段时间内,请求应该相对较少。你最好尝试一些你可以做的事情来帮助你的用户通过网站发布来生活。

将会话移出进程如果用户会话位于应用程序池中,则在发布新版本时它将丢失,请更改配置以将其移动到会话服务器或数据库中。

指定网站的机器密钥Viewstate(和Cookie?(使用网站启动时生成的密钥进行加密,如果网站因发布而重新启动,则填写表单的任何用户在回发时都将收到无效的Viewstate异常。(注意:这可能会带来其他安全隐患(

最新更新