优化词汇表

蓝绿色部署

什么是蓝绿色部署?

蓝绿色部署是一种软件开发技术,它利用了两个生产环境(“蓝色环境”和“绿色环境”),以使软件部署过程更容易和更安全。

两个生产环境尽可能相同,并且在部署新代码时,它将被推到当前处于非活动状态的环境中。一旦在生产中测试了新的变化,则路由器可以切换到点亮新变化的环境,使得进行平滑的切割。

蓝绿色部署用例

回滚

蓝绿色部署的主要好处之一是灾难恢复。因为生产有两个相同的环境,如果向一个(假设蓝版本)汇出了新的更改和任何问题,则路由器只能切换回具有旧版本的其他环境(绿色版本)代码零停机时间。

连续集成/连续交付(CI / CD)

其中一个目标之一 持续集成 (Devops技术)是通过自动测试和频繁的代码集成来获取软件并加快开发过程。 蓝绿色部署是一种部署策略,可以通过允许更多代码推动生产,同时降低新版本的风险,可以帮助实现这一目标。

生产中的测试

暂存环境和生产之间通常存在较小的差异,无论做出多大努力使它们相同。这可以导致在代码被推到生产之前无法发现的边缘案例和错误。蓝绿色部署允许 生产中的测试 通过将新代码推到实际生产环境,并在将其平稳转换为生产流量和实际用户之前,看看它是如何执行的。

金丝雀部署

金丝雀部署是当新的更改被释放到用户群的一小部分时,而不是向每个人推出。就像煤矿的金丝雀一样,这种小型受控测试可用于确定您的代码的新版本中是否存在致命错误。蓝绿色部署可用于此类 金丝雀试验 只需使路由器将流量的百分比直接指向新版本的代码,以了解它在推出更改为100%的用户之前如何使用实时流量执行。

A / B测试

蓝绿色部署的另一个潜在用例是 A / B测试。在此用例中,您将新版本的代码加载到蓝色环境中,并将您的用户流量的50%直接到蓝版本VS您的原始绿色版本。然后,您可以监视两个环境如何在关键指标方面执行,并使用统计分析来确定新应用程序的确切影响。

负载均衡

蓝绿色部署的另一个潜在用例是负载平衡。如果以这样的方式设置蓝色/绿色部署,因此两个生产环境在单独的服务器上(而不是虚拟机),路由器可以轻松地平衡生产环境的蓝色和绿色版本之间的流量,因为它们功能相同。

蓝绿色部署示例

假设您的开发团队正在运行Web应用程序,并希望发布一个新功能,但希望消除任何停机时间,并将其平滑过渡到新代码。除了您的临时环境外,您还可以使用路由器指向绿色版本的路由器来设置两个相同的生产环境(“蓝版本”和“绿色版”)。

然后,您可以将新更改推向生产环境的蓝版本,并查看其在实际生产设置中的执行方式。它可能会发现只有在生产设置中发生的错误,在这种情况下,您可以轻松回到开发,对用户零影响。

一旦您对应用程序的新版本的性能充满了充分的应用程序,您可以开始将用户流量的百分比指向蓝色环境,以便在实际用户运行Canary测试。如果没有发现任何问题,则可以将100%的流量路由到新环境,导致平滑功能释放。

如果发现任何问题,则已进行剪切,然后您可以轻松地将流量路由回到绿色环境,该环境具有先前版本的代码来执行易于回滚。

一旦你相信没有问题的新代码,你就可以将蓝色环境克隆到绿色的环境中,这样你就可以再次拥有两个相同的生产环境。然后,您可以继续在开发生命周期上,或者如果您在使用中看到尖峰,请根据需要使用第二台服务器作为负载均衡器。

功能标志与蓝绿色部署

蓝绿部署的替代开发方法是使用 特色标志 或者 功能切换。具有功能标志,新功能和代码包装在条件代码中,可以远程打开或关闭。这允许开发人员向生产推出新功能,并且有一种简单的回滚方法,而无需维护两个生产环境。

除了简单的开/关功能外,功能标志还可用于有针对性的卷展栏,其中仅针对用户流量的特定段启用功能。这允许使用如金丝雀部署和A / B测试的用例,而无需维护两个单独的生产环境。

如果您正在寻找一个简单的方法,可以使用功能标志开始, 优化推出 是一个免费的功能标记解决方案,从优,允许您在您的应用中快速安全地实现功能切换和A / B测试。优化的卷展栏可用于最流行的语言&库包括JavaScript,Ruby,Node,React和Python。

立即开始使用功能标志 优化推出!