NGINX.COM
Web Server Load Balancing with NGINX Plus

之前的一篇博文中,我们介绍了应用中断会削弱客户信心并导致业务陷入拥塞。在当今市场中,如果企业无法快速适应市场和推出新服务,则可能会陷入不利境地。

随着 DevOps 的兴起以及持续集成和持续交付 (CI/CD) 支持工具的改进,帮助企业提升了部署和发布代码的能力,并取得了出色成效。但是,在部署新的更新时,他们仍希望能够规避不良部署的风险,从而最大程度地降低客户服务停机的可能性。

这篇博文探讨了协助 DevOps 和 Netops 团队无缝、安全地将更新部署到生产环境中的几种不同的部署策略,并介绍了 DNS 如何与特定部署模型结合使用。

 

蓝绿部署

蓝绿部署策略是指同时维护两个相同的环境,即“蓝色环境”和“绿色环境”。如下图所示,NGINX Plus 将用户请求转发到应用生产版本运行所在的蓝色环境中。而该应用的新版本则在绿色环境中运行,您可以在绿色环境中进行应用测试。待所有测试结束后,可更新 NGINX Plus 配置,将流量引导至绿色环境。

该部署策略的主要优势是可以通过部署适当的工具,例如 NGINX Plus,可以轻松地在环境之间切换流量。例如,使用 NGINX Plus API 更改一组后端服务器的设置,无需重启即刻生效。之所以能够降低风险是因为如果绿色环境出现了问题,只需调用一次 NGINX Plus API 就能回滚到蓝色环境。

 

滚动蓝绿部署

滚动蓝绿部署采用相同理念,但允许您缓慢地将流量从蓝色环境引导至绿色环境,直至后者完全接收所有的流量。而且,您可通过加权负载均衡算法在环境之间指定合适的流量均衡比例。

最大的优势在于,您可以随着版本稳定性的提高,缓慢地增加流入绿色环境的流量。这样,无论发生何种意外问题,只会影响少数用户。

 

灰度部署

灰度发布被用于将新的部署提供给部分应用用户或环境,类似于滚动蓝绿部署。关键区别在于灰度软件会监控应用的关键性能指标,以确保新部署能够像当前的生产版本一样稳定运行。

如果灰度软件未观察到性能指标的重大变化,就会慢慢将更多的流量引导至新环境,直至新环境接收了所有的流量。

为了出色地实施灰度发布,您需要相应的工具来执行所需精度的流量转移。灰度部署时间可能更长,具体取决于您的应用希望看到的流量层级。

 

使用 DNS 作为部署策略的一部分

DNS 如何在这些部署策略的实施中发挥作用?

DNS 是应用与用户之间的第一个接触点。为何不使用 DNS 将客户引导至应用的新版本呢?

F5 DNS 负载均衡器云服务是一款现代化可管理的 DNS 解决方案,可轻松集成到 您的 CI/CD 流水线中。它还允许您将用户位置视作流量导向标准,并通过 DNS 实施这些部署策略。基于比率的负载均衡算法往往与 F5 DNS 负载均衡器结合,可帮助团队跨数据中心、AZ 可用区或云提供商实施蓝绿部署。

强大的 API 驱动型 DNS 解决方案还可帮助您实施滚动蓝绿策略,以推进向新集群的迁移,就像我们的合作伙伴 Red Hat 就帮助 OpenShift 客户迁移到了 OCP v4。借助 F5 DNS 负载均衡器的声明式 API,OpenShift 运营商可先通过一小部分用户安全地测试新集群,从而降低风险。Ansible playbook 经常被用来调整引导至新集群的流量比率。

 

结束语

我们已经探讨了几种成功推出在线应用更新的策略,并介绍了作为现代全局流量管理解决方案的 F5 DNS 负载均衡器如何协助这些部署的推出。

欢迎使用我们的 DNS 负载均衡器免费版,了解 NGINX 软件和 F5 云服务解决方案是如何提高应用的性能和可管理性。

您也可以申请加入我们针对 DNS 负载均衡器即将推出的 NGINX Plus 集成抢先体验预览计划。此集成使您能够配置 NGINX Plus 实例,并与 DNS 负载均衡器共享配置和性能信息,从而优化全局应用流量管理。

Hero image
免费白皮书:
NGINX 企阅版全解析

助力企业用户规避开源治理风险,应对开源使用挑战

关于作者

Rick Salsa

高级产品经理

关于 F5 NGINX

F5, Inc. 是备受欢迎的开源软件 NGINX 背后的商业公司。我们为现代应用的开发和交付提供一整套技术。我们的联合解决方案弥合了 NetOps 和 DevOps 之间的横沟,提供从代码到用户的多云应用服务。访问 nginx-cn.net 了解更多相关信息。