问题标签 [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.
android - 切换到 3.0 canary 5 后 Gradle 同步失败
切换到Android Studio 3.0 canary 5后,我无法构建我的 gradle 经过一番搜索,我发现错误是由于过时的 Guava 库引起的,但我没有在我的项目中使用 Guava。
项目 Gradle
应用 Gradle
错误 :
此意外错误的可能原因包括:
- Gradle 的依赖缓存可能已损坏(有时会在网络连接超时后发生。)重新下载依赖并同步项目(需要网络)
- Gradle 构建过程(守护进程)的状态可能已损坏。停止所有 Gradle 守护程序可能会解决此问题。停止 Gradle 构建过程(需要重新启动)
- 您的项目可能正在使用与项目中的其他插件或项目请求的 Gradle 版本不兼容的第三方插件。
android-studio - 为什么我的 Android Studio 2.3.3 没有升级到 Canary?视窗
Android Studio 打开并要求我升级到 Canary,一旦下载了它并且我按照提示操作它仍然不起作用?
microservices - A/B 测试。在网关 API 中路由客户端
我正在开发一个基于微服务的新项目。它是一个内部应用程序,只有大约 10 个微服务。我们将使用网关 API 进行身份验证,并可能使用一些微服务聚合。(可能是带有 Spring Boot 的 Netflix zuul)
我不清楚的是我们如何为 A/B 测试和 Canary 测试进行路由。假设我有 100 个客户端,我们想要 A/B 测试一个新版本的微服务。客户端应用程序不需要更改,它只是对微服务提供的功能进行内部更改。
我知道我们会建立一个新的微服务,即(比如说)v2。我感到困惑的是如何将(例如)客户 1-10 引导到新版本。我们需要能够集中配置它而不改变客户端上的任何东西。
我们知道他们的 MAC 地址(以及其他识别属性),并且可以插入我们想要识别他们的消息的任何类型的标头。
那么我如何将这些引导到 API 的 v2 以进行 A/B 测试或 Canary 部署呢?
amazon-web-services - 如何处理 AWS elasticbeanstalk 上的金丝雀版本?
我之前已经看到它是通过让一个运行 HAProxy 的 EC2 实例完成的,该实例通过 json 文件/lambda 函数进行配置,进而通过粘性会话控制流量,进入两个单独的 elasticbeanstalk 应用程序。所以我们有两层负载均衡。
但是,这有一些问题,其中一个是:测试多个版本变得昂贵,需要越来越多的 EB 应用程序。
我所说的金丝雀发布,我的意思是,能够只发布一定比例的流量,以找出任何从开发人员、审查流程和 QA 流程中逃脱的错误,而不会影响所有流量。
使用 AWS 资源处理此类设置且不破坏银行的最佳方法是什么?:)
spring-boot - 如何使用 Netflix Zuul 进行金丝雀发布和动态路由?
我们面临的问题是我们需要做诸如动态路由和金丝雀发布之类的事情。因此,例如,我们部署微服务microservice-1
。然后,当有人完成一项大功能时,我们希望将其部署为微服务microservice-1.1
。
问题
是否可以使用信息(例如,来自标头的信息)动态重新路由请求,并路由到微服务版本microservice-1.1
而不是 on microservice-1
?
例如,有人需要此功能,他将修改/添加特定的 Header 并且对于所有请求,他将使用 new microservice-1.1
。如果缺少该标头,则应使用当前的 microservice-1 版本。
对于服务发现,我使用的是 Eureka。现在我正在研究linkerd,但不支持 Eureka,我现在正在研究它。当然,如果可以使用 Zuul 做到这一点,那就太好了。请告知在哪里看。
deployment - 用于金丝雀部署和编排的 Chef Provisioning
我正在寻找厨师功能,在部署工作之下。
配置:
1) 特定环境下部署节点机器的配置
2) 将服务实例的数量配置为始终在环境中处于活动状态
部署:
现在,只需进行上述配置。当我触发部署 N 个服务时。它将从部署环境中随机选择节点并启动总共 N 个服务。
多项服务:
如果我有 2 个节点并且我想启动 4 个服务,它应该在每个节点上启动 2 个服务。
服务故障恢复:
如果任何机器出现故障或任何节点中的任何服务出现故障。它将在任何环境节点中启动一个新服务。
amazon-web-services - 可以将 API Gateway 设置为具有用于金丝雀部署的粘性会话吗?
如果用户被发送到金丝雀部署,是否可以确保来自该用户的所有后续请求也进入金丝雀部署?从我的初步测试来看,API Gateway 默认情况下似乎没有这样做,那么有没有办法设置它让他们这样做?
deployment - 涉及队列时的金丝雀释放
Fowler 说,一小部分流量被路由到 Canary 版本,而旧版本仍在运行。
这是假设可以在负载均衡器/路由器级别控制路由。
我们有一个用例,其中微服务从队列中消耗并进行一些处理。我们想知道如何控制路由以将一部分流量引导到金丝雀消费者。
我们考虑的一个选项是有一个单独的“金丝雀队列”,但问题是生产者现在必须意识到这个队列听起来像是一种气味。
这似乎是涉及队列的常见问题。关于如何将 Canary 用于此类应用程序的任何想法?
deployment - 根据经过身份验证的用户设置负载均衡器
我正在尝试设置一个负载均衡器,它将重定向到特定版本的应用程序某些用户。到目前为止,我使用的是蓝/绿部署策略(所以一旦我制作了新版本的应用程序,我就会创建新环境并在那里重定向流量)。现在我想改变这种方法。我希望能够指定在身份验证后会看到新站点的用户(更有经验或其他),而其他用户仍将被重定向到旧站点。如果新版本出现问题,所有用户都会看到旧版本。目前我的负载平衡是在 apache 中进行的,并且身份验证是在应用程序级别完成的。那么这甚至可能吗?我知道我可以在应用程序中对其进行硬编码,但是如果新功能中存在错误并且新用户仍然被重定向到那里怎么办?然后我需要停止所有用户的应用程序并回滚到旧版本,我猜这很糟糕。我正在考虑使用外部 CAS,但是如果可能的话,我没有找到任何信息。所以我想问一下是否有可能,是否有任何工具(可能是一些 apache 插件)用于此目的?