我想知道有多大的应用程序(有多个应用程序服务器和负载均衡器)是实际版本的热更新,而不会让用户脱机。在此处跳过数据库shema - 仅限应用程序层。
例如,有几个glassfish服务器由haproxy平衡,我们想要更新多个服务器上的应用程序。
在这种情况下使用了什么?我知道这可能很复杂但请关注方法。
答案 0 :(得分:1)
Rails网站经常使用Capistrano来部署代码。代码在每个服务器上更新,网络服务器(主要是apache或nginx)通常使用像乘客这样的插件。乘客重新启动并重新加载已更新的代码库(通过rails根目录中的touch tmp / restart完成)。下一个Web请求将发送给正在使用更新代码的Passenger。
很多Twitter(从我听到的后端处理是在Erlang中),我相信几乎所有的Hulu都使用类似的技术。
答案 1 :(得分:0)
在> 1-server-shared-nothing-configuration中执行此操作的经典方法是使一台服务器脱机,即指示前端Web服务器或负载平衡器仅将流量定向到其他服务器。
然后可以升级并重新启动脱机服务器。然后重新配置前端以将流量分配给升级的服务器。
对所有服务器执行此操作最终会导致完全升级。