我的堆栈是Wildfly,有角度,弹簧,RDS,云端。前端资源(html / js等)存储在应用程序中(即由Wildfly提供)。
对于后端和数据库,我可以在零停机时部署ELB后面有2个EC2,但我不知道如何处理这种情况:
有没有办法避免这种情况?我只能考虑为新参数设置默认值。或者API版本在这里有意义吗?
另一个问题:如果前端资源是由cloudfront + s3提供的,该怎么办?如何将新资源部署到s3与后端同步?
答案 0 :(得分:2)
我只能考虑为新参数设置默认值。或者会 API版本在这里有意义吗?
这听起来恰好是API版本要解决的问题。只要存在会破坏先前版本客户端的更改,您就可以更改API版本。
另一个问题:前端资源是如何传递的 cloudfront + s3?如何在s3中部署新资源 与后端同步?
同时部署它们取决于您。您需要以某种方式实现自动化的部署过程的一部分。您可以使用版本控制和部署顺序来帮助一些人。例如,如果您的整个前端部署在S3上:
如果您的前端UI是EC2服务器动态资源和S3静态资源的混合,并且EC2 UI组件和API作为同一部署的一部分进行更新,那么您可以为静态资源使用版本前缀在S3上允许一次提供多个版本。例如:
显然,这只是一些场景,你的情况可能会有所不同。通常,您需要使用任何资源(静态S3资源,API资源等)和智能部署顺序的版本控制,以确保最终用户不会看到服务中断。