蓝绿部署、A/B 测试和云雀发布

蓝绿部署、A/B 测试和云雀发布

作者:云和安全管理服务 2023-06-29 08:00:40

云计算

云原生 无论您是否使用特定的云技术,都可以实施所有这些策略。但正如您想象的那样,Docker和Kubernetes等技术对实施这些策略非常有帮助(如果甚至没有内置规定)。

近些年,“DevOps”非常热门,最近,我们团队讨论了部署最佳实践、热部署、回滚等,当提到蓝绿部署时,大家表现出浓烈的兴趣。

蓝绿部署已经在像亚马逊这样的地方实践了 10 多年。它们是一种安全、经过验证的方法。现在,蓝绿部署不是灵丹妙药,但它们有一定的用处。

其实还有A/B 测试,甚至 Canary 测试,在所有微服务、DevOps和云原生交流中,有很多关于它们的讨论,因此,我简单归纳了它们的区别。

蓝绿部署

Blue Green Deployments的详细介绍请参阅Martin Fowler 关于蓝绿部署的链接(http://martinfowler.com/bliki/BlueGreenDeployment.html)。它给出了总体要点。

它基本上是一种以可预测的方式发布应用程序的技术,目的是减少与发布相关的任何停机时间。这是在发布前为您的应用做好准备的一种快速方式,如果您发现问题,也可以快速回滚。

简单地说,您有两个相同的环境(基础架构),其中“绿色”环境托管当前的生产应用程序(例如 app1 version1、app2 version1、app3 version1):

图片

现在,当您准备对 app2 进行更改并将其升级到 v2 时,您将在“蓝色环境”中进行。在该环境中,您部署应用程序的新版本、运行冒烟测试和任何其他测试(包括那些用于运行/启动操作系统、缓存、CPU 等的测试)。当事情看起来不错时,您将负载均衡器/反向代理/路由器更改为指向蓝色环境:

图片

您监视由于发布而导致的任何故障或异常。如果一切看起来不错,您最终可以关闭绿色环境并使用它来发布任何新版本。如果没有,您可以通过将负载均衡器指向回快速回滚到绿色环境。

理论上听起来不错。但是有一些事情需要注意。

• 在绿色环境中长期运行的交易。当您切换到蓝色时,您必须优雅地处理那些未完成的交易以及新的交易。如果您的数据库后端无法处理此问题,这也会变得很麻烦(见下文);

• 企业部署通常不适合“微服务”风格的部署——也就是说,你可能有微服务风格的应用程序和一些传统的、难以更改的应用程序一起工作的混合体。为蓝绿部署在两者之间进行协调仍然可能导致停机;

• 数据库迁移可能会变得非常棘手,并且必须与应用程序部署一起迁移/回滚。有很好的工具和技术可以做到这一点,但在传统 RDBMS、NoSQL 和文件系统支持的数据库的环境中,这些事情确实需要提前考虑;盲目地说你在做蓝绿部署没有任何帮助——实际上可能会造成伤害。

• 你需要有基础设施来做到这一点;

• 如果您尝试在非隔离的基础架构(VM、Docker 等)上执行此操作,您将面临破坏蓝色和绿色环境的风险;

正如我所说,有一些很好的技术可以克服这些挑战并使这种部署方式非常有效,包括插入到持续部署管道中,但不要轻易跳入其中。

A/B测试

A/B 测试不是蓝绿部署,有些人会混淆这一点。A/B 测试是一种出于各种原因(例如可用性、流行度、引人注目度等)以及这些因素如何影响底线而测试应用程序功能的方法。它通常与应用程序的 UI 部分相关联,但当然需要后端服务才能执行此操作。您可以使用应用程序级开关(即知道何时显示某些 UI 控件的智能逻辑)、静态开关(在应用程序中)以及使用 Canary 版本(如下所述)来实现这一点。

图片

蓝绿部署和 A/B 测试之间的区别在于 A/B 测试用于测量应用程序中的功能。蓝绿部署是关于安全地发布新软件并按预期回滚。您显然可以将它们结合起来:使用蓝绿部署在可用于 A/B 测试的应用程序中部署新功能。

云雀发布

最后,Canary发布是一种将您的应用程序的新版本发送到生产环境的方式,它扮演“云雀”的角色,以了解它将如何执行(与其他应用程序、CPU、内存、磁盘使用情况等集成) )。这是另一种发布策略,可以缓解以下事实:无论您在较低环境中进行的测试级别如何,您仍然会在生产中遇到一些错误。云雀版本让您在完全释放扳机之前先试水。

图片

您获得的反馈越快,部署失败或谨慎进行的速度就越快。出于与蓝绿部署相同的一些原因,请注意上述事项;即,数据库更改仍然会绊倒您。

概括

无论您是否使用特定的云技术,都可以实施所有这些策略。但正如您想象的那样,Docker和Kubernetes等技术对实施这些策略非常有帮助(如果甚至没有内置规定)。例如,OpenShift和Fabric8通过提供使用这些技术所需的工具而无需担心底层细节,从而大大简化了使用 Docker 和 Kubernetes。

原文链接:https://blog.christianposta.com/deploy/blue-green-deployments-a-b-testing-and-canary-releases/

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/295616.html<

(0)
管理的头像管理
上一篇2025-05-21 15:18
下一篇 2025-05-21 15:20

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注