• 我的订阅
  • 科技

什么是蓝绿软件交付部署?

类别:科技 发布时间:2023-04-23 15:40:00 来源:卓越科技

蓝绿部署模型是一种基于维护两个独立应用程序环境的软件交付发布策略。运行当前生产版本软件的现有生产环境称为蓝色环境,而新版本软件部署到绿色环境。作为新版本软件测试和验证的一部分,应用程序流量逐渐重新路由到绿色环境。如果未发现任何问题,则绿色环境将成为新的蓝色环境。之前的蓝色环境可以拿下来,为下一次发布建立新的绿色环境。

为什么蓝绿部署有用?

实施蓝绿策略的主要好处是1)应用程序停机时间最少或为零,以及2)在将用户切换到新软件版本或在出现不可预见的问题时回滚版本时对最终用户没有负面影响新版本或部署。

实现蓝绿部署所需的概念和组件包括但不限于负载均衡器、路由规则和容器编排平台(如Kubernetes)。

什么是蓝绿软件交付部署?

蓝绿部署的工作原理

如图所示,我们假设版本1是应用程序的当前版本,我们想要移动到新的更新版本1.1。版本1称为蓝色环境,版本1.1称为绿色环境。

两个环境切换流量的过程

现在我们有两个应用程序实例,分别名为blue和green,我们希望用户访问新的green(v1.1)实例而不是旧的blue实例。为此,我们通常使用负载均衡器而不是DNS记录交换,因为DNS传播不是即时的。

通过使用负载均衡器和路由器,无需更改DNS记录,因为负载均衡器引用相同的DNS记录,但会将新流量路由到绿色环境。这使管理员可以完全控制用户访问,这一点很重要,因为它可以在绿色实例出现故障时将用户快速切换回版本1(蓝色实例)。由于切换的速度,大多数用户不会注意到他们现在正在访问更新版本的服务或应用程序——或者他们已经回滚到以前的版本。

监控

流量可以逐渐或一次性从蓝色环境切换到绿色环境。随着流量流向绿色实例,DevOps工程师有一小段时间在绿色实例上运行冒烟测试。这一点至关重要,因为他们需要确保新版本的所有方面都在用户受到广泛影响之前正常运行。

实施蓝绿部署的好处

改进的用户体验——如上所述,用户不会遇到任何停机时间,如果需要,新环境可以立即回滚到以前的最佳状态。

灾难恢复——蓝-绿策略也是模拟和运行灾难恢复场景的最佳实践,因为蓝色和绿色实例的内在等效性以及在发生故障时立即故障转移到(备份)绿色实例的能力(生产)蓝色实例的问题。

模拟实际生产场景——使用Canary部署时,测试环境通常与最终生产环境不同。相反,我们使用一小部分生产环境并将少量流量转移到新系统。(在此处阅读有关CanaryAnalysis的更多信息。)相比之下,在蓝绿部署中,新的绿色实例可以模拟在蓝色实例中运行的整个生产环境。

提高开发人员的工作效率——DevOps工程师不得不等待低流量窗口部署更新的日子已经一去不复返了。蓝绿策略消除了维护停机时间计划的需要,开发人员可以在代码准备就绪后立即将更新快速转移到生产环境中。

实施蓝绿部署时要牢记的最佳实践和挑战

通过DNS切换选择负载平衡

不要使用多个域在服务器之间切换。这是一种非常古老的分流方式。DNS传播需要几小时到几天的时间,浏览器可能需要很长时间才能获得新的IP地址。您的一些用户可能仍由旧环境提供服务。

相反,使用负载平衡。负载平衡器使您能够立即设置新服务器,而无需依赖DNS。这样,您可以确保所有流量都提供给新的生产环境。

保持数据库同步

蓝绿部署的最大挑战之一是保持数据库同步。根据您的设计,您可以向两个实例提供交易,以便在绿色实例上线时将蓝色实例作为备份。或者您可以在切换前将应用程序置于只读模式,在只读模式下运行一段时间,然后将其切换到读写模式。这可能足以解决许多悬而未决的问题。

向后兼容性对业务至关重要。添加到新版本的任何新用户在回滚时仍必须具有访问权限。否则,例如,企业可能会失去新客户。此外,任何添加到新版本的新数据也必须在回滚时传递给旧数据库。

执行滚动更新

容器架构支持使用滚动或无缝的蓝绿更新。容器使DevOps工程师能够仅在所需的pod上执行蓝绿更新。这种分散的架构确保应用程序的其他部分不会受到影响。

实施蓝绿部署时要考虑的挑战

更改用户路由时出错

蓝绿部署策略在很多情况下是最佳选择,但也带来了一些挑战。一个问题是,在初始切换到新(绿色)环境期间,某些会话可能会失败,或者用户可能被迫重新登录到应用程序。同样,当出现错误回滚到蓝色环境时,登录到绿色实例的用户可能会面临服务问题。

