AWS 部署策略
介绍
在将新资源和代码版本部署到生产环境中时,自动化和最小化服务中断是理想的选择。部署策略很重要,因为它可以减少手动配置并极大地提高可维护性,同时减少部署期间的停机时间。
AWS 为其服务提供了多种部署策略,包括但不限于 Elastic Beanstalk、CodeDeploy、ECS 和 EKS。您将遇到的三种最常见的部署策略是就地部署、蓝/绿部署和滚动部署。这些部署策略内置于 AWS 服务中,可帮助您以自动化、系统化的方式部署新应用程序。本指南将介绍这三种策略的工作原理。
蓝绿策略
蓝/绿部署策略会创建两个独立的基础设施环境。蓝色环境包含以前的代码或配置,而绿色环境包含最新的代码或配置。然后,通过使用 Route 53 将 DNS 记录重定向到绿色的负载均衡器,将流量转移到最新环境(绿色),并从以前的环境(蓝色)转移出去。
由于两种环境都有自己的网络,蓝绿策略的优势在于,如果遇到故障,可以快速无缝地回滚部署。实施蓝绿策略的缺点是由于同时运行两个基础设施环境,成本会增加。
蓝绿部署演练:
在第一阶段,流量导向蓝色环境。
然后,在 DNS 进行更改后,流量将被重定向到绿色环境的负载均衡器,该负载均衡器将为应用程序的最新版本提供服务。
就地策略
与蓝绿策略不同,就地部署使用当前基础架构来部署应用程序的新版本。
这种部署策略比蓝/绿部署更便宜,因为无需配置新的基础设施;但是,实施这种策略有一个缺点。缺点是,在部署最新代码时,它会停止在基础设施上运行的应用程序。如果没有足够的资源来处理停机时间,您可能会看到应用程序出现轻微中断。
有多种方法可以减少停机时间。其中一个例子是错开部署,以便有足够的基础设施资源来处理需求。使用就地部署策略的第二个缺点是回滚速度较慢,因为如果发生故障,它会发生变化。这是因为必须恢复基础设施,而不像在蓝/绿中将流量重定向到上一版本的负载均衡器。
就地部署演练:
如前所述,就地部署不会启动新的基础设施资源。它会占用当前基础设施,并在安装新代码之前关闭在其上运行的应用程序。
该过程的下一步是将新代码部署到基础设施上,然后重新启动应用程序。
然后,部署将重复步骤 1 中的过程,但在下一个运行应用程序版本 1 的资源上。
最后,一旦新版本的应用程序部署到每个基础设施资源上,部署就完成。
滚动策略
最后一个部署策略是滚动部署。这种部署完全取代了底层基础设施,就像蓝绿部署一样。资源一次下线一个,并替换为运行最新版本应用程序的新资源。
滚动部署和蓝绿策略之间的区别在于,滚动部署的基础设施不像蓝绿部署那样位于单独的网络或环境中。与就地部署一样,如果在部署期间出现问题,滚动部署会面临回滚风险。为了缓解中断,滚动部署需要其他基础设施资源来处理需求。一次只能处理有限数量的资源以防止停机。
滚动部署演练:
就像就地部署一样,资源被拆除,但这次最新版本的代码并未部署到该资源上。
使用最新代码创建的全新资源。
上述过程重复进行,直到所有新资源都已部署完毕并顺利运行。
结论
这些不同的部署策略旨在通过实施卓越运营和可靠性支柱来强化 AWS 架构完善的框架。AWS 可帮助您确保使用以下三种部署选项之一快速部署您的应用程序:蓝/绿、就地部署和滚动部署。蓝/绿部署通过启动一个单独的环境并提供运行最新版本应用程序的资源,从而提供最安全的方法。就地部署使用当前资源来部署代码。对于不使用不可变资源的组织来说,此替代方案是首选。最后,滚动部署会像蓝/绿部署一样创建新的基础设施;但是,与就地部署类似,资源不会分成不同的网络。通过遵循这些部署策略中的任何一种,都可以最大限度地减少应用程序中断,同时为部署提供自动化解决方案。
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~