像Google这样的大型网站需要确保它的服务始终可用。 同时Google经常升级它的服务器端代码。 用户甚至不会注意到这一点,他们可以照常使用Google。
现在,当我需要更改服务器端代码(php,python或cgi脚本等)时,我将closures服务器,replace以前的版本代码,然后重新启动服务器。 这种方式并不完美,用户将不得不等待服务器分钟。
如何在不影响用户的情况下悄悄升级服务器端代码?
基本上最简单的方法是在HAProxy之类的负载均衡器之后安装多个应用程序服务器(至less2个),然后执行滚动重新启动。 所以基本如此:
还有其他方法可以做到这一点,比如在Unicorn中重新启动零宕机 ,但这是最简单的,几乎适用于所有应用程序。
以下是来自Amazon的一篇关于loadbalancing的文章: https : //aws.amazon.com/articles/1639