使用更先进的负载均衡器,可以通过减缓新流量从一个实例到另一个实例的移动来克服这些问题。负载均衡器可以编程为在用户变为非活动状态之前等待一段固定的时间,或者为在指定时间限制后仍连接到蓝色实例的用户强制关闭会话。这可能会减慢部署过程并导致一小部分用户的某些交易失败或卡住,但与让路由器强制所有用户退出并转移流量相比,它将提供更加无缝和不间断的服务质量。

什么是蓝绿软件交付部署?

无缝蓝绿部署

什么是蓝绿软件交付部署?

瞬时蓝绿部署

基础设施成本高

蓝绿部署房间里的大象是基础设施成本。采用蓝绿战略的组织需要维护一个基础设施,使其规模扩大一倍,以满足其应用程序的需求。如果您利用弹性基础设施,成本可以更容易地吸收。同样,蓝绿部署对于硬件密集度较低的应用程序可能是一个不错的选择。

代码兼容性

最后,蓝色和绿色实例在生产环境中,因此开发人员需要确保每个新更新都与以前的环境兼容。例如,如果软件更新需要更改数据库(例如,添加新字段或列),则蓝绿策略很难实施,因为有时流量会在蓝绿实例之间来回切换。使用与所有软件更新兼容的数据库应该是强制性的,就像一些NoSQL数据库一样。

结论

蓝绿软件部署策略可能涉及大量成本,但它是使用最广泛的高级部署策略之一。当您希望环境在版本之间保持一致并且您需要跨新版本的用户会话的可靠性时,蓝绿特别有用。

举报/反馈

以上内容为资讯信息快照,由td.fyun.cc爬虫进行采集并收录,本站未对信息做任何修改,信息内容不代表本站立场。

快照生成时间:2023-04-23 18:45:03

本站信息快照查询为非营利公共服务,如有侵权请联系我们进行删除。

信息原文地址:

在 CI/CD 管道中实施蓝/绿部署的好处
蓝绿部署到底是什么?蓝绿部署指的是一种持续交付技术,旨在消除部署停机时间并实现几乎即时的回滚。该方法涉及设置两个几乎相同的生产环境,蓝色和绿色。自动化部署的挑战在将软件从最终测试
2023-05-08 09:13:00
MONTECH MKey系列机械键盘体验
...列机械键盘展现了类似“幻境”的绿野仙踪设计风格,以蓝绿色为基调,正面展现的是MONTECH无限镜面logo,左下方可以看到产品所属系列,背面有一些键盘主要特性的介绍。外包装的
2023-08-04 00:36:00
本文转自:检察日报蓝绿色水迹牵出暗排“真凶”重庆沙坪坝:一体化履职推动印刷行业整顿本以为将洗版室设在厕所就能躲过监测,不料,厕所门口的几滴蓝绿色水迹暴露了隐藏已久的秘密……由此,
2023-12-07 06:49:00
...文转自:浙江日报杭州富春湾新城做好“水文章”,保障蓝绿空间平衡发展张卉卉 柴家涵一江碧水映白云,悠悠绿水泛清波。大小浦水系是杭州高新区(滨江)富阳特别合作区(简称“滨富合作区
2023-09-27 05:50:00
本文转自:湖州日报构建蓝绿空间 保护生态本底南太湖未来城着力打造“最生态”样板地记者 童宁盈本报讯 记者日前来到位于南太湖未来城长兜港东岸,发现堤岸边的道路已经完成硬化,树木
2024-01-08 07:24:00
书写“蓝绿相依”新篇章!第六届青岛市大学生地球文化节成功举行
...技文化艺术节的系列品牌活动之一,本届地球文化节以“蓝绿相依”为主题,面向全国高校开展了“地球环旅知识竞赛”“地球微表情作品展”“地理模型制作大赛—作品展”“地球科普进校园志愿
2023-04-16 09:22:00
雄安新区“蓝绿交织”新城面貌正逐渐显现
...,居民住上新房。社区环境优美,配套齐全。雄安新区“蓝绿交织”的新城面貌正逐渐显现。由北京城建集团建设的郊野公园雄安主场馆,已经成为雄安市民最喜爱的游览目的地之一,也是雄安对外
2023-05-14 09:08:00
AMD出《阿凡达》7900XTX限定显卡!蓝绿海洋配色
...伙伴举办的特别促销和赠品活动进行赠送。这款显卡拥有蓝绿色海洋配色方案。新颖之处在于,显卡的整个油漆是热反应性的,这意味着它可以根据周围环境和自身的温度而变化,从而产生非常独特
2023-09-01 07:15:00
“蓝绿共生,地球之肾” 武汉市规划协会举办世界地球日主题沙龙
...规划协会邀请60余名常务理事、会员代表、专家,聚焦“蓝绿共生”,保护“地球之肾”,共同探讨自然生态修复与治理。武汉市规划协会秘书长王晓晖主持活动。通讯员商添赋 摄 活动现场
2023-04-21 20:27:00
更多关于科技的资讯: