问题标签 [canary-deployment]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
16 浏览

apache - 使用 Apache 将更新部署到 install4j 应用程序的金丝雀

我有一个带有 install4j 自动更新的桌面应用程序(在应用程序启动时检查)。我想分阶段推出更新。

为此,我正在考虑让Apache 负载均衡器为我的一部分用户提供更新版本的 updates.xml。我看到的问题:

  • 如果对updates.xml 请求的响应设置了一个cookie,那么对媒体部分的请求是否会包含该cookie?需要 cookie 来防止失去粘性,如所提供链接的“负载平衡器粘性的详细信息”部分所述。我不希望客户端应用程序接收更新的updates.xml,然后在获取媒体部分时出现404,因为它的请求被重定向到“旧”服务器。

  • 如果我将负载平衡设置为将 10% 的流量重定向到新的 updates.xml,这并不意味着我将让 10% 的用户获得更新的版本。实际百分比将没有相关性。这是因为即使是最新的应用程序仍会在启动时检查 updates.xml,计入总流量。我想这是可以的,只要我不需要精确的数字而只是想避免大爆炸部署。但是有更好的方法吗?

编辑

我在部署文件夹上实现了负载平衡。工作流程是这样的:

  • 我有绿色服务器和蓝色服务器。流量仅定向到绿色服务器。
  • 当我想部署时,我将新的updates.xml 和媒体文件复制到Server Blue,并且仅将媒体文件复制到Server Green,旧的updates.xml 不会更新。
  • 我们将 90% 的流量路由到绿色服务器,10% 到蓝色服务器。
  • 随着我们对新版本的信心增强,我们逐渐增加了 Server Blue 的流量。
  • 当我们准备好 100% 推出时,我们将新的 updates.xml 复制到 Server Green,现在两台服务器都有完全相同的文件。
  • 此时,我们如何配置流量平衡并不重要。它可以是 100-0、50-50、0-100 等。我们选择 90% 的绿色 - 10% 的蓝色,因为这是我们下一次部署所需的平衡配置。在下一次部署中,我们只需部署到蓝色服务器,无需再次更改平衡配置。
0 投票
1 回答
135 浏览

kubernetes - 是否有金丝雀属性可以检查 nginx-ingress 片段

我有这两个用于蓝色(生产)和绿色(金丝雀)部署的入口,我希望在我的 nginx 片段中根据请求是来自生产服务还是来自金丝雀来设置某些内容。if片段中的语句应该是什么?

0 投票
1 回答
71 浏览

c# - WPF 应用程序 - 发布策略

我正在寻求一些关于改进我们内部 WPF 应用程序的发布策略的建议。目前,我们正在使用 ClickOnce 向我们的用户发布新版本。仍然是手动的,但我们正在研究使用 DevOps 管道来简化它。

我们注意到,随着我们的应用程序的增长,我们在测试阶段做出一些重大更改而没有注意到它的风险越来越大。我们有一个小团队和紧迫的最后期限,所以测试阶段是有限的。因此,为了改进我们的工作方式,我们正在研究金丝雀版本。这意味着我们首先向一组关键用户发布新版本,当他们没有注意到任何问题时,我们将为所有人发布它。

从应用程序的角度来看,我可以让它工作。但我不确定我们如何使用我们的数据库进行这项工作。

有没有人已经在桌面应用程序中尝试过这种方法?还是有更好的方法来做这种事情?

任何帮助表示赞赏!

亲切的问候蒂姆

0 投票
0 回答
57 浏览

amazon-web-services - AWS CodeDeploy 使用金丝雀策略具有两个侦听器 http 和 https

我在 ECS 中有一个容器,其部署与 Codedeploy 链接并使用 Canary 部署策略来控制流量随时间的分布。

在 codedeploy 中,我们为生产配置了两个目标组和一个侦听器,用于控制流量。但是,如果我们在生产中有两个监听器,一个用于内部通信(80 个监听器),一个用于外部通信(443 个监听器)?

我们可以为 80 定义一个 test listner,但是如果我在 test listner 组中提供 http,那么 test listner 中的流量将一次全部转移,这会导致服务间通信的流量不均匀,并将流量路由到新版本。

0 投票
0 回答
40 浏览

azure-functions - Azure Function Service Bus 触发蓝绿部署

当 Azure Function 使用服务总线触发器时,是否可以实现蓝绿色部署?HTTP 触发器有很多选项,但是对于未通过 HTTP 公开的东西,有人会如何去做呢?

0 投票
0 回答
19 浏览

amazon-web-services - AWS APi 网关金丝雀部署

大家好,我的 AWS API 网关有问题 我有 2 个 URL,我想执行金丝雀部署 我正在手动构建一个 REST API,我在集成类型中使用 HTTP 我想知道在这种情况下如何执行金丝雀谢谢。

0 投票
0 回答
33 浏览

amazon-web-services - 使用 CodeDeploy 和 CodePipeline 为 Lambda 部署金丝雀

我似乎无法为 lambda 函数设置使用 CodeDeploy 的管道。我努力了:

  1. 生成 appspec.yml 文件作为 CodeBuild 操作的一部分。在这种情况下,CodePipeline 压缩文件,并且 CodeDeploy 说它找不到 appspec 文件。

  2. 手动生成 appspec.yml 文件(Lambda 调用)。在这种情况下,CodeDeploy 给出错误“部署指定修订是空文件,但提供的修订是 zip 文件。” (绝对不是 zip 文件)

有没有人成功做到这一点?

注意:我知道 SAM 显然是这样做的。但此时很难引入新工具......