发布模式

简介: 蓝绿部署通过两套并行系统实现零停机发布,绿色为现役系统,蓝色为新版本。测试无误后切换流量,支持快速回滚。适用于系统内聚、数据解耦场景,保障发布稳定性。

蓝绿部署

蓝绿部署的目的是减少发布时的中断时间、能够快速撤回发布。

It’s basically a technique for releasing your application in a predictable manner with an goal of reducing any downtime associated with a release. It’s a quick way to prime your app before releasing, and also quickly roll back if you find issues.

蓝绿部署中,一共有两套系统:一套是正在提供服务系统,标记为“绿色”;另一套是准备发布的系统,标记为“蓝色”。两套系统都是功能完善的,并且正在运行的系统,只是系统版本和对外服务情况不同。

最初,没有任何系统,没有蓝绿之分。

然后,第一套系统开发完成,直接上线,这个过程只有一个系统,也没有蓝绿之分。

后来,开发了新版本,要用新版本替换线上的旧版本,在线上的系统之外,搭建了一个使用新版本代码的全新系统。 这时候,一共有两套系统在运行,正在对外提供服务的老系统是绿色系统,新部署的系统是蓝色系统。

蓝色系统不对外提供服务,用来做啥?

用来做发布前测试,测试过程中发现任何问题,可以直接在蓝色系统上修改,不干扰用户正在使用的系统。(注意,两套系统没有耦合的时候才能百分百保证不干扰)

蓝色系统经过反复的测试、修改、验证,确定达到上线标准之后,直接将用户切换到蓝色系统:

切换后的一段时间内,依旧是蓝绿两套系统并存,但是用户访问的已经是蓝色系统。这段时间内观察蓝色系统(新系统)工作状态,如果出现问题,直接切换回绿色系统。

当确信对外提供服务的蓝色系统工作正常,不对外提供服务的绿色系统已经不再需要的时候,蓝色系统正式成为对外提供服务系统,成为新的绿色系统。 原先的绿色系统可以销毁,将资源释放出来,用于部署下一个蓝色系统。

蓝绿部署只是上线策略中的一种,它不是可以应对所有情况的万能方案。 蓝绿部署能够简单快捷实施的前提假设是目标系统是非常内聚的,如果目标系统相当复杂,那么如何切换、两套系统的数据是否需要以及如何同步等,都需要仔细考虑。

BlueGreenDeployment中给出的一张图特别形象:

金丝雀发布

金丝雀发布(Canary)也是一种发布策略,和国内常说的灰度发布是同一类策略。

蓝绿部署是准备两套系统,在两套系统之间进行切换,金丝雀策略是只有一套系统,逐渐替换这套系统。

譬如说,目标系统是一组无状态的Web服务器,但是数量非常多,假设有一万台。

这时候,蓝绿部署就不能用了,因为你不可能申请一万台服务器专门用来部署蓝色系统(在蓝绿部署的定义中,蓝色的系统要能够承接所有访问)。

可以想到的一个方法是:

只准备几台服务器,在上面部署新版本的系统并测试验证。测试通过之后,担心出现意外,还不敢立即更新所有的服务器。 先将线上的一万台服务器中的10台更新为最新的系统,然后观察验证。确认没有异常之后,再将剩余的所有服务器更新。

这个方法就是金丝雀发布。

实际操作中还可以做更多控制,譬如说,给最初更新的10台服务器设置较低的权重、控制发送给这10台服务器的请求数,然后逐渐提高权重、增加请求数。

这个控制叫做“流量切分”,既可以用于金丝雀发布,也可以用于后面的A/B测试。

蓝绿部署和金丝雀发布是两种发布策略,都不是万能的。有时候两者都可以使用,有时候只能用其中一种。

上面的例子中可以用金丝雀,不能用蓝绿,那么什么时候可以用蓝绿,不能用金丝雀呢?整个系统只有一台服务器的时候。

A/B测试

首先需要明确的是,A/B测试和蓝绿部署以及金丝雀,完全是两回事。

蓝绿部署和金丝雀是发布策略,目标是确保新上线的系统稳定,关注的是新系统的BUG、隐患。

A/B测试是效果测试,同一时间有多个版本的服务对外服务,这些服务都是经过足够测试,达到了上线标准的服务,有差异但是没有新旧之分(它们上线时可能采用了蓝绿部署的方式)。

A/B测试关注的是不同版本的服务的实际效果,譬如说转化率、订单情况等。

A/B测试时,线上同时运行多个版本的服务,这些服务通常会有一些体验上的差异,譬如说页面样式、颜色、操作流程不同。相关人员通过分析各个版本服务的实际效果,选出效果最好的版本。

