运维部署专题 发布模式

简介: 111

蓝绿部署

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

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

相关文章
|
18天前
|
缓存 前端开发 安全
|
18天前
|
存储 安全 Java
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
构建AI智能体:九十、图解大模型核心三大件 — 输入编码、注意力机制与前馈网络层
本文深入解析了大模型三大核心技术:输入编码、多头自注意力机制和前馈网络层,从应用视角阐述了它们的工作原理和协同效应。输入编码负责将文本转换为富含语义和位置信息的数学表示;多头自注意力机制通过多专家团队模式建立全局依赖关系,解决长距离依赖问题;前馈网络层则通过非线性变换进行深度语义消歧。文章通过可视化示例展示了词向量的语义关系建模、注意力权重的分布模式以及前馈网络的语义过滤功能,形象地说明了大模型如何通过这三层架构实现"广泛联系-深度加工"的认知过程。
101 3
|
5天前
|
监控 搜索推荐 物联网
一文读懂LoRA微调原理:大模型高效适配的核心逻辑
通过冻结大模型参数、仅训练少量低秩矩阵,实现高效微调:成本低、周期短、不破坏通用能力。适配医疗、金融等垂直场景,支持多任务复用与边缘部署,成为大模型落地首选技术。
一文读懂LoRA微调原理:大模型高效适配的核心逻辑
|
20天前
|
数据采集 人工智能 监控
构建AI智能体:七十七、AI古典文学:基于LoRA微调Qwen1.5-0.5B打造唐诗生成器
本文介绍了基于LoRA微调技术实现AI创作唐诗的方法。通过使用Qwen1.5-0.5B-Chat作为基础模型,仅调整0.34%的参数(157万),在CPU上39分钟即可完成训练。文章详细展示了从模型选择、28首原创唐诗数据集构建、LoRA参数配置到训练评估的全过程。实验结果表明,模型能生成符合主题的原创唐诗,但在格律平仄、意境深度等方面仍需优化。这一实践验证了LoRA技术在古典文学创作领域的可行性,为轻量化AI创作提供了有价值的参考。
205 16
|
2月前
|
机器学习/深度学习 人工智能 物联网
大模型微调有必要做吗?全参数微调、LoRA还是RAG?看完这篇你就懂了
在人工智能时代,若想以最小成本、最高效率赋能通用大模型专业的行业能力,关键在于找到效果、成本与灵活性的黄金平衡点......
489 5
大模型微调有必要做吗?全参数微调、LoRA还是RAG?看完这篇你就懂了
|
3月前
|
存储 数据采集 数据管理
116_大规模预训练数据管理与质量控制机制
在2025年的大语言模型(LLM)训练领域,数据管理和质量控制已成为决定模型性能上限的关键因素。随着模型规模的不断扩大(从早期的数十亿参数到如今的数千亿参数),对训练数据的数量、多样性和质量要求也呈指数级增长。一个高效的数据管理系统和严格的质量控制机制,不仅能够确保训练过程的稳定性,还能显著提升最终模型的性能和安全性。
|
2月前
|
数据采集 人工智能 自然语言处理
大模型微调「数据集构建」保姆级教程(超全)
2024年是“行业大模型元年”,但超80%微调失败源于数据问题。本文揭示从数据收集、清洗到增强的全流程方法论,强调“数据优先”而非“算法崇拜”,结合实战案例与工具推荐,助你构建高质量数据集,真正释放大模型业务价值。
1469 2
大模型微调「数据集构建」保姆级教程(超全)
|
19天前
|
敏捷开发 Java 测试技术
为什么要单元测试
本文探讨单元测试为何能让软件开发更快。通过剖析测试体系演进、测试金字塔理念,阐明单元测试在提升调试效率、代码质量与研发信心方面的核心价值,破除“写单测费时”等误区,倡导研发自主保障质量,推动项目高效持续交付。

热门文章

最新文章