问题标签 [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.
apache-kafka - Haproxy 背后的 Spring Cloud Stream Kafka Broker
我们有一个带有 apache kafka binder 的 Spring 云流应用程序。有人可以帮助提供代码片段如何在 haproxy 后面使用 kafka 代理和 zookeeper,这不仅是出于负载平衡的原因,也是为了帮助进行蓝绿色部署。我们只有一个 kafka 可以被两个蓝绿色组件读取。我们希望限制从 kafka 读取的绿色组件,直到它被交换成为活动端。
amazon-web-services - 如何在 AWS 中使用 Terraform 实施蓝/绿部署而不损失容量
我看过多篇讨论蓝/绿部署的文章,它们始终涉及强制重新启动启动配置和自动缩放组。例如:
https://groups.google.com/forum/#!msg/terraform-tool/7Gdhv1OAc80/iNQ93riiLwAJ
除了将 ASG 的所需容量重置为默认值外,这通常效果很好。因此,如果我的集群负载不足,那么容量会突然下降。
我的问题是:有没有办法在不损失容量的情况下执行 Terraform 蓝/绿部署?
amazon-web-services - 新应用程序版本的 AWS 不可变更新
尝试使用不可变的部署策略在 AWS Elastic Beanstalk 上部署新的应用程序版本。有没有办法确定 AWS 如何处理从旧实例到新实例的流量?因为看起来在给定点在负载均衡器后面运行了 2 组(旧 + 新)实例。
这可以看作是蓝绿部署的变体吗?既然我们使用了相同的负载均衡器并简单地更改了在这些实例上运行的 App-Version?
我在 AWS 文档中没有看到明显的解释。
sql - SQL 数据库蓝/绿部署
我正在处理一个新项目的基础设施。它是一个标准的 Laravel 堆栈 = PHP、SQL 服务器和 Nginx。对于 PHP + Nginx 部分,我们使用的是 Kubernetes 集群——因此可以进行扩展和蓝/绿部署。
说到数据库,我有点不确定。我们不想为 SQL 使用 Kubernetes,所以目前的想法是使用 Google Cloud SQL 托管服务(竞争对手是否更适合 SQL 的蓝/绿部署?)。问题是它可以在新旧版本的数据库节点之间同步数据吗?
假设我们有 3 个活动 Pod 和至少 2 个活动数据库节点(和一个负载均衡器)。
所以标准部署应该是这样的:
- 使用新代码创建 Pod。
- 使用当前数据创建新的数据库节点。
- 新的 Pod 获取新的环境变量以连接到新的数据库。
- 数据库迁移在新的数据库节点上运行。
- 运行新 Pod 的健康检查,如果通过,则 Pod 开始接收流量。
- 其中一个旧 Pod 已脱机。
它应该继续执行此迭代,直到所有 Pod 和数据库节点都被替换。
问题是这可以与数据库一起使用吗?假设网站上有一个用户正在使用最后一个 OLD 数据库节点写入一些数据,当切换到 NEW 数据库节点时,数据根本不存在,直到最后一个数据库节点升级。它们可以在幕后同步吗?Google Cloud SQL 托管服务是否提供此功能?
还是有完全不同的更好的解决方案来解决这个问题?
谢谢!
amazon-ec2 - 不中断会话的 AWS WebApp 蓝/绿部署
我的用例:我有一个由位于 1 个 EC2 实例前面的弹性负载均衡器提供服务的 Web 应用程序。该架构旨在模拟蓝/绿部署流程,这意味着当我需要更新代码并切换我的 ELB 指向的实例时,我将打开第二个实例。
假设 Instance-A 具有我的应用程序的当前版本,我的 ELB 正在将流量路由到该实例,因为它是唯一可用的。我想将更新推送到我的应用程序,因此我在实例 B 上部署了我的应用程序的新版本(打开实例 B 并部署新版本的代码)。同时,任何访问我的应用程序的用户仍将被路由到 Instance-A 并创建一个会话,直到我进行切换。
一旦部署了Instance-B并且可以使用较新的代码,我如何确保 ELB仅在Instance-B上发送新流量,并在instanceA上保留旧流量(以前的用户及其会话),直到我从负载均衡器?
希望这是有道理的,我知道这种架构设计不是蓝/绿部署的正确实现。但是由于我的应用程序的大小和预算,我想限制我使用的实例数量。
谢谢您的帮助。
spring-boot - 无法将服务部署到无路由的 PCF
在将我的一个应用程序推送到PCF
. 我想为我的服务实现蓝绿部署,我想部署没有路由的 app-v2 版本,然后在部署完成后添加临时路由。因为我需要在应用程序启动时绑定一个市场服务UAA
单点登录服务。(Provides identity capabilities via UAA as a Service)
此UAA
服务在推送时导致问题。
cf 命令用于部署
cf push -f manifest-dev.yml --no-route
错误截图:
PCF 版本 2.x
amazon-web-services - Elastic Beanstalk 蓝绿部署,无需批准步骤
我和我的团队正在研究为我们的前端添加无停机时间部署,这些部署目前位于 Elastic Beanstalk 上。我们目前有一个使用 AWS CodePipeline 的 CI 管道,我们希望对其进行修改,以便它可以使用蓝绿色部署。
我一直在阅读有关该主题的大量内容,并按照此处找到的指南进行操作:
我的问题是关于删除批准步骤,我们的团队认为这对我们的用例没有必要。
如果我们删除手动审批?管道如何知道继续?我了解您可以在 Elastic Beanstalk 环境更新后发送消息,但我看不到该消息可以通知管道推进步骤的方式。
有没有人遇到过这个挑战?或者对 AWS 上的蓝绿色实施有任何建议。
java - 在蓝/绿部署期间等待 Hazelcast 缓存完成重新平衡
在我的设置中,我有两个应用程序实例,它们同时启动并处理请求,使用 Hazelcast 共享状态和锁定。默认设置是所有数据都在两个节点上,其中 50% 是活动的,50% 是另一个节点的备份。
我希望在我的设置中添加蓝/绿部署,这样我就可以部署一个新版本,而不会中断处理请求,也不会错误地丢失任何数据/处理请求。
在部署期间,我会关闭应用程序的一个实例,这意味着剩余的实例现在将拥有 100% 的实时数据和处理请求。如果该实例出现任何问题,我会丢失所有数据(我没有备份设置) - 我很高兴接受这种风险。
一旦我启动了应用程序的新版本实例,Hazelcast 应该开始重新平衡缓存,使其 50% 的实时和 50% 的备份再次在每个实例上。正是在这一点上,我想阻止并等待重新平衡完全完成,然后再将新实例宣传为 live。完成后,新实例有 50% 的实时数据和 50% 的备份。
重新平衡完成后,我可以关闭第二个版本,启动新版本,Hazelcast 将初始化重新平衡,我会阻塞,等待重新平衡完成,然后将第二个实例宣传为活动。
我的蓝/绿部署现在已经完成。
问题:如何阻止新实例直到重新平衡完成(它已收到所有数据)?
amazon-web-services - ECS 上蓝/绿部署所需的 Cloudformation 脚本
我正在尝试为具有蓝绿色部署支持的 AWS ECS编写云形成模板。AWS 最近在 ECS 中添加了这个蓝绿色功能,但在 cloud-formation 模板中找不到任何更新它的参考。他们提供了有关如何通过 UI 而不是通过云形成来实现的文档。我猜,AWS 可能不会更新他们的云形成文档,因为它是一项新功能。任何帮助查找文档将不胜感激。提前谢谢你。