相关文章
|
9月前
|
运维 安全 API
内网系统IP离线数据库搭建与维护完整方案
本方案面向无外网内网环境,提供IP离线数据库全生命周期部署指南,涵盖规划、搭建、维护与应急,支持内网IP自定义映射、高并发查询与安全合规,实现数据自主可控、运维闭环,适配多规模企业架构。
|
9月前
|
人工智能 自然语言处理 PyTorch
构建AI智能体:九十四、Hugging Face 与 Transformers 完全指南:解锁现代 NLP 的强大力量
Hugging Face 是领先的自然语言处理开源平台,提供 Transformers 等核心库,支持数千种预训练模型,涵盖文本分类、生成、问答等任务。其 Pipeline 工具简化了模型调用,AutoClass 实现架构自动识别,助力开发者高效构建 AI 应用。
1700 10
|
SQL 人工智能 自然语言处理
做 AI 搜索优化的服务商怎么选?用一次可复核的 POC 完成筛选
如何选 AI 搜索优化(GEO)服务商? 别信榜单,用一次可复核的 POC 来筛。本文给出完整方法:用 10~20 个高价值提示词建数据表、用 SQL 复算提及率/推荐率/引用率、现场验证诊断与"监测—执行—复测"闭环,把服务商能力变成一条企业能自己复算的数据链路。
|
2月前
|
缓存 人工智能 API
DeepSeek‑V4全解析:Flash与Pro双版本性能差异、计费规则与API实战调用完整教程
DeepSeek‑V4是新一代MoE混合专家架构大模型,产品划分为Flash、Pro两个独立版本,两款模型统一标配百万Token超长上下文窗口,把百万级长文本能力下放到不同成本档位,既支持高并发大规模业务场景,也能胜任复杂逻辑推理、Agent智能体开发、深度代码工程任务。很多开发者在实际接入时,很难分清Flash与Pro的适用边界,对缓存计费、思考模式、Function Calling工具调用等特性理解模糊,同时缺少可以直接复制运行的完整API实操代码。本文从模型架构、性能差异、计费规则、业务选型、API调用实操、生产环境避坑等多个维度完整拆解DeepSeek‑V4,帮助开发者快速完成评估、调
793 0
|
9月前
|
人工智能 数据可视化 物联网
《显卡 4090 就能跑!小白也能炼出私有大模型》
大模型微调是AI落地的关键技术,通过定向训练让通用模型在特定领域“从会到精”。本文详解微调原理、LoRA/QLoRA等高效方法,并提供评估与实操建议,助力新手快速上手,实现低成本、高精度的模型定制。
807 4
|
9月前
|
监控 搜索推荐 物联网
一文读懂LoRA微调原理:大模型高效适配的核心逻辑
通过冻结大模型参数、仅训练少量低秩矩阵,实现高效微调:成本低、周期短、不破坏通用能力。适配医疗、金融等垂直场景,支持多任务复用与边缘部署,成为大模型落地首选技术。
一文读懂LoRA微调原理:大模型高效适配的核心逻辑
|
4月前
|
人工智能 自然语言处理 算法
GEO实战:用RAG构建外贸知识库
AI搜索时代,外贸企业缺的不是内容,而是结构化、可检索、可验证的企业知识库。本文以RAG为框架,详解如何将分散的资质、案例、流程等转化为“知识原子”,支撑GEO(生成式引擎优化),实现AI精准理解、可信回答与商机转化。
335 0
|
5月前
|
运维 监控 机器人
告警覆盖率90%以上,值班团队却越来越累?问题出在告警治理这一步
监控覆盖率做到90%以上,值班团队反而越来越累?本文从实际项目出发,拆解告警分级、去重、归并、路由4个动作,附Python去重逻辑和钉钉通知代码,帮你把"告警洪水"变成可直接处理的事件流。
659 1
|
6月前
|
人工智能 自然语言处理 算法
AI时代GEO优化:如何让AI更精准引用官方内容?
在AI搜索时代,传统SEO正转向生成式引擎优化(GEO)。Geo专家于磊首创“两大核心(人性化Geo+内容交叉验证)+四轮驱动(E-E-A-T嵌入、结构化语义、进阶关键词、权威引用)”方法论,助力企业构建AI信任,实现从流量增长到信任增长的跨越。
368 4
|
7月前
|
人工智能 JSON API
Laravel 13 正式发布 使用 Laravel AI 无缝平滑升级
Laravel 13 正式发布!要求 PHP 8.3+,支持原生 PHP Attributes、内置 JSON:API Resources、语义向量搜索、Cache::touch()、Passkey 认证、数据库驱动 Reverb 等重磅特性,并推出 Laravel AI SDK 与 AI 辅助升级工具 Laravel Boost。(239字)
586 0

热门文章

最新文章