我正在运营一个电子商务网站,它正在获得不错的流量。
我们的网站在以下堆栈上运行:
我们经常部署新的网站代码以包含新功能和错误修正。我们按照以下程序执行此操作:
webapps
目录ROOT.war
目录webapps
现在这个过程导致网站关闭大约20-30秒。这不仅会导致新客户在当时无法访问网站而导致新客户流失,而且还会导致与正在结账的现有客户签订订单时出现多个问题。
有没有办法解决这个问题?通过这种方式,我可以部署新版本的网站,而无需停机0次,也不会丢失现有客户的会话数据。
答案 0 :(得分:3)
这是一个非常广泛的问题,有许多可能的答案。
基本上你需要摆脱单一框设置并创建 - 手动/通过Cloudformation /其他东西 - 位于Elastic Load Balancer后面的2个或更多应用服务器。部署新版本时,其中一个框会使其实时流量耗尽,因此现有用户将由另一个工作实例提供服务。
或者您可以使用elastic beanstalk打包应用程序并让它为您完成所有繁重的工作,如果您的应用程序非常直接,这是一种非常AWS的方式。
在互联网上搜索蓝绿色部署。