概述
蓝绿部署是一种应用发布模式,可将用户流量从先前版本的应用或微服务逐渐转移到几乎相同的新版本中(两者均保持在生产环境中运行)。
旧版本可以称为蓝色环境,而新版本则可称为绿色环境。一旦生产流量从蓝色完全转移到绿色,蓝色就可以在回滚或退出生产的情况下保持待机,也可以更新成为下次更新的模板。
这种持续部署模式原本存在不足之处。并非所有环境都具有相同的正常运行时间要求或正确执行 CI/CD 流程(如蓝绿部署)所需的资源。但是,随着企业加大对数字化转型的支持,许多应用开始支持这种持续交付。
蓝绿部署是如何运作的?

举例来说,您开发了一个简单的云原生应用,这是一款手机游戏,用户可以点击屏幕上飞行的彩色气球来赚取积分。该游戏的后端由多个基于容器的微服务提供支持,用于处理游戏成绩、得分、运行机制、交流和玩家识别。
上线后,有数百名用户开始玩这款游戏。他们每分钟会产生数千条的事务记录。您的开发运维团队一直鼓励您早发布、常发布,因此您准备发布一个运行机制微服务的小更新,以增加红色气球的大小和速度。
而您无需等待至午夜将更新推送到生产环境(当活动用户的数量最少时),而是可以使用蓝绿部署模式在用户使用的高峰期更新应用。这一切都可以不中断服务地完成。
之所以能够做到这一点,是因为您在生产环境(蓝色)中使用了运行机制微服务,并将其复制到一个相同但独立的容器(绿色)中。在绿色环境中增加红色气球的大小和速度之后,它会经过 Q/A 和预演(可能由诸如 Jenkins 等开源压力测试项目自动执行),然后再与活动的蓝色环境一起推到生产环境中。
运维团队可以使用负载平衡器将每个用户的下一个事务从蓝色重定向到绿色,而一旦所有生产流量都通过绿色环境进行了过滤,蓝色环境便被置于脱机状态。蓝色环境可作为灾难恢复选项保持待机,也可成为下一次更新的容器。
红帽资源
蓝绿部署与 Kubernetes
Kubernetes 与蓝绿部署流程有关的一切都堪称天作之合,包括云原生应用、微服务、容器、持续集成、持续交付、持续部署、SRE 和 DevOps。作为一个自动执行 Linux® 容器操作的开源平台,Kubernetes 不仅有助于容器(用于封装云原生应用的微服务)的编排,还得到了一系列架构模式的支持:开发人员可以重复使用这些模式,而不必从头开始创建应用架构 。
声明式部署模式就是这些 Kubernetes 模式中的一种。由于微服务的规模本来就很小,因此它们的数量可以快速增加。声明式部署模式减少了部署新容器集(Kubernetes 架构中最小、最简单的单元)所需的手动操作。
为什么选择红帽?
原因很简单,因为我们拥有领先的企业 Kubernetes 平台——红帽® OpenShift,对其进行了优化,并将 CI/CD 功能内置其中。同时,我们还记录下分步式命令行提示和参数,以便在您的红帽 OpenShift 环境中推行蓝绿部署。
当您的企业级 Kubernetes 平台保持开源时,您就可以控制整个平台以及依赖该平台的所有内容,从而确保您的应用和服务能够正常工作,无论它们位于哪里或由谁提供支持。
所以您可以放心大胆地检查、修改和优化我们技术背后的源代码。红帽产品和技术深受《财富》500 强中 90% 企业的信赖*,借助这样的产品和技术构建的基础架构,让您几乎无所不能,无往不利。
红帽官方博客
获取有关我们的客户、合作伙伴和社区生态系统的最新信息。