问题标签 [blue-green-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.
kubernetes - 特定微服务的蓝绿部署
我正在使用 Kubernetes 集群来部署我们的一堆微服务。我能够同时管理所有微服务的蓝绿部署,如下所示
我的问题是,有时我只想部署 App1 或 App2 或两者都不是所有微服务。这可以使用蓝绿部署来管理吗?
实现的东西:(想用蓝绿策略只部署App3)
如果我使用蓝色部署运行 BlueApp3,并且 GreenApp1 和 GreenApp2 重新启动 BlueApp3。然后我测试了我的整个应用程序
一旦它可以正常工作,我会将 BlueApp3 转换为 GreeApp3,如下所示
- 这个策略好吗?
- 如果不是那为什么?
- 我们是否需要一次部署所有一堆 MicorServices 来实现蓝绿部署(这会导致不必要的部署)
- 我为一个特定的微服务所遵循的蓝绿部署策略的优缺点是什么。
aws-lambda - AWS Lambda 和 Gateway API - 使用 cloudformation 的蓝/绿部署
使用 cloudformation 模板使用 Gateway API 部署 lambda 函数时,我想将不同阶段创建的 Gateway API 放在 route53 后面,因此可以使用加权流量进行蓝/绿部署。是否可以在不手动登录控制台进行配置的情况下自动化整个过程?
deployment - 蓝绿部署与滚动部署?
蓝/绿部署和滚动部署有什么区别?我一直认为蓝/绿部署是流量从旧版本突然切换到新版本。
这篇关于 AWS 上蓝/绿部署的讨论展示了实现蓝/绿部署的各种不同策略,但它们似乎也符合滚动部署的定义。
蓝/绿部署是滚动部署的子集吗?
kubernetes - 使用 spinnaker 的 Red/Black 部署策略,并且两个版本仍然为流量提供服务
我目前正在设置 POC 大三角帆管道以部署到 kubernetes 集群。
尝试使用 spinnaker 的红/黑策略,我注意到它的行为不像我预期的那样。我希望它通过以下步骤保证只有 1 个版本获得流量:
- 部署黑色服务器组(kubernete 的副本集)并确保它是健康的
- 通过更新负载均衡器的目标将服务的流量重新路由到黑色服务器组
- 禁用红色服务器组
但实际上,至少在将它与 kubernetes 一起使用时,这里的第 2 步似乎映射到几个步骤:
- 将黑色目标添加到负载均衡器
- 从负载均衡器中删除红色目标
因此,我在这里获得了 2 个版本的流量服务。
据我了解,通过更新 service (load balancer) 的 pod 选择器可以在 kubernetes 中实现蓝绿色,所以我对为什么 spinnaker 的 kubernetes 驱动程序似乎没有利用这一点感到困惑。
谁能帮我看看我在这里缺少什么?
谢谢
amazon-web-services - 单 sqs 队列的蓝绿部署
目前我们有一个处理来自外部 JMS 消息队列的消息的系统。在我们的蓝绿部署中,激活堆栈的一部分是修改安全组以启用/禁用连接到外部 JMS 队列所需的规则,以便只有活动堆栈可以处理消息。这对我们当前的环境非常有用,但是外部队列并不那么可靠,因此我们希望将其替换为 SNS 主题 + SQS 队列。我们计划有一个订阅 SNS 主题的静态 SQS 队列。我们遇到的问题是如何启用/禁用从 SQS 队列读取的访问权限,以便我们可以进行蓝绿色操作并且一次只能从队列中读取 1 个堆栈?
会有多个实例角色,并且部分激活将修改角色以授予从 SQS 工作读取的权限?有更好的解决方案吗?
amazon-web-services - Get active elastic beanstalk environment info via AWS CLI
How can I retrieve information using the AWS CLI about the active elastic beanstalk instance setup in a blue/green manner (where two environments are running side by side).
Running the following command gives me an array of environments for my application:
Although I would prefer a command which only returned the active environment (and not the inactive).
Is the most accurate way to tell this by CNAME
containing the string inactive
from the command output?
The specific piece of data which I require is EnvironmentName
.
azure-web-app-service - Azure 上的多租户蓝绿部署
假设蓝色和绿色应用程序服务共享相同的数据库实例,您可以使用插槽来交换应用程序。您将如何处理破坏模式的更改,因为某些用户可能要发布一个不适用于新模式的请求?
根据我的理解,您似乎总是必须编写在两种情况下都可以工作的向后兼容代码来处理架构更改,这对我来说看起来不太理想。
digital-ocean - 避免更新 Terraform 中的资源
目前,我们使用 Terraform 为我们的应用程序使用蓝/绿部署模型。
我们的 TF 文件有蓝色和绿色的资源,如下所示 -
我的问题 - 有没有办法在不更新蓝色资源的情况下更新绿色资源,反之亦然Without Using Targeted Plan
。例如。如果我们更新安全组(var.security_groups)
,这是一个公共变量,更新将同时发生在蓝色和绿色上,我必须制定一个有针对性的计划(seen below)
,以避免蓝色资源与新安全组一起更新 -
java - 具有多个具有内部调用的微服务的蓝绿色部署
我有 8 个 Spring Boot 微服务,它们在内部相互调用。其他微服务的调用dns,定义在每个服务的application.properties文件中。
假设,微服务 A 由 A -> a.mydns.com 和 B-> b.mydns.com 等表示
所以基本上每个微服务都包含一个 ELB 和两个 HA 代理(分布在两个区域中)和 4 个应用服务器(分布在两个区域中)。
目前我正在创建新的绿色服务器(仅限应用程序服务器)并从 HA 代理级别切换实时流量。在这种情况下,当新版本的微服务正在测试时,它也会暴露给实时客户。
理想情况下,方法应该是为每个微服务创建整个服务器结构,包括 ELB 和 HA 代理,对吗?
但是,我怎么会面临使用测试 dns 进行测试的挑战。我可以将 ELB 映射到测试 dns。但是,在 application.properties 文件中硬编码的外部微服务 dns 呢?
在这种情况下我应该采取什么方法?
load-balancing - 如何通过 API 控制 Jelastic Traffic Distributor
流量分配器 ( https://docs.jelastic.com/traffic-distributor ) 是一个很酷的功能,它可以为您的应用程序添加负载平衡并启用蓝/绿部署。但是,似乎没有 API 来控制流量分配器,因此不可能自动推出新版本。
有没有办法做到这一点?