当涉及队列时进行金丝雀发布

3

Fowler提到在旧版本仍在运行的情况下,只有很小一部分流量被路由到Canary版本。

这是在假设可以在负载均衡器/路由器级别控制路由的情况下。

我们有一个使用案例,其中微服务从队列中消耗并进行一些处理。我们想知道如何控制路由以将一部分流量定向到Canary消费者。

我们考虑的选项之一是拥有单独的“Canary队列”,但问题是生产者现在必须知道这个队列,这听起来像是一个问题。

这似乎是涉及队列的常见问题。对于此类应用程序,有关Canary如何采用的任何想法吗?

2个回答

2
正如您所写的,金丝雀发布的目标是通过将少量在线流量引导到新部署中,以最小化新部署中缺陷的潜在影响。如果您无法控制服务部署的路由,则可以通过调整新版本服务与当前版本服务的比例来调整新部署处理的流量百分比。
例如,您的队列正在由100个v1版本的服务实例池处理。为了进行金丝雀测试下一个版本,请部署1至10个v2版本并关闭1至10个v1版本。这将近似将1至10%的流量路由到新服务。
如果预期的新版本服务吞吐量存在显着差异,请考虑调整新旧服务的比例。
如果您当前服务的部署非常小,请考虑在部署新服务实例之前暂时增加已部署的当前服务总数。例如,假设您的活动部署有3个服务。在部署1个新版本服务之前,部署6个当前服务的更多实例将使您能够将金丝雀流量保持在更接近10%的水平。

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接