gpt4 book ai didi

.net - 当 B 是回退时的一种 A/B 测试

转载 作者:行者123 更新时间:2023-11-28 21:24:51 26 4
gpt4 key购买 nike

实际上可能存在更好的术语来满足我的需要,但我没有意识到这一点,对于任何建议和/或适当编辑问题主题的人,我将不胜感激。

考虑部署到生产服务器的 Web API 服务 S。让我们将其视为真实的工作来源。

然后,例如,我需要更新一些外部依赖项或更改基础架构代码,既不直接影响核心业务逻辑也不影响服务的公共(public)契约。

因此我得到 S_updated,它必须通过暂存阶段,然后才能部署到生产环境。由于对代码库所做的更改,我希望该服务可以像以前的版本一样工作,或者由于集成问题而根本无法工作。仍然存在以某种方式改变系统行为的风险,但我可以接受它并期望单元测试成为一个相当好的安全网。实践也证明了这一点。

我真正想要的是能够将 S_updated 部署到生产环境中,并让一些代理服务将所有或部分(取决于配置)失败的请求分派(dispatch)给以前的 S 服务。

是否存在针对此类功能的通用可配置解决方案?

最佳答案

Paolo 的评论是正确的。你问的是Canary release process.

部署后,客户端将有很高的机会访问旧服务,而访问新服务的机会很小。因此,如果调用失败(由于新服务中的错误),客户端可以重复调用并很有可能成功连接到旧服务。

如何执行此操作取决于您使用的基础架构。

例如,如果您要使用 kubernetes 集群,您将为该服务配置前端负载均衡器,以仅将一小部分流量发送到正在运行的第二个集群(或第二个服务,如果在同一集群上运行)服务的新版本。

另一个例子是,如果您使用的是基于 DNS 的负载平衡解决方案,则必须将 DNS 策略更改为加权模式,该模式会将一小部分流量发送到具有新服务的服务器。

关于.net - 当 B 是回退时的一种 A/B 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43465704/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com