我想托pipe一个物理机器两个相同的站点的副本, 以最大限度地减less升级期间的停机时间 。
我想我可以把一个负载均衡器放在机器前面,给这台机器分配两个IP,并在负载均衡器中设置IP。
问题是当我需要更新网站(其代码不是基础设施)。 我想我可以通过取出网站的一个“实例”来最大限度地减less停机时间,将其升级,然后将其重新上线,并对另一个网站执行相同的操作。
这可行吗?
这值得吗?
当然,这是我们所做的。 我们有两个Web服务器,A和B.我们有haproxy坐在他们的面前,忠实地平衡他们之间的请求。 和您一样,我们不会以请求必须返回其原始服务器的方式存储会话数据。
当我们想要升级时,我们将服务器A从池中取出。 我们执行升级并在内部testing网站。 然后,我们将服务器A放入池中,同时将服务器B从池中取出。 然后,我们升级服务器B,并重新放回。
上行:网站升级,停机时间为0。
缺点:在升级期间,您没有负载平衡或冗余。 为了解决这个问题,你需要更多的服务器。
至于是否值得,只有你可以回答。 我们的软件非常复杂,部署时间可能需要5分钟以上(而且完全是自动化的),而且几乎每天24小时都在使用。 所以这对我们来说是不容易的。
如果您的网站一天只有零星的stream量,或者大多数时间在说,工作时间,而您没有推动单个networking服务器可以处理的障碍,那么它可能不值得这么麻烦。 在svn export运行时抛出维护横幅10秒钟可能是更合适的解决scheme。
看看WebFarmFramework和ARR。 WFF将自动为您部署代码以及IIS设置。 另外,如果使用负载平衡器,则在升级发生时将使节点脱机。
实际上,我现在正在研究同样的问题,所以我不能在生产中certificate这一点,只是另一个想法。