预算 200,求推荐能刷 openwrt 的路由器。
预算 200 元,之所以刷 openwrt 是为了给家里 ipv6 设置出入站规则,廉价路由器自带固件只有开关防火墙功能。
xiaohack博客专注前沿科技动态与实用技术干货分享,涵盖 AI 代理、大模型应用、编程工具、文档解析、SEO 实战、自动化部署等内容,提供开源项目教程、科技资讯日报、工具使用指南,助力开发者、AI 爱好者获取前沿技术与实战经验。
预算 200 元,之所以刷 openwrt 是为了给家里 ipv6 设置出入站规则,廉价路由器自带固件只有开关防火墙功能。
@Jimmy 记得来看。
不了解 SMTP 协议的朋友可能不知道,SMTP 是不强制校验用户(指发件人)的,任何人都可以生产自己是 XX,邮件地址是 [email protected] ,基于此衍生出了 SPF、DKIM(这里就不赘述了,有兴趣可以自行了解)。
有了这个原理,我们就可以查看 2libra 是否配置了 SPF 然后实施钓鱼。
查看 2libra 的 SPF 配置情况,可以看到没有配置 SPF,那么就可以钓鱼
可以自己搓协议也可以用在线的,这里为了方便就用了在线服务。
在线邮件伪造: https://emkei.cz/
From Name:告诉对方我是谁(名称)
From E-Mail:告诉对方我的邮件地址(发件人)
然后发送即可。
钓鱼邮件送达
钓鱼邮件正文
下面是配置了 SPF 的
可以检查自己的邮件服务是否配置了 SPF、DKIM
我开发过一款开源的数据可视化编辑器,在编辑完成后他会产生一个 json 格式的项目数据结构。这两年 AI 识图的效果快速发展。我就在想,如果我随手丢一个可视化面板的效果图,AI 就可以识别这个效果图中的元素,并且按照我项目的数据格式要求生成最终的 JSON 文件。这样一来岂不就完成了 AI 直接生成可视化面板的效果吗?
摸索了一两天之后有一条可实践的路径,大概流程为
上面的流程确实能够走通,但是生成的效果图实在惨不忍睹(如下图)。

最根本的原因在于不管提示词写得多么详细,AI 反馈过来的简化的数据结构始终都是非常潦草的。比如我从肉眼上看这个设计稿可能至少需要一百个可视化元素,但实际上它返回给我的结果可能就包含十几二十个元素。我以为是 AI 上下文大小限制的问题。但我切换过高级模型 200K 的上下文长度完全是足够的。但是 AI 输出结果依然没有提升多少。
想问问各位 V 友。这个想法是现阶段可以实现的吗? AI 识图的能力有没有到可以支撑这个想法的地步?
在当今数字化的世界中,PDF(便携式文档格式)已成为文档分享和打印的标准格式。作为开发者,能够通过代码操作和打印 PDF 文档是非常实用的。本文将介绍如何使用 Spire.PDF for .NET 库打印 PDF 文档,详细说明安装步骤以及代码解析,帮助您快速上手。 Spire.PDF for .NET 是一个功能丰富的 PDF 处理库,它使开发者可以在 C# 应用程序中创建、修改和打印 PDF 文件。该库不仅支持基本的 PDF 操作,还提供许多高级功能,如文本和图像提取、PDF 文件合并和安全性设置等。 要在项目中使用 Spire.PDF,您需要先将其安装。安装的方法有以下两种: 使用 NuGet 安装 : 输入以下命令并运行: 使用 Visual Studio GUI : 这两种方法都可以将 Spire.PDF 库添加到您的项目中,便于后续使用。 以下是一个简单的 C# 控制台应用程序示例,展示如何打印 PDF 文档: 使用 Spire.PDF for .NET 打印 PDF 文档是一个简单而强大的解决方案。通过本文中的示例代码和解析,您可以快速上手实现 PDF 文档的打印功能。希望这篇文章能够帮助您更好地利用 C# 进行 PDF 打印开发工作!Spire.PDF for .NET 简介
主要特性
安装 Spire.PDF for .NET
Install-Package Spire.PDF打印 PDF 文档的代码示例
using Spire.Pdf;
namespace PrintWithDefaultPrinter
{
class Program
{
static void Main(string[] args)
{
// 创建一个 PdfDocument 对象
PdfDocument doc = new PdfDocument();
// 加载 PDF 文件
doc.LoadFromFile("C:/Users/Administrator/Desktop/Input.pdf");
// 设置打印机名称
doc.PrintSettings.PrinterName = "Your Printer Name";
// 设置打印页面范围
doc.PrintSettings.SelectPageRange(1, 5); // 打印第 1 到第 5 页
// 设置打印份数
doc.PrintSettings.Copies = 2;
// 设置为黑白打印
doc.PrintSettings.Color = false;
// 检查打印机是否支持双面打印
if (doc.PrintSettings.CanDuplex)
{
doc.PrintSettings.Duplex = Duplex.Default; // 设置为默认双面打印
}
// 打印到默认打印机
doc.Print();
// 清理资源
doc.Dispose();
}
}
}代码解析
PdfDocument 对象,用于加载和操作 PDF 文件。LoadFromFile 方法加载指定路径的 PDF 文件。请确保文件路径正确且文件存在。PrinterName 属性指定打印机。如果不设置,则文档会打印到默认打印机。SelectPageRange 方法指定需要打印的页码范围,例如仅打印前五页。Copies 属性设置打印份数,同时通过 Color 属性选择是否以彩色打印。设置为 false 表示以黑白打印。CanDuplex 属性检查打印机是否支持双面打印。如果支持,则设置 Duplex 为默认双面打印选项。Print 方法将加载的文档发送到指定的打印机。Dispose 方法释放所有占用的资源,避免内存泄漏。总结
在大模型迈向“专业决策”的关键拐点,数据质量与智能体能力正成为AI落地的核心引擎。语料重复、噪声泛滥,如何高效构建万亿级高质量训练数据?通用问答已成过去,企业呼唤能理解业务、调用工具、自主推理的AI智能体——真正的“所想即所得”,正在从愿景走向工程实践。 在此背景下,2026年1月11日起,阿里云联合 NVIDIA 正式发起“寻找AI全能王”——Data+AI工程师全球大奖赛,面向全球高校学子与企业开发者,开启一场覆盖“数据处理”与“智能体构建”的全链路AI工程实战。 赛题1 - 向下深挖:挑战万亿语料去重极限 赛题2 - 向上突破:构建 DeepSearch 智能体 在这里你将收获: 这不仅是一场比赛,更是 Data 与 AI 深度融合的产业试验场。优秀成果将有机会被纳入阿里云产品技术演进,成为驱动 AI 原生时代的关键组件。 以代码驱动变革,用数据释放智能——AI全能王,等你来战!
大赛官网 >>
本次大赛设置 高校赛道 与 企业赛道,双轨并行、独立评审,聚焦两大前沿挑战:
基于 MaxCompute MaxFrame + DataWorks,直面海量互联网数据中的重复与噪声,系统性提升超大规模数据去重的计算效率与精度,攻克工业级数据预处理难题。
基于 PAI-LangStudio,在真实业务场景中构建具备意图理解、多步推理、工具调用与结果验证能力的 AI Agent,实现从自然语言到知识洞察、从查询指令到自动化执行的端到端闭环,推动 AI Agent 应用规模化落地。
立即报名参赛:
高校赛道https://tianchi.aliyun.com/competition/entrance/532448
企业赛道https://tianchi.aliyun.com/competition/entrance/532449
大家好,我是李琼羽,我没啥拿得出手的 title ,所以就不做这方面的介绍了。
另外,本文不过多介绍 skills 是什么,也不教怎么使用,也不会推销 “好用的 skills”,如果对这些有期待,本文可能不适合。
把 agent 放进真实工作里,很快会发现它最常卡住的不是“不会思考”,而是“没在这个组织里做过事”。同样一份报告,你们团队默认的结构、口径、审阅点;同样一次上线,哪些检查是硬规则、哪些是踩过坑才知道的优先级;同样一次对外沟通,哪些信息永远不能外发、哪些措辞必须保留——这些东西通常不在公开知识里,也不在模型参数里,而是活在组织的惯例、清单、事故复盘、师徒传承里。
Anthropic 在工程文章里提出的 Agent Skills ,切中的就是这类“怎么做事”的经验:把实践性的、程序性的知识( procedural knowledge )封装成一组 agent 可动态发现与按需加载的“文件夹化能力包”,里面可以包含指令、脚本与资源;并且他们直白地类比:写一个 skill 很像给新员工写 onboarding guide——把做事方法捕获、打包、共享,让通用 agent 变成适配具体场景的专门化 agent 。
当这套机制在 2025 年底被发布为开放标准并强调跨平台可移植时,它就不再只是某个产品的“提示词技巧”,而是开始变成一种更接近基础设施的形态:经验被对象化、可分发、可组合、可审计。
然而,这个转变,本身就是哲学问题。
一个 skill 最朴素的形态是一个目录,核心文件是 SKILL.md。
它必须以 YAML frontmatter 开头,至少包含 name、description; agent 启动时会把每个已安装 skill 的 name/description 预加载进 system prompt ;当判断相关时,再把完整 SKILL.md 正文读入上下文。
这套机制的关键词是 progressive disclosure:先加载极小的“目录级线索”,再按需加载正文与引用文件;当 skill 变复杂,可以把更细的内容拆到额外文件,由 agent 在需要时再去读。
Anthropic 甚至把它写成一种“手册式分层”:目录(元信息)—章节( SKILL.md )—附录( references/assets/scripts )。在有文件系统与代码执行能力的 agent 上,技能目录里可捆绑的上下文“几乎无上限”,因为并不需要把所有内容一次性塞进上下文窗口,真正需要时再读取、再执行。
但把边界说清楚也同样重要:在当前实现语境里,skills 的“注入”主要是中性工程意义的——把外部文件内容拼接进系统提示与上下文以影响推理与计划;它并不天然负责工具协议、通信、权限治理。开放规范里出现 allowed-tools 字段,恰恰说明了这一点:它更像“权限声明/预批准清单”的雏形,并被标注为 Experimental ,且明确写着“支持程度因实现而异”。也就是说,是否强制执行、如何执行,仍主要由宿主 runtime/产品层决定。
到这里为止,skills 看起来像更系统化的 prompt 工程。但它真正有趣的地方在于:它把“经验”变成了可保存、可分发、可调用、可审计的对象;而且这种对象还天然带有目录结构、版本元信息、可选脚本与资源——它已经很像一种“可维护的知识工件”,而不是一次性对话。(不同实现可能会有的信息也略有不同,以后的迭代中可能也会加入更多信息,所以,细节不重要)
skills 在工程上解决的是“怎么做”的问题,而哲学里对“会做”这类知识有一条经典区分:know-how 与 know-that 。
Ryle 传统里,know-how 并不等价于“掌握一堆命题”,更不是先在脑内默背规则再执行;恰恰相反,很多情形里“会做”在逻辑上反而先于“会说”。
Anthropic 对 Agent Skills 的定位( onboarding guide 式的 procedural knowledge 封装)几乎是对这条区分的工程化回应:把组织里的 know-how 尽可能变成 agent 可读、可执行、可复用的形式。
但这里立刻会碰到另一条更尖锐的边界:Polanyi 说“我们知道的多于我们能说出的”。也就是说,许多实践能力带着默会性:能做,却很难完整说清规则。
skills 的现实策略并不是“消灭默会知识”,而更像一种切片:把能写下来的部分(流程、模板、禁区、常见坑、例外处理)固化为手册与清单;把不易言说但又关键的部分,留给模型的情境推理与人类的复核机制去兜底。这个切片是否切得好,决定了 skills 的价值上限。
把视角再往外推一步,会看到 skills 与 Bernard Stiegler 讨论的“技术性记忆”之间有一种意外的贴合:人的记忆与主体性并不只发生在大脑里,还会被技术媒介外置与塑形( tertiary retention / technical memory )。
skills 的哲学意味正在这里:它把组织经验做成一种可移植的外部记忆环境。经验不再只住在“某个老员工的脑子里”或“某次复盘会议的氛围里”,而是被写成目录、Markdown 、脚本、引用资料——一种可以安装、更新、复用的记忆模块。
这也解释了一个常被低估但很实用的点:skills 虽然主要给 agent 用,但它天然也是“给人学”的。因为它的写作形态从一开始就被定义成 onboarding guide 。
写得好的 SKILL.md,本质上是一份高质量的经验教材:把关键不变量、关键步骤、关键风险、常见坑与例外处理压缩成可读结构,让“做对”变得更可重复。
这种“把经验写成清单/手册”的价值,在人类世界早就被反复验证。以外科安全清单为例,WHO 在新闻稿中总结:引入 checklist 后,重大并发症从 11% 降到 7%,住院死亡从 1.5% 降到 0.8%(这组数据来自多中心研究与其后续传播材料)。
这并不是让医生更聪明,而是在复杂系统里减少“明明知道却没做到”的错误。skills 对 agent (以及对新人)的作用,也非常接近这一点:把容易忘、容易省、容易误解的经验固定成外部记忆,让执行更可靠。
skills 大量内容是规则与流程,但维特根斯坦传统的 rule-following 讨论提醒我们:规则并不自动携带其应用方式;同一条规则永远可能被不同地解释,而“遵循规则”最终依赖共同体的用法与实践语境。
把这点放回 skills ,会得到一个极其工程化的结论:降低误用的关键,不是把步骤写得更长,而是把“用法边界”写得更硬。Agent Skills 的开放规范几乎是在把这条哲学翻译成写作建议:正文推荐包含 step-by-step instructions 、inputs/outputs examples 、common edge cases ,并提醒正文会在激活时整体加载,太长就拆到 references 。
从这里往前推一小步,就很自然了:当 skills 规模化,examples/counterexamples 会越来越像“单元测试”;边界情况与失败模式会越来越像“回归用例”。一个成熟的 skill 体系会逐渐长出这些东西:
写作上,它不再是“说明书”,而是“带样例的可执行契约”:输入是什么、输出是什么、什么情况下必须停下、什么情况下必须升级、什么情况下宁可慢也不能赌。
运维上,它不再是“放在那儿的文件夹”,而会被监控:触发率、成功率、失败原因的聚类、常见误触发路径、回滚策略——像监控 API 一样监控 skill 。
哲学上,这意味着规则不再被当作“意义的来源”,而是被当作“行动的边界装置”:它不保证正确,但它把错误收敛到可见、可修、可复盘的范围内。
亚里士多德区分 technê(可重复的技艺/制作之知)与 phronêsis (实践智慧)。在 Aristotle 的伦理学讨论里,一个关键判断是:practical wisdom 不能仅靠学习一般规则获得,还需要通过实践形成“在每个场景里看见什么选择更好”的能力。
这句话几乎就是 skills 的哲学上限:skills 非常擅长固化 technê——流程、模板、清单、工具用法;但它不可能把 phronêsis 完整写成规则。成熟的 skills 体系反而应该承认这一点,并把最昂贵的经验写在“判断点”上:
也因此,“更高级的 skill”往往不是更长的 SOP ,而是更清晰的停机点与升级条件——把判断空间留出来,让流程为实践智慧服务,而不是让行动变成盲目执行。
当 skills 进入组织化使用场景,它不只是知识传播,也在规定什么叫“正确做法”。福柯讨论 modern power 时强调 governmentality (治理理性)以及规范、技术与程序在现代世界中的作用:治理不只是命令,更是通过细密机制塑形行动。
skills 的“规范化”能力越强,它就越像一种微观治理装置:把“组织认为应该怎样做事”固化成默认路径,让偏离变得显眼、甚至变得困难。
这种治理面向,最直观地体现在安全与供应链上。Anthropic 在安全注意事项里明确警告:恶意 skills 可能引导数据外泄或执行非预期动作,因此建议只安装可信来源;对不那么可信的来源要先审计内容与代码依赖,留意外部网络连接指令。
当 skills 能捆绑脚本、能引导工具调用时,风险会从“写错提示词”升级为“能力供应链风险”。而规范里的 allowed-tools 恰好像一个 manifest 的雏形:声明该 skill 预批准可用哪些工具,但是否强制执行取决于实现。
换句话说:skills 的规模化,必然呼唤更厚的治理外壳——权限最小化、审计、签名、发布分级、回滚机制、可追溯变更记录——这些不会是“锦上添花”,而会成为系统能否被放心使用的底座。
也正是在这里,“技能写得好不好”不再只是写作问题,而是组织治理能力的一部分:谁能发布、谁能审核、谁能启用、出了事故怎么追责、怎么回滚,这些都会被 skills 的形态逼出来。
/prompts、slash commands ,从“个人快捷键”到“组织经验资产”把对比说清楚并不复杂:一类是显式调用的宏命令,一类是可发现、可按需加载的经验包。
OpenAI Codex 的 Custom Prompts 属于前者:把 Markdown 文件变成 slash command ,但需要显式调用;并且默认存放在本地(例如 ~/.codex),不随仓库共享。官方文档甚至直接写明:如果想共享 prompt ,或想让 Codex 隐式调用它,就用 skills 。
Claude Code 的 custom slash commands 也几乎同构:把常用 prompts 存成 Markdown 文件,按项目/个人 scope 组织,项目命令放在 .claude/commands/,用 /<command-name> [arguments] 显式调用。
skills 属于后者:在 Codex 的技能文档里,skill 被定义为以 SKILL.md 捕获能力的目录,并允许包含 scripts/resources/assets ;它同样强调 progressive disclosure ,并明确给出显式调用与隐式调用两种激活方式(例如显式用 /skills 选择,或由系统根据任务匹配自动触发)。同时,Codex 还引入了 scope 与覆盖优先级:同名 skill 会由高优先级 scope 覆盖低优先级 scope 。
从哲学角度看,这不是“功能差异”而已,而是对象性质不同:宏命令更像个人技巧(自己用得顺手即可); skills 更像组织经验资产——可传承、可治理、可争论、可回滚。它把“做事方式”从人的习惯变成了可以进入工程体系的工件。
如果要给读者一个更抓手的想象,我个人倾向,skills 的未来很可能会接近软件世界的 package:可安装、可版本化、可依赖管理、可维护、可审计——它不是一句提示词,而是一套可以分发与演进的能力单元。
这个类比之所以成立,是因为 skills 从形态上就已经像 package:有明确的目录边界,有入口文件(SKILL.md),有元信息( license/compatibility/metadata/version 等字段),还能捆绑脚本与资源。
当然,类比永远不是同构:软件 package 的接口由编译器/解释器严格执行; skills 的接口仍很大程度由自然语言驱动、由模型解释,确定性更多来自“脚本化的那部分”以及 runtime 的权限与验证机制。正因为不完全等价,这个类比才真正有用:它提醒我们未来的增量会落在哪些“工程刚需”上。
第一层会出现的,是更标准化的分发与装配,而不是手工复制文件夹。既然 Agent Skills 已被作为开放标准强调跨平台可移植,生态成熟后就会自然走向“安装、升级、锁版本、回滚、禁用”的体验。
第二层会更强调版本、兼容性与依赖。规范已经给出 compatibility 与 metadata/version 等字段,也建议脚本自包含或清晰声明依赖;当组织工作流天然是组合式的,这些字段会从“可选信息”变成“默认要求”。更进一步,会出现“skills 依赖 skills”的显式关系:一个高层 skill 负责编排,一个基础 skill 专注于某个环节(读数仓、做图、生成文档、审校口径),形成稳定的能力图谱。
第三层会把“写作建议”推到“可验证能力”。规范推荐 examples 与 edge cases ;当 skills 成为组织依赖,最值钱的是可预期性:发布前跑最小回归样例,升级后再跑一遍;线上记录失败模式,形成迭代闭环。
第四层会让权限与副作用声明从“软建议”走向“硬机制”。allowed-tools 像 manifest 的雏形,而 Anthropic 的安全警告则说明了供给链风险的现实性;当 skills 生态繁荣,“信任”会从人际关系迁移到机制:签名、审核、分级发布、最小权限、沙箱、审计追踪。这一步完成后,skills 才会真正成为“敢让 agent 自动化执行”的基础设施。
第五层会让“给人学习”从副产品变成目的之一。因为 skills 的写作形态本来就是 onboarding guide ,它天然会反哺组织培训:新人学 skills ,就是在学组织的做事方式;老员工改 skills ,就是在把经验显式化并固化进组织记忆。
最后留一个反方向的提醒:海德格尔谈 Gestell ( enframing )时指出,技术时代会把世界越来越多地框定为“可调度资源”,从而压扁意义与语境。
skills 的 package 化会强烈推动工作流脚本化与模块化:可靠性上升、效率上升,但也可能把“可辩护的判断”误写成“可执行的默认”。一个成熟的 skills 生态,应该主动为 phronêsis 留空间:在关键处强制慢下来、要求解释理由、要求二次确认,让“可执行”不吞掉“可辩护”。
如果只把 skills 当作“又一种 prompt 工程”,它确实没那么值得写。但把它当作一种把经验外置成可调用记忆的装置——能被分发、能被组合、能被审计、还能反过来教育人——它的哲学含义就清晰起来了:skills 不是在给模型加聪明,而是在改变经验如何存在、如何传承、如何进入行动,并最终如何塑形组织。
.claude/commands/) [推荐阅读清单]
1. https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills
2. https://agentskills.io/specification
3. https://developers.openai.com/codex/skills/
4. https://developers.openai.com/codex/custom-prompts/
5. https://code.claude.com/docs/en/slash-commands
6. https://pmc.ncbi.nlm.nih.gov/articles/PMC7903928/
7. https://www.who.int/news/item/11-12-2010-checklist-helps-reduce-surgical-complications-deaths
8. https://pubmed.ncbi.nlm.nih.gov/19144931/
9. https://plato.stanford.edu/entries/rule-following/
10. https://plato.stanford.edu/entries/aristotle-ethics/
11. https://plato.stanford.edu/entries/foucault/
12. https://plato.stanford.edu/entries/heidegger/
13. https://plato.stanford.edu/entries/ryle/knowing-how.html
14. https://plato.stanford.edu/entries/knowledge-how/
15. https://press.uchicago.edu/ucp/books/book/chicago/T/bo6035368.html
企业部署大模型分析应用时,常遭遇“幻觉”困扰——AI 输出的数据结论看似合理,实则错误。根源在于传统数据架构无法为 AI 提供准确、一致、实时、可信的数据供给。破局之道在于构建以 NoETL 语义编织为核心的 AI 就绪数据架构。该架构通过创建“统一指标语义层”作为业务与数据间的“标准协议”,并采用 NL2MQL2SQL 技术路径,确保大模型生成 100% 准确的 SQL 查询,从根本上杜绝“数据幻觉”,赋能可信的智能决策。 当大模型(LLM)接入企业数据时,传统数据架构的固有缺陷被急剧放大,成为制造“数据幻觉”的系统性风险源。 让大模型在“数据迷雾”中工作,幻觉是必然产出。 要获得可信 AI,必须先解决数据架构的“可信”问题。 NoETL 数据语义编织是一种创新的数据架构范式,其核心是构建一个介于原始数据与 AI 应用之间的“翻译层”与“契约层”。 NoETL 语义编织: 基于 NoETL 语义层,可构建可信的 Data Agent(数据智能体)。其核心技术路径为 NL2MQL2SQL ,这是区分“玩具”与“企业级”AI 分析的关键。 三步实现 100% 准确查询: 构建分析决策闭环: 在此可信数据基础上,Data Agent 能实现更高级的能力: NL2MQL2SQL 通过在 AI 与数据之间引入“语义层”这一关键中间件,在准确性与灵活性上取得了根本平衡,是企业构建可信数据智能的基石路径。 传统数仓/湖依赖沉重的、周期长的 ETL 管道“搬运”和“固化”数据,变更成本高。NoETL 架构通过虚拟化和语义层,无需大规模物理搬迁数据,并能提供逻辑统一的实时数据视图,使数据准备时间从数月缩短至数周,并能灵活响应不断变化的业务分析需求。 数据团队的工作重心将从繁琐的“需求响应”(写 SQL、做报表)向更高价值的“数据资产管理与赋能”转变。 团队将更专注于:1、设计和维护统一、标准的指标语义层;2、治理数据质量与安全;3、培训和配置业务部门的场景化分析助手。这释放了数据团队的生产力,聚焦于数据战略和创新。 可以参考“三真三好”的可信 AI 标准进行评估:三真即口径真(指标全局一致)、数据真(来源可靠、质量可控)、血缘真(计算逻辑全程可追溯);三好即听力好(准确理解自然语言意图)、眼力好(能进行多维度、深层次的洞察与归因)、脑力好(能整合信息,形成决策建议与报告)。满足这些标准的数据架构,才能支撑起可信、有用的企业级 AI 应用。 以 NoETL 语义编织为核心的 AI 就绪架构,不仅是解决当前 AI 幻觉问题的方案,更是面向未来“数据智能时代”的基础设施。它将使数据以一种更自然、更可靠的方式服务于每一位决策者,真正实现“数据驱动”从口号到现实的跃迁。企业越早构建这一架构,就越能在智能化竞争中占据先机。传统数据架构为何成为 AI“幻觉”的温床?
NoETL 数据语义编织——AI 就绪的数据架构范式
sales_db.orders.amount)与语义层的业务术语(如“订单金额”)关联。基于 NoETL 语义编织的可信 Data Agent
{“metric”: “gross_profit_margin”, “filters”: {“city”: “上海”, “quarter”: “Q3”}}。MQL 指向的是已定义的、无歧义的指标。gross_profit_margin = (revenue - cost) / revenue),确定性地生成优化后的 SQL。此步骤由规则保障,彻底杜绝大模型生成错误 SQL 的可能。常见疑问(FAQ)
Q1: 与传统的数据仓库或数据湖相比,NoETL 数据语义编织架构最大的优势是什么?
Q2: 引入 NoETL 和 Data Agent,企业数据团队的角色会发生怎样的变化?
Q3: 如何衡量一个数据架构是否真正达到了“AI-Ready”的标准?
未来展望:
请原谅我今天,冒昧地拉着你聊低代码——这个在IT圈火了好几年,却依然有人摸不透的话题。 “低代码”这个词,是我从业十多年来,看着从冷门工具长成行业风口的存在。 更有老板拿着融资新闻问我:“别人都在投,我们是不是也得跟风?” 我理解这种困惑。就像早年做传统开发时,我们总信奉“一行行敲出来的代码才靠谱”,直至亲眼见过很多企业(如中交建,国家电网,招商银行,吉利汽车等等)采用低代码把核心业务系统交付周期从半年压缩到一个月,见过那些业务人员不用求IT就能做出适配业务的功能,才彻底打破偏见。 尤其近日看到消息: 国外一家做AI原生的低代码平台:Emergent,宣布完成7000万美元B轮融资。本轮融资由Khosla Ventures和软银愿景基金2号领投,Prosus、Lightspeed、Together及Y Combinator参与投资。据悉,该平台自上线七个月以来,目前累计融资额已达1亿美元。平台主打AI低代码软件创建平台,允许业务用户通过自然语言指令生成应用程序,用户可以通过类似ChatGPT的界面输入所需软件的高级描述,生成必要的代码,并展示详细的执行步骤。 这波资本热度,又把低代码推上了风口。 今天这篇文章会有些长,内容有点密,但我会以一个老兵的视角,把低代码的资本逻辑、核心价值、主流平台和选型技巧讲透。相信我,无论是企业负责人、IT管理者,还是想入局的从业者,坚持看完,都会有新的启发。 很多人不解,低代码又不是新概念,为何近两年资本会疯狂押注?就像当年我们疑惑“为什么三角函数非要学”,本质是没看透背后的底层逻辑。 资本的嗅觉从来不是追“新”,而是追确定性。低代码的爆发,是技术成熟、市场需求与政策导向三重共振的结果,这种确定性,让资本愿意砸下真金白银。 从技术端看,AI原生能力重构了低代码的价值边界。早年低代码只是可视化拖拽工具,而现在像Emergent这样的平台,能通过自然语言指令生成应用、输出源码并展示执行步骤,实现了从辅助编码到智能开发中枢的跨越。Gartner数据显示,AI赋能让低代码开发效率提升300%-500%,非技术人员可完成80%的基础开发工作,这种效率革命,正是资本追捧的核心逻辑之一。 从市场端看,数字化转型进入深水区,企业面临“IT产能缺口”的刚性痛点。传统开发模式下,70%的企业都在面临“业务需求等IT”的困境,而低代码能让业务与IT高效协同,将应用交付周期缩短60%以上。IDC预测,2023-2028年低代码相关市场复合年增长率达37.6%,其中智能开发技术增速更是高达47.3%,这种高增长预期,给了资本足够的信心。 再看政策端,信创国产化浪潮推动低代码成为核心基础设施。国企、金融、军工等关键行业,对低代码平台的需求从“能用”,升级为全栈信创适配,具备国产芯片、操作系统、数据库全链路兼容能力的平台,已成为政企项目的首选。这种政策驱动下的刚需市场,进一步锁定了低代码的增长确定性。 Emergent的融资不是个例,它只是资本拥抱低代码赛道的一个缩影。当一个工具能解决企业的核心效率痛点,又踩中技术与政策的风口,资本的涌入只是时间问题。 聊完资本,我们回归本质:对企业而言,低代码的核心价值到底是什么?就像学数学不是为了刷题,而是培养逻辑思维,低代码的价值也远不止快。 我见过太多企业误用低代码。把它当成节省人力成本的工具,最后因场景错配导致项目失败。其实低代码的价值,是重构企业的数字化能力底座,体现在三个核心维度。 第一,打破业务与IT的壁垒,释放组织创新力。 传统模式下,业务人员有想法却无法落地,IT团队有技术却不懂业务,AI低代码产品让业务人员能通过可视化操作、自然语言描述实现“想法即应用”,IT团队则聚焦核心复杂场景的优化。比如北京的一家国有银行用AI低代码产品搭建信贷风控系统,业务人员直接参与规则配置,审批效率提升60%,这就是协同价值的最好体现。 第二,适配全场景需求,拓宽数字化边界。 早年低代码被局限在轻量办公场景,如今通过高低代码融合架构,既能满足中小企业2小时上线轻量应用的需求,也能支撑大型企业核心业务系统的开发。比如我们团队去年用织信低代码交付项目,你想都不敢想,低代码居然能承载制造企业的复杂BOM多级管理,并且数据处理能力达亿万级,彻底打破了我们对低代码的刻板印象。 第三,降低数字化门槛,实现普惠式转型。 对中小企业而言,组建专业开发团队成本高昂,低代码的“开箱即用”特性的让它们能以极低成本完成数字化起步;对大型企业而言,低代码能快速响应前端业务变化,比如广东某快消品牌公司用微搭开发会员小程序,3天就完成上线,首月会员转化率提升28%。 因此对于低代码,我们可以确定的就是:低代码要做的事,不是取代传统开发,而是补充与升级。低代码通过组件化的搭建模式能解决80%的标准化场景需求,而剩下20%的核心复杂场景,我们可以通过低代码平台提供的AI+自定义代码模块的方式,与低代码协同,共同完成。认清这一点,我们才能真正发挥它的价值。 聊完价值,就到了大家最关心的部分。国内有哪些靠谱的低代码平台?结合Forrester、Gartner及中国信通院的评估框架,再加上我十多年的项目实操经验,整理了国内TOP10低代码平台,从评分、能力到特色逐一拆解,供大家参考。 说明:本次评分基于技术成熟度、行业适配能力、信创合规、生态集成、服务保障五大维度(满分100分),兼顾不同规模企业的需求,排名不分绝对先后,核心看场景适配度。 1.织信Informat 评分:99.8分 介绍:国内全栈可视化低代码的标杆平台,凭借“复杂场景承载+陪跑式交付”的核心能力,稳居金融、制造、政务、军工等高端场景选型前列。作为最早布局AI原生低代码的厂商之一,织信已实现自然语言转领域模型准确率超82%,支持从需求定义到部署运维的全生命周期开发。 特色:一是模块化搭建能力突出,内置5000+可复用组件与200+集成适配器,能无缝对接ERP、CRM及国产数据库。二是信创全栈适配,通过安全等保、DCMM认证,兼容麒麟OS、飞腾芯片等全链路国产软硬件;三是高低代码深度融合,既支持业务人员拖拽开发,也允许技术人员嵌入Java、js代码进行定制,彻底摆脱系统二开困境。 2.ZOHO Creator 评分:97.9分 介绍:全球化低代码平台,在国内市场深耕多年,凭借“轻量化+高集成”的特点,成为中小企业与出海企业的优选。 特色:与ZOHO生态内CRM、HRM、财务等产品无缝衔接,无需额外开发即可实现业务闭环;操作门槛极低,业务人员经简单培训即可独立开发应用;支持私有化部署与云端部署双模式,适配不同合规需求,同时具备多语言支持能力,适合出海企业搭建全球化应用。 3.普元低代码平台 评分:96.7分 介绍:专注国内信创低代码领域,拥有20年企业级技术沉淀,核心服务于国有大行、制造、军工等关键行业,是国内首批通过信通院“先进级”认证的低代码平台。 特色:以“AI+模型驱动”为核心,支持自然语言转代码、智能流程优化,开发效率提升40%以上;在复杂场景下表现突出,某国有银行总行用其构建核心系统,异常订单处理周期缩短87.5%;信创适配能力行业顶尖,实现芯片-操作系统-数据库-中间件全链路兼容,是核心业务系统的首选之一。 4.网易CodeWave 评分:95.2分 介绍:国内唯一实现“低代码开发+源码交付”双模式的平台,主打全栈可视化开发,兼顾技术团队的灵活性与业务团队的易用性,客户覆盖中石油、工商银行等大批国央企。 特色:自研NASL编程语言实现前后端全流程可视化,支持多端应用一体化开发;金融级安全架构亮眼,系统稳定性达99.99%,泰康人寿基于其开发80余个核心业务应用,直接节省开发成本160余万元;资产中心沉淀海量可复用组件,进一步提升开发效率。 5.浪潮inBuilder 评分:94.8分 介绍:依托浪潮集团在政务与制造业的深厚积累,以UBML(统一业务建模语言)技术为核心,是垂直领域解决方案的代表平台。 特色:天然适配信创生态,可直接生成适配国产软硬件的应用代码;在政务领域表现突出,某省会城市工程审批系统经其重构后,审批周期从15天压缩至48小时;预置MQTT连接器与IoT监控模板,覆盖25%的智能工厂场景,是制造业数字化转型的利器。 6.华为云AppCube 评分:94.5分 介绍:面向企业级复杂应用场景的云原生低代码平台,强调高并发、高可靠与多端适配能力,深度联动华为云Stack与鸿蒙系统。 特色:支持小程序、H5、PC及鸿蒙原生应用一体化开发;内置IoT引擎可对接各类工业设备,某汽车厂商用其开发智能产线监控系统,故障预警准确率达92%;通过多项合规认证,适配全部主流国产软硬件,在工业制造、政务服务领域优势明显。 7.腾讯云微搭WeDa 评分:93.6分 介绍:深度绑定微信生态的低代码平台,主打“快速开发+生态协同”,成为电商、社交类应用的首选工具。 特色:实现小程序、公众号、视频号全链路开发支持,从创建到上架微信生态仅需3步,自带微信支付、担保交易等原生能力;2025年升级的AI组件库,可智能生成营销页面、推荐表单字段;支持云开发与私有化部署双模式,适配从初创企业到中大型企业的不同需求。 8.用友YonBuilder 评分:93.5分 介绍:与用友ERP深度绑定的低代码平台,专为集团企业ERP二次开发设计,已服务超10万家用友ERP客户。 特色:与用友U9 Cloud等ERP系统适配度达98%,确保财务数据无缝流转;支持可视化配置与Java定制开发灵活切换,2025年升级的Agent平台2.0,可通过AI对话完成财务模块规则配置;在财务、人力、供应链等场景解决方案成熟度领先,是集团企业数字化延伸的核心工具。 9.简道云 评分:92.8分 介绍:帆软旗下轻量型低代码平台,以“表单驱动+数据洞察”为核心,是部门级轻量应用的标杆产品。 特色:操作门槛极低,业务人员1小时培训即可独立开发;表单设计支持200+字段类型与复杂逻辑配置,搭配拖拽式仪表盘,实现数据采集到分析的闭环;在零售、医疗等轻量场景表现优异,某连锁品牌用其搭建门店巡检系统,问题整改率提升40%,但复杂业务逻辑承载能力较弱。 10.泛微e-builder 评分:92.5分 介绍:全栈式低代码平台,依托泛微在协同办公领域的积累,主打中大型企业业务流程管理场景。 特色:支持无代码与全代码混合开发,智能化构建能力突出;与泛微OA系统深度集成,擅长流程自动化场景搭建;在组织权限管理、流程审批优化方面优势明显,适合中大型企业构建一体化协同办公系统。 国外低代码市场起步更早,形成了成熟的竞争格局,尤其在AI原生、全球化生态方面具备优势,适合有海外业务、追求前沿技术的企业。 1.Mendix 核心定位:企业级低代码标杆,主打模型驱动+全生命周期管理。 作为国外低代码市场的老牌玩家,Mendix在大型企业复杂应用开发领域口碑出众。支持高低代码融合,具备强大的跨平台部署能力与生态集成性,可对接SAP、Oracle等主流企业级系统。其模型驱动架构能确保应用的一致性与可维护性,适合金融、制造等行业的核心业务系统搭建,但定价较高,本地化适配能力弱于国内平台。 2.OutSystems 核心定位:高速低代码平台,主打极致开发效率。 以开发速度著称,通过可视化拖拽、智能调试功能,能大幅缩短应用交付周期。支持多端应用一体化开发,具备强大的性能优化工具,可应对高并发场景。在欧美市场渗透率高,适合追求快速上线、对性能有要求的企业,但信创适配能力几乎为零,不适合国内政企客户。 3.Microsoft Power Apps 核心定位:生态协同型低代码,依托微软生态优势。 深度集成Office 365、Azure、Dynamics 365等微软产品,适合已经使用微软生态的企业。操作门槛低,支持快速搭建轻量应用,同时具备一定的定制化能力。AI组件与自动化流程(Power Automate)联动紧密,能实现业务流程的全自动化。其核心优势在于生态协同,但复杂业务逻辑承载能力有限,适合中小企业、部门级应用场景。 4.Appian 核心定位:BPM+低代码融合,主打流程自动化。 将低代码与业务流程管理(BPM)深度结合,擅长复杂流程建模与自动化场景。在合规性、流程监控方面表现突出,适合金融、医疗等对流程管控要求严格的行业。支持云端与私有化部署,具备强大的数据分析与报表能力,但学习成本较高,价格昂贵,适合大型企业的高端流程场景。 5.Emergent 核心定位:AI原生低代码先驱,主打自然语言驱动开发。 作为近期资本追捧的焦点,Emergent最大的特色的是彻底降低开发门槛。用户通过类似ChatGPT的界面输入应用需求描述,平台即可生成必要代码、梳理执行步骤,非技术人员也能独立完成应用开发。上线七个月累计融资达1亿美元,背后是资本对其“AI重构开发链路”模式的认可。其核心优势在于AI模型的精准度与开发流程的简化,适合快速验证业务想法、搭建轻中度复杂度应用,但目前在复杂核心系统承载、本地化服务方面仍需完善。 从业十多年,我见过太多选型失误导致项目翻车的案例。 有的企业盲目追求AI功能,忽略了信创合规要求; 有的中小企业贪大求全,选了复杂的开源低代码平台,最后用不起来。 其实选型没有标准答案,核心是匹配自身需求,结合我的经验,总结了四大核心原则。 1.先明确场景,再选平台 这是选型的第一优先级。不同场景对应不同类型的平台,选错场景再强的平台也无用: 大型企业核心系统、信创项目:优先选织信、普元、浪潮这类具备信创全栈适配、复杂场景承载能力的平台,务必通过POC(概念验证)测试其并发性能、源码扩展能力。 中小企业轻量应用、协同办公场景:选网易CodeWave、简道云、腾讯云微搭,侧重易用性、快速部署能力与性价比,按需订阅的定价模式更适合控制成本。 电商、社交类应用:优先选腾讯云微搭(微信生态)、Power Apps(微软生态),依托生态原生能力快速搭建应用。 出海企业、全球化应用:选ZOHO Creator、Mendix,关注多语言支持、全球服务器部署与本地化合规能力。 2.技术兼容性考虑 技术层面要重点关注两点:一是信创适配,二是扩展性。 对国企、金融等关键行业,必须确认平台是否通过安全等保、DCMM等合规认证,是否兼容指定的国产芯片、操作系统与数据库,避免后期无法通过项目验收。 对所有企业,都要着重考虑平台的拓展性问题。优先选支持代码拓展、API接口开放、支持第三方系统集成的平台(如织信、网易CodeWave),确保后期业务扩张或更换平台时,数据与应用能平滑迁移。 3.关注生态与服务 低代码项目的成功,70%靠平台,30%靠服务。尤其对技术团队薄弱的企业,服务能力至关重要。 选型时要考察:平台是否有完善的培训体系、技术支持响应速度(最好能提供7×24小时支持)、用户社区活跃度(是否有丰富的组件模板与问题解决方案)。国内平台在本地化服务方面普遍优于国外平台,这也是很多企业优先选国内产品的核心原因。 4.学会用POC验证能力 再好的宣传都不如实际测试。选型时一定要要求厂商提供试用期,通过POC测试验证平台的实际能力:比如模拟核心业务流程搭建应用,测试开发效率;模拟高并发场景,测试系统稳定性;尝试与现有系统集成,测试适配性。 建议组建“业务+IT”联合测试团队,业务人员评估易用性,IT团队评估技术性能,确保平台能满足双方需求。 结语: 低代码的本质,是让数字化回归业务本身。是把数字化能力交还给业务人员,让技术真正服务于业务,而不是反过来束缚业务。 2026年,AI原生、信创适配、高低代码融合将成为低代码市场的核心趋势,无论是国内还是国外平台,都在朝着“更智能、更兼容、更易用”的方向迭代。对企业而言,与其追逐资本热点,不如静下心来梳理自身需求。选对适合自己的平台,让低代码真正成为数字化转型的加速器,才是最有价值的选择。 最后,如果你在选型过程中遇到具体场景的困惑,比如“制造企业该如何选型低代码”,“中小企业预算有限该如何取舍”,欢迎在评论区留言,我将结合多年项目经验,给你更多针对性建议。爆肝6600字,希望对你有帮助。

一、低代码为什么会受资本青睐?
二、低代码的价值几何?
三、国内同样优秀的低代码产品有哪些?
四、国外主流产品介绍
五、低代码选型指南
引言: 随着大模型和多模态 AI 的快速发展,向量已成为文本、图像、音视频等多元数据的通用语义表示。在这种背景下,检索增强生成(RAG)技术成为连接私有知识与大模型的核心桥梁,而高效的向量检索则是其关键支柱。 与将向量检索视为独立外挂服务的方案不同,Apache Doris 4.0 选择将向量检索能力深度集成于其 MPP 分析型数据库内核。实现向量检索与 SQL 计算、实时分析和事务保障的无缝融合。 本文旨在深入剖析 Doris 向量检索的系统级设计与工程实践,展示其如何在性能、易用性与规模扩展之间取得的平衡。 Apache Doris 的向量索引基于 ANN(近似最近邻)算法实现,并非独立的外挂组件,而是深度集成于存储、执行与 SQL 引擎中的原生能力。在 4.x 版本中,其核心 ANN 索引能力主要包括以下几方面: Apache Doris 的目标并非追求单一指标的极限表现,而是在真实生产负载下,实现性能的均衡性、系统稳定性与架构可扩展性。本次测试将围绕这一目标展开,所用工具为 ZillizTech 开源的向量搜索 BenchMark:https://github.com/zilliztech/VectorDBBench。 测试结果表明,在 Performance768D1M 数据集上,Apache Doris 在保证同等索引质量的前提下,导入性能显著优于对比系统。尤为重要的是,其导入速度的提升并未以牺牲图结构质量为代价。Doris 在 QPS 达到 895 的同时,仍保持了 97% 以上的召回率,在性能三角的三个维度上取得了出色的平衡。 即便单独考量查询性能,Apache Doris 同样处于业界第一梯队。 在 Performance768D10M 数据规模上,当召回率要求高于 95% 时,Apache Doris 的 QPS 表现优于 OpenSearch 与 Qdrant。此结果为默认配置下的开箱性能,未针对 Segment 文件数量等进行专项调优。 这里比较的是开箱性能测试,即不做 segment 文件数量的优化时的性能对比。 Milvus 的 flat 版本以及 Cloud 版本会有更好的性能表现,但是其出品的 VectorDBBench 只提供了 SQ8 量化后的成绩。 Apache Doris 采用 FE(协调节点)与 BE(计算节点)构成的分布式架构。BE 作为核心执行单元,承担查询计划执行与数据导入任务,负责几乎所有高负载计算与大规模数据吞吐,是系统高性能的基石。尤其在向量场景下,数据写入、索引构建与向量距离计算都属于典型的 CPU 与内存密集型工作。为充分发挥其性能、保障系统稳定运行,我们对 ANN 索引的写入、构建与查询路径进行了系统优化。 优化主要分为两类:功能优化与性能优化。 Apache Doris 针对 ANN 索引构建开销大的问题,提供了异步构建机制。用户可在数据导入后,选择业务低峰期触发索引构建;在查询高峰时,仅需将已建好的索引加载至内存即可快速检索,从而将密集的 CPU 消耗转移至成本更低的时段。 在 FE 侧, 该流程在保证线上业务可读写的同时,实现了索引构建的在线隔离与数据一致性。 为在保障索引质量的前提下提升写入吞吐与稳定性,Doris 采用了 多层级分片、双层并行、SIMD 向量化计算 的组合方式进行优化。 A. 多层级分片 Apache Doris 将逻辑表在内核层拆分为多个 Tablet。每次数据导入会生成一个 Rowset,每个 Rowset 又包含若干 Segment,而 ANN 索引正是在 Segment 粒度上构建与使用的。这一设计将“全表数据量”与“索引超参数”解耦,用户只需根据单批次导入的数据规模来设定参数,无需因数据总量增加而反复重建索引。 以单 BE 单分桶的典型场景为例,我们从实际经验中总结出如下参数可供参考: 得益于 Apache Doris 的分片架构下,索引参数可稳定在合理的规模区间,不受全表数据总量增长的影响。换言之,索引超参数的设置只需基于单个 Tablet 单次导入的数据行数。即便集群规模扩大,也仅需根据机器与分桶数量相应调整批次大小(batch size)即可。 以 HNSW 索引为例,在单 BE 集群中,针对每批导入 25 万、50 万、100 万行的典型规模,分别选择 经验上,召回率随 B. 双层并行构建 集群层由多台 BE 并行处理导入批次;单机内再对同一批数据进行多线程距离计算和图结构更新。配合“内存攒批”(在内存中适度合并小批次),可避免过细分批导致的图结构稀疏与召回下滑,在固定超参数下获得更稳定的索引质量与构建速度。 以 768 维、1,000 万条向量为例:分 10 批构建的召回率约可达 99%,若切成 100 批则可能降至约 95%。适度的内存攒批既不显著抬高内存峰值,又能提升图连通性和近邻覆盖,从而减少查询阶段的回表与重复计算。 C. SIMD 加速 向量距离计算是典型的 CPU 密集型计算。Doris 在 BE 侧采用 C++ 实现距离计算,引入 SIMD(单指令多数据)并行计算。可以更少的指令、更少的访存,更快完成把同样的距离,从而显著提升向量索引构建和重排阶段的吞吐能力。具体来讲: 以 HNSW 为代表的高性能索引数据结构通常将向量与图结构常驻内存。在 RAG 场景中,文本/图片/音频等模态向量维度约为 1,000,若每维使用 为了显著降低内存占用、扩展单机承载能力,向量压缩技术成为关键。Apache Doris 在此提供了两种主流的实现方案:标量量化与乘积量化。 A. 标量量化(Scalar Quantization,SQ) 标量量化通过用低精度类型替换高精度类型来压缩存储空间,Doris 支持 如若将 上图展示了在 128 维和 268 维向量上的测试结果。相比 FLAT(不编码,用完整 Float32 表示每个浮点数),SQ8 可实现接近 2.5 倍的压缩,而 SQ4 可实现接近 3.3 倍的压缩。 值得说明的是,引入 SQ 不可避免的会带来额外的压缩计算开销(索引构建阶段),且标量量化更适用于各维度近似均匀分布的数据。如遇分布呈高斯或更复杂形态时,标量量化误差增大,则可采用乘积量化方式。 B. 乘积量化(Product Quantization, PQ) RAG 等场景中,由 Transformer 编码器生成的向量,存在明显的语义结构、分布不均匀。乘积量化通过子空间划分 + 子空间学习型量化,能够更好地适配。 PQ 将高维向量分割为多个子向量,并为每个子空间独立训练一个码本(例如通过 k-means 聚类学习质心)。这使得数据密集区域能用更精细的码本保持细节,从而在整体上用更短的码长维持原始的距离关系。查询时通过查表与累加来估算距离,大幅减少了计算与内存访问开销。 我们在 128 维与 268 维上对比 SQ 与 PQ,参数统一设定为 从空间占用看,PQ(m=68/128, nbits=8)的内存占比与 SQ4 大致相当,可实现约 3× 压缩。 除构建更快外,PQ 还可依赖查表加速解码,体现在更优的查询速度上。 关于 PQ 的超参数,实际使用时建议结合数据分布进行针对性适配与调优。根据经验,将 综合来看,对于用户来说, SQ 和 PQ 该如何选择呢? 搜索场景对延迟极为敏感。在千万级数据量与高并发查询的场景下,通常需要将 P99 延迟控制在 200 ms 以内。这对 Doris 的优化器、执行引擎以及索引实现都提出了更高要求。Apache Doris 为此做了大量优化,这一章节对其中涉及到的部分能力做介绍。 Apache Doris 的向量索引采用外挂方式。外挂索引便于管理与异步构建,但也带来性能挑战:如何避免重复计算与多余 IO? ANN 索引在返回行号时,会同步计算出向量距离。执行引擎在 Scan 算子阶段可直接利用该结果进行筛选和排序,无需在读取数据后重新计算。这一过程通过 “虚拟列” 机制自动实现,最终以 Ann Index Only Scan 的形式运行,完全消除了因距离计算而产生的数据读取 I/O。 未应用 Index Only Scan: 应用 Index Only Scan 后: 例如 该优化不仅适用于 TopK 检索,也支持 Range Search、复合检索(Range + TopK)以及与倒排索引结合的混合检索场景,实现了全路径的 Index Only Search。 虚拟列机制并不局限于向量距离计算。对于正则抽取、复杂标量函数等 CPU 密集型表达式,若在同一查询中被多次引用,该机制也能复用中间结果,避免重复计算。以 ClickBench 数据集为例,以下查询统计从 Google 获得最多点击的 20 个网站: 核心表达式 在 ANN TopN 检索中,过滤谓词的应用时机是关键的设计权衡: Apache Doris 在 Scan 算子内通过 row bitmap 实现自然的前过滤语义。每个谓词执行后即时更新 row bitmap。当 TopN 下推到 Scan 时,向索引传递一个基于 row bitmap 的 IDSelector,仅保留满足条件的行作为候选,从源头上避免无效候选进入 TopN。 为进一步提升效率,Doris 还会在扫描前借助分区、分桶、ZoneMap 等轻量元数据进行快速预过滤,并结合倒排索引进行精确的行号定位,多层次缩小候选集,能够显著提升查询性能与资源效率。 在传统执行路径中,Doris 会对每条 SQL 执行完整优化流程(语法解析、语义分析、RBO、CBO)。这在通用 OLAP 场景必不可少,但在搜索等简单且高度重复的查询模式中会产生明显的额外开销。为此,Doris 进行了全局执行优化,充分发挥索引、过滤等性能。 A. Prepare Statement: Doris 4.0 扩展了 Prepare Statement,使其不仅支持点查,也适用于包含向量检索在内的所有 SQL 类型。Prepare Statement 的原理是将 SQL 编译与执行分离,模板化检索复用计划缓存,Execute 阶段跳过优化器。查询计划按“标准化 SQL + schema 版本”构建指纹进行缓存,执行阶段校验 schema version,变化则自动失效并重建。对频繁且结构相同仅参数不同的检索,Prepare 能显著降低 FE 侧 CPU 占用与排队等待。 B. Scan 并行度优化: 为提升 ANN TopN 检索性能,Doris 重构了 Scan 并行策略。原策略基于行数划分任务,在高维向量场景下,单个 Segment 的实际行数常远低于划分阈值,导致多个 Segment 被分配至同一任务中串行扫描,制约性能。 为此,Doris 改为严格按 Segment 创建 Scan Task,显著提升了索引检索阶段的并行度。由于 ANN TopN 搜索本身过滤率极高(仅返回 TopN 行),后续回表阶段即使串行执行,对整体吞吐与延迟的影响也微乎其微。 以 SIFT 1M 数据集为例,开启 此外,4.0 引入动态并行度调整:每轮调度前根据 Scan 线程池压力动态决定可提交的任务数;压力大则减并行、资源空闲则增并行,以在串行与高并发场景间兼顾资源利用率与调度开销。 C. TopN 全局延迟物化: 典型的 ANN TopN 查询可分为两个关键阶段:局部检索与全局归并。在局部检索阶段,Scan 算子通过索引获取每个数据分片(Segment)中的局部 TopN 近似距离;随后在全局归并阶段,由专门的排序节点对所有分片的局部结果进行合并,筛选出最终的全局 TopN。 传统执行流程存在一个显著效率问题:若查询需要返回多列或包含大字段(如长文本),在第一阶段就会读取这些列的全部数据。这不仅会引发大量磁盘 I/O,而且绝大多数被读取的行会在第二阶段的排序竞争中被淘汰,造成计算与 I/O 资源的浪费。 为此,Doris 引入了 “全局 TopN 延迟物化” 优化。该机制将非排序所需列的读取推迟到最终结果确定之后,大幅减少了不必要的 I/O。 优化执行流程示例: 以 通过将完整数据的“物化”步骤推迟到最后,该优化确保了查询前期仅处理轻量的距离与行标识信息,彻底避免了在排序前读取非必要列所带来的 I/O 开销,从而显著提升了整体查询效率。 企业级知识库是 RAG 的典型落地场景。因此,我们基于 LangChain + Apache Doris 搭建了一个以 Doris 官网文档为语料的最小可用知识库,用于验证 Doris 向量检索的端到端能力。完整示例代码见 GitHub。 (1)环境准备 (2)建库与建表(方式一:SQL) (3)演示语料 示例使用 Apache Doris 官网文档作为语料来源:https://github.com/apache/doris-website (4)离线文档处理 (5)导入 Doris(方式二:SDK 一键建表与导入) 说明:若已通过 ② 使用 SQL 创建好表并定义索引,可仅使用 SDK 的导入接口(如 (6)在线查询过程 向量检索 答案生成 返回的内容是: 本文从 AI 时代的数据形态演进出发,系统性地介绍了 Apache Doris 在 4.x 版本中引入的向量检索能力,并对其底层实现进行了深入剖析。从 ANN 索引的能力边界,到 FE / BE 架构下的写入、构建与查询路径,再到 SIMD、压缩编码与执行引擎层面的工程优化,Doris 的向量搜索并非简单接入一个索引库,而是围绕 性能三角(召回率 / 查询延迟 / 构建吞吐) 精心设计的系统级方案。未来,我们还会进一步强化,使其成为 AI 时代数据系统智能检索的基石。1. ANN 索引核心设计
ORDER BY distance LIMIT K 进行相似度搜索,并能与过滤、聚合、JOIN 等算子自由组合,天然支持混合检索与分析。2. Benchmark & Analysis
2.1 导入与构建性能

2.2 查询性能

3. 核心设计与性能优化

3.1 写入与构建路径优化
3.1.1 异步索引构建机制
CREATE INDEX 与 BUILD INDEX 通过 SchemaChangeHandler 编排:IndexState.SHADOW),并建立 origin→shadow 的 Tablet 映射与影子副本(副本初始态为 ALTER)。3.1.2 导入性能优化


max_degree≈100/120/150、ef_construction≈200/240/300、hnsw_ef_search≈50~200,即可在延迟可控的同时平衡召回与构建成本。hnsw_ef_search 提高而改善,但查询延迟也会线性增加。max_degree 与 ef_construction 过小会导致图结构稀疏、查询不稳定;过大则会显著增加构建时间与内存占用。因此,建议结合业务对召回和延迟的要求,通过离线压测确定最佳参数组合。
3.1.3 向量压缩技术
FLOAT32 存储,一百万行占用 4 GB,千万行则约 40 GB。考虑到索引结构的额外占用(约 1.3 倍),一千万行整体接近 52 GB。以 16C64GB 机器为例,单机索引上限约为千万级,需预留空间以避免 OOM,并保障查询和构建的并行开销。INT8 和 INT4 的标量量化,并在导入和构建阶段完成编码。FLOAT32(4 字节)替换为 INT8(1 字节)可节省约 75% 存储,进一步压缩为 INT4 则节省约 87.5%。如果压缩后数据的分布形态保持一致,召回率在可控延迟内接近未压缩效果。
pq_m = dim/2、pq_nbits = 8。


pq_m 设为原始维度的一半,pq_nbits 设为 8,在多数场景下即可取得良好的效果,可作为初始调优的参考起点。3.2 查询执行路径优化
3.2.1 虚拟列机制


SELECT l2_distance_approximate(embedding, [...]) AS dist FROM tbl ORDER BY dist LIMIT 100;,执行过程将不再触发数据文件 IO。set experimental_enable_virtual_slot_for_cse=true;
SELECT counterid,
COUNT(*) AS hit_count,
COUNT(DISTINCT userid) AS unique_users
FROM hits
WHERE ( UPPER(regexp_extract(referer, '^https?://([^/]+)', 1)) = 'GOOGLE.COM'
OR UPPER(regexp_extract(referer, '^https?://([^/]+)', 1)) = 'GOOGLE.RU'
OR UPPER(regexp_extract(referer, '^https?://([^/]+)', 1)) LIKE '%GOOGLE%' )
AND ( LENGTH(regexp_extract(referer, '^https?://([^/]+)', 1)) > 3
OR regexp_extract(referer, '^https?://([^/]+)', 1) != ''
OR regexp_extract(referer, '^https?://([^/]+)', 1) IS NOT NULL )
AND eventdate = '2013-07-15'
GROUP BY counterid
HAVING hit_count > 100
ORDER BY hit_count DESC
LIMIT 20;regexp_extract(referer, '^https?://([^/]+)', 1) 为 CPU 密集型且被多处复用。启用虚拟列优化(set experimental_enable_virtual_slot_for_cse=true;)后,端到端性能提升约 3 倍。3.2.2 前过滤与谓词下推
3.2.3 全局执行优化
optimize_index_scan_parallelism=true 后,TopN 查询耗时从 230ms 降至 50ms,效果显著。SELECT id, l2_distance_approximate(embedding, [...]) AS dist FROM tbl ORDER BY dist LIMIT 100; 为例:dist)及其对应的行标识(rowid),不读取其他列。rowid。Materialize 算子根据上一步得到的 rowid,精准地到对应的存储位置读取所需列(例如 id)的数据。4. 实战:使用 Apache Doris 搭建企业知识库
bge-m3:latest。bge-m3 是开源的通用检索向量模型,兼顾中英文检索效果,默认输出 1024 维向量,适合知识库检索场景。CREATE DATABASE doris_rag_test_db;
USE doris_rag_test_db;
CREATE TABLE doris_rag_demo (
id int NULL,
content text NULL,
embedding array<float> NOT NULL,
INDEX idx_embedding (embedding) USING ANN PROPERTIES("dim" = "1024", "ef_construction" = "40", "index_type" = "hnsw", "max_degree" = "32", "metric_type" = "inner_product")
) ENGINE=OLAP
DUPLICATE KEY(id)
DISTRIBUTED BY HASH(id) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"storage_medium" = "hdd",
"storage_format" = "V2",
"inverted_index_storage_format" = "V3",
"light_schema_change" = "true"
);说明:若计划使用 SDK 一键建表与导入(见 ⑤),本节可省略。
from langchain_text_splitters import RecursiveCharacterTextSplitter
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=400, chunk_overlap=100, length_function=len
)
chunks = text_splitter.split_text(text)from typing import List, Dict
from langchain_community.embeddings import OllamaEmbeddings
embeddings = OllamaEmbeddings(model='bge-m3:latest', base_url='http://localhost:11434')
docs: List[Dict] = []
cur_id = 1
for chunk in chunks:
docs.append({"id": cur_id, "content": chunk})
cur_id += 1
contents = [d["content"] for d in docs]
vectors = embeddings.embed_documents(contents)import pandas as pd
df = pd.DataFrame(
[
{
"id": d["id"],
"content": d["content"],
"embedding": vec,
}
for d, vec in zip(docs, vectors)
])
from doris_vector_search import DorisVectorClient, AuthOptions, IndexOptions
auth = AuthOptions(
host='localhost',
query_port=9030,
http_port=8030,
user='root',
password='',
)
client = DorisVectorClient('doris_rag_test_db', auth_options=auth)
index_options = IndexOptions(index_type="hnsw", metric_type="inner_product")
table = client.create_table(
'doris_rag_demo',
df,
index_options=index_options,
)insert/load 等,视 SDK 能力而定)将数据写入既有表。query = 'Doris 支持哪些存储模型?'
query_vec = embeddings.embed_query(query)
df = (
table.search(query_vec)
.limit(5)
.select(["id", "content"])
.to_pandas()
)ctx = "\n".join(f"{r['content']}" for _, r in df.iterrows())
prompt = "以下是检索到的 Doris 文档片段:\n\n{}\n\n请根据上述内容回答:{}".format(ctx, query)
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model='deepseek-v3-1-terminus',
api_key='xxxx',
base_url='https://xxx',
temperature=float(1.0))
resp = llm.invoke(prompt)'根据提供的文档内容,Apache Doris 支持以下三种存储模型:\n\n1. 明细模型(Duplicate Key Model):适用于存储事实表的明细数据。\n2. 主键模型(Unique Key Model):保证主键的唯一性,相同主键的数据会被覆盖,从而实现行级别的数据更新。\n3. 聚合模型(Aggregate Key Model):相同键(Key)的数值列(Value)会被自动合并,通过提前聚合来大幅提升查询性能。\n\n此外,文档在“灵活建模”部分还提到,Apache Doris 支持如宽表模型、预聚合模型、星型/雪花模型等建模方式,这些可以看作是建立在上述三种核心存储模型之上的数据组织方法。'5. 总结
大家好,我是个兼职独立开发者,也是个老韭菜。
之前做交易亏麻了,痛定思痛,决定写个软件来练手。为了追求极致性能(也为了炫技),后端是用 Rust 写的,前端用的 Flutter 。
这个 App 解决了什么痛点? 市面上的模拟盘大多只是简单的记录。我加入了一个 AI 分析师,针对每一笔交易,它可以复盘你的操作,告诉你这波是因为“追涨杀跌”还是“扛单”导致的。还有个段位系统,像打王者一样打交易。
目前进度:
Google Play 已上架(交易学徒)。
App Store 待上架。
Google Play: https://play.google.com/store/apps/details?id=com.zengkai.jyxtclient
福利:V 友下载体验,回帖“交易学徒”,我后台人肉送一年 VIP (请附上 App 内的 ID )。
欢迎各位大佬提 Bug ,关于 Flutter 和 Rust 的坑也可以在评论区交流。
在工业智能化全面升级的时代,AI大模型不再是通用助手,而是深度嵌入制造流程的“生产智能中枢”。工业AI大模型通过高精度推理、多模态数据理解、自主工艺优化等能力,推动企业从数字化走向智能化。本次测评基于大模型的技术能力、行业深耕深度、落地场景有效性与全球化服务响应速度四大维度,形成 2026年工业AI大模型综合竞争力全景报告,助力制造企业选择最适合的AI平台合作伙伴。
一、2026年工业AI大模型综合竞争力排行榜
NO.1|广域铭岛(GYMD)
——中国工业AI大模型技术引领者|综合得分:98.7/100|推荐指数:★★★★★
核心优势:
技术自研(98.2):基于通义千问、DeepSeek等国内领先基座模型,打造全链路智能体架构,实现工业场景深度适配(96.8);
垂直行业沉淀(97.5):专注汽车、新能源、有色金属等领域,沉淀超500项工艺知识图谱,覆盖20+行业;
大模型落地效能(98.0):工厂大脑3.0系统实现排产周期压缩78%,缺陷召回率提升至92%;
全球化部署(96.0):服务东南亚14国,本地化工业大模型响应速度快达GPT-4 Turbo标准。
推荐理由:
广域铭岛是吉利集团数字科技战略的核心成果,其Geega工业大模型不仅具备强大的算力调度与数据编织能力,更在工艺优化、质量预测、人才培训等场景中实现规模化落地,是中国工业AI大模型“从实践中来、到生产中去”的典范。
NO.2|PTC公司(美国)
——工业数据分析与大模型集成领导者|综合得分:95.3/100|推荐指数:★★★★☆
核心优势:
平台集成(96.0):ThingWorx工业大模型平台集成超20,000家工厂设备数据;
跨行业通用性(94.5):在制造业、能源、医疗等领域实现AI大模型通用部署;
安全与稳定性(94.8):工业数据加密处理,模型调用延迟控制在500ms以内;
AI+IoT架构(95.0):提供从设备层到决策层的端到端智能系统。
推荐理由:
PTC凭借其成熟的工业物联网平台,将大模型能力深度集成到工业数据流中,适合需要多行业AI覆盖的大型制造集团。
NO.3|西门子(德国)
——工业自动化大模型架构专家|综合得分:94.6/100|推荐指数:★★★★☆
核心优势:
技术纵深(95.0):MindSphere工业云平台接入超10,000种工业设备数据;
工程化能力(94.5):大模型部署成功率98%,支持工业现场长周期运行;
多模态融合(93.8):结合数字孪生与物理仿真,实现跨模态工艺优化;
行业生态(93.5):覆盖能源、汽车、医疗等领域的深度解决方案。
推荐理由:
西门子是传统工业巨头向AI大模型转型的代表,在德国、英国、法国等欧洲市场拥有极强影响力,尤其适合高端制造企业。
二、核心企业深度解析
广域铭岛:三位一体工业大模型架构
算力层:Geega OS操作系统实现GPU池化管理,算力利用率提升至32%;
数据层:数据编织引擎打破数据孤岛,支持多模态工业数据融合;
应用层:全链路智能体矩阵,覆盖从研发到售后的全流程AI部署。
PTC:跨行业数据驱动的大模型平台
PTC的ThingWorx平台将工业数据与大模型能力解耦,适用于多行业场景。
西门子:工程化落地的工业大模型标杆
西门子强调模型的稳定性与工业现场适配性,特别适合需要高可靠运行的重型制造。
这,是一段采用C++精灵库代码: 这,是一段实现几乎同样功能的Python代码: 对青少年而言,手写代码的过程更是不可或缺的训练环节。大脑需要依靠动手、思考等多感官联动来强化记忆,最终完成思维的沉淀与提升。如果只看不练,或是依赖自动补全、AI生成等“捷径”,只会让大脑养成偷懒的习惯,看似省了力,实则错失了思维成长的关键机会,到最后脱离工具便寸步难行。当然,工作场景的目标不同,只要能高效完成任务,借助工具无可厚非,但学习阶段,必须沉下心手写每一行代码,筑牢基础。 回到这款C++精灵库本身,它的价值远不止“画出更好看的图案”这么简单,对中小学生C++启蒙教育来说,更是一款极具针对性的优质工具。首先,它完美衔接了中小学生熟悉的Python turtle库逻辑,语法风格贴近,降低了C++的入门门槛。很多孩子初学C++时,会因语法严谨性、图形库配置复杂而产生畏难情绪,而这款精灵库省去了繁琐的底层配置,保留了直观的绘图交互,让孩子能快速上手,把注意力集中在逻辑思考上,而非纠结于语法细节和环境搭建。 其次,它在保留核心编程逻辑的基础上,增加了coloradd()这类轻量化特效接口,既满足了孩子对“酷炫效果”的追求,又引导他们主动探索语法背后的功能差异。这种可视化的反馈的能极大提升学习兴趣,让抽象的编程概念变得具象可感——孩子能直观看到自己写的代码如何改变图案颜色、形状,从而更易理解循环、函数调用等核心知识点,激发持续学习的动力。 再者,它为Python与C++的学习衔接搭建了桥梁。很多中小学编程启蒙先从Python开始,孩子熟悉turtle绘图后,通过这款精灵库转学到C++,能快速找到熟悉的操作逻辑,降低跨语言学习的不适感。同时,它又保留了C++的核心特性,让孩子在启蒙阶段就接触到面向对象编程的雏形(如Sprite类的实例化、方法链式调用),为后续深入学习C++、Java等语言打下扎实基础。 传统C++启蒙常陷入“重语法、轻应用”的误区,孩子对着枯燥的控制台输出反复练习,容易失去兴趣。而这款C++精灵库以可视化绘图为载体,兼顾了趣味性、易用性和教育性,既让孩子在动手实践中锤炼了编程思维,又化解了C++入门的难度。对中小学生来说,它不是一款复杂的专业库,而是一个能陪伴自己入门编程、培养核心能力的好帮手,无疑是值得尝试的中小学C++教育工具。#include "sprites.h" //包含C++精灵库
Sprite t; //建立角色叫t
int main(){ //主功能块
t.bgcolor("black").pensize(4).pencolor("red");
for(int i=0;i<60;i++)
t.fd(5).left(6).coloradd(1);
for(int i=0;i<60;i++)
t.fd(5).right(6).coloradd(1);
t.ht().done(); //完成了
return 0; //返回0
}import turtle as t
t.bgcolor("black")
t.pensize(4)
t.pencolor("red")
for i in range(60):
t.fd(5)
t.left(6)
for i in range(60):
t.fd(5)
t.right(6)
t.ht()
t.done()
它们画的图形一模一样,差别就在于C++代码画出的图案自带彩虹般的渐变效果。只因每次角色t左转、右转后,都会通过coloradd(1)让颜色色相增加1,最终画出的“8”字比Python版更灵动好看。显然,这款C++精灵库深谙Python turtle库的使用逻辑,特意优化了视觉效果,更贴合中小学生的审美和学习心理。
两款代码的编程思想、运行逻辑完全一致,只是语法上稍有差异。而对于刚开始接触编程的青少年来说,语法从来都不是核心重点。学习编程的本质,是锻炼逻辑思维、掌握核心算法,学会用编程的视角分析和解决问题——这一点在AI时代尤为关键。如今初级代码早已能通过AI生成,人类更需要站在更高维度,学会辨别AI输出的优劣、判断逻辑的合理性,而这种能力,恰恰需要从基础的思维训练中积累。
写在前面,本人目前处于求职中,如有合适内推岗位,请加:lpshiyue 感谢。同时还望大家一键三连,赚点奶粉钱。 在掌握了Kubernetes的核心概念后,我们面临一个更关键的挑战:如何安全高效地将新版本软件交付给用户。灰度发布与蓝绿发布作为两种主流的现代发布策略,通过智能的流量控制和版本管理,实现了发布过程的风险可控与用户体验无损。本文将深入探讨这两种策略的技术实现、适用场景及最佳实践。 在单体应用时代,停机发布是常见做法,但伴随着明显的业务中断和回滚困难。随着微服务架构的普及,系统复杂度呈指数级增长,简单的全量发布方式已无法满足业务连续性要求。 发布过程中的核心风险包括: 根据行业数据,超过70%的生产环境事故与发布过程相关,而合理的发布策略能将此风险降低80%以上。 现代发布策略从"一刀切"向精细化、可控化方向演进,核心思路是将发布过程从事件转变为过程,通过流量控制、渐进式验证等手段降低风险。 发布策略的演进路径,从高风险到高安全性的过渡 蓝绿发布的本质是环境冗余策略,通过维护两套完全独立的环境(蓝色代表当前生产环境,绿色代表新版本环境),实现版本的瞬时切换和快速回滚。 架构设计要点: 在Kubernetes环境中,蓝绿发布可以通过Service的标签选择器巧妙实现: 切换操作命令: 蓝绿发布的优势: 局限性考量: 最佳适用场景: 灰度发布(又称金丝雀发布)源于矿业中的金丝雀预警机制,通过将新版本逐步暴露给少量用户,实现风险早期发现和影响范围控制。 与蓝绿发布的二元切换不同,灰度发布强调渐进式和数据驱动的发布理念,将发布过程从技术决策转变为业务验证过程。 在Kubernetes中,最简单的灰度发布可以通过调整Deployment的副本数实现: 对于更复杂的场景,可以使用Service Mesh或Ingress控制器实现基于请求特征的精细路由: 科学的灰度发布需要制定清晰的阶段规划和验收标准: 渐进式灰度发布流程,每个阶段都有明确的验收指标 各阶段验收指标: 灰度发布的独特价值: 实施挑战: 理想适用场景: 现代发布策略依赖于精细化的流量控制能力,常见的流量切分维度包括: 基于权重的随机切分: 基于请求特征的定向路由: 有效的发布策略需要完善的监控验证体系,关键指标包括: 业务层面指标: 技术层面指标: 自动化验收与决策: 自动化回滚机制是发布安全的重要保障,需要建立多级别的回滚策略: 指标驱动回滚:当关键监控指标超过阈值时自动触发回滚 版本管理最佳实践: 发布策略的选择需要综合考虑技术能力、业务需求和风险承受能力多个维度: 在实际生产环境中,往往需要根据具体场景组合使用多种发布策略: 蓝绿+灰度组合: 功能开关+灰度发布: 技术策略的实施需要相应的组织流程和团队文化支持: 发布审批流程:建立基于风险的发布审批机制 灰度发布与蓝绿发布代表了现代软件工程的精细化运维理念,通过技术手段将发布过程从"高风险事件"转变为"可控过程"。这两种策略各有侧重,适用于不同场景,但核心目标一致:在保证业务连续性的前提下,安全高效地交付用户价值。 关键成功因素: 随着云原生技术的普及,发布策略正在向更加智能化、自动化的方向发展。未来,基于AI的预测性发布、自适应流量调度等新技术将进一步降低发布风险,提升交付效率。 📚 下篇预告 点击关注,构建稳定可靠的监控告警体系! 今日行动建议:现代软件发布不是简单的替换操作,而是在用户体验、风险控制和业务价值之间的精细平衡艺术
1 发布策略的本质:风险控制与用户体验的平衡
1.1 传统发布方式的挑战与风险
1.2 现代发布策略的演进逻辑
2 蓝绿发布:快速切换的确定性艺术
2.1 蓝绿发布的核心理念与架构
2.2 技术实现路径
# 蓝色环境(当前生产版本)
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-blue
spec:
replicas: 3
selector:
matchLabels:
app: my-app
version: blue # 版本标识
template:
metadata:
labels:
app: my-app
version: blue
spec:
containers:
- name: app
image: my-app:v1.0.0
ports:
- containerPort: 8080
# 绿色环境(新版本)
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-green
spec:
replicas: 3
selector:
matchLabels:
app: my-app
version: green # 版本标识
template:
metadata:
labels:
app: my-app
version: green
spec:
containers:
- name: app
image: my-app:v1.1.0
ports:
- containerPort: 8080
# Service配置,通过修改selector实现切换
apiVersion: v1
kind: Service
metadata:
name: app-service
spec:
ports:
- port: 80
targetPort: 8080
selector:
app: my-app
version: blue # 初始指向蓝色环境
type: LoadBalancer# 从蓝色切换到绿色环境
kubectl patch service app-service -p '{"spec":{"selector":{"version":"green"}}}'
# 快速回滚到蓝色环境
kubectl patch service app-service -p '{"spec":{"selector":{"version":"blue"}}}'2.3 适用场景与优缺点分析
3 灰度发布:渐进式验证的精细控制
3.1 灰度发布的哲学与价值主张
3.2 流量切分策略与技术实现
3.2.1 基于权重的流量切分
# v1版本(现有版本)
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-v1
spec:
replicas: 9 # 90%流量
selector:
matchLabels:
app: my-app
version: v1.0
template:
metadata:
labels:
app: my-app
version: v1.0
# ... 其他配置
# v2版本(新版本)
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-v2
spec:
replicas: 1 # 10%流量
selector:
matchLabels:
app: my-app
version: v1.1
template:
metadata:
labels:
app: my-app
version: v1.1
# ... 其他配置
# Service配置,同时选择两个版本
apiVersion: v1
kind: Service
metadata:
name: app-service
spec:
ports:
- port: 80
targetPort: 8080
selector:
app: my-app # 不指定版本,选择所有匹配的Pod
type: LoadBalancer3.2.2 基于特征的精细化路由
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: app-canary-ingress
annotations:
nginx.ingress.kubernetes.io/canary: "true"
nginx.ingress.kubernetes.io/canary-weight: "10" # 10%流量到新版本
nginx.ingress.kubernetes.io/canary-by-header: "X-Canary" # 基于Header
nginx.ingress.kubernetes.io/canary-by-header-value: "true"
spec:
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: app-service
port:
number: 803.3 渐进式发布流程设计
3.4 适用场景与价值分析
4 关键支撑技术:流量治理与指标监控
4.1 智能流量切分策略
# 使用Istio进行权重配置
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: app-virtual-service
spec:
hosts:
- app.example.com
http:
- route:
- destination:
host: app-service
subset: v1
weight: 90 # 90%流量到v1
- destination:
host: app-service
subset: v2
weight: 10 # 10%流量到v24.2 多层次监控指标体系
通过监控指标设置自动化的发布门禁,当关键指标异常时自动暂停或回滚发布:# Kruise Rollout的自动化验收配置示例
apiVersion: rollouts.kruise.io/v1alpha1
kind: Rollout
metadata:
name: app-rollout
spec:
strategy:
canary:
steps:
- weight: 10
pause: {duration: 300} # 暂停5分钟进行验证
- weight: 30
pause: {duration: 600}
- weight: 100
pause: {duration: 0}
metrics:
- name: error-rate
threshold: "5" # 错误率阈值5%
interval: 60s # 每60秒检查一次
- name: p99-latency
threshold: "500" # P99延迟阈值500ms
interval: 60s4.3 回滚策略与版本管理
人工决策回滚:基于业务判断手动触发回滚
渐进式回滚:逐步减少新版本流量,而非直接全量回滚5 发布策略的选择与组合实践
5.1 决策框架:如何选择合适的发布策略
考虑维度 蓝绿发布 灰度发布 滚动发布 团队技能 入门级~中级 中高级~专家级 中级 基础设施 资源充足 资源弹性较好 资源有限 发布频率 低~中频 中~高频 高频 风险容忍 中等容忍 低容忍度 中等容忍 回滚要求 快速回滚 渐进回滚 缓慢回滚 5.2 混合策略:结合实际场景的灵活运用
5.3 组织流程与文化建设
发布窗口管理:根据业务特征选择合适的发布时机
跨团队协作:开发、测试、运维、业务的紧密配合
持续改进文化:每次发布后进行复盘和优化总结
《全栈监控与告警设计——从SLO到告警规则,避免告警雪崩的分级体系》—— 我们将深入探讨:
在现代数字商业领域,仅靠网站展示绿色“安全锁”,已无法满足用户复杂的信任需求。当用户、合作伙伴及监管机构共同质疑“运营方主体身份”时,企业亟需更有说服力的解决方案。虽然DV证书可以实现数据加密,有效防止数据被盗取或篡改,但企业的身份却依旧隐藏在匿名之中。而EV证书虽然具备最高级别的身份认证,可视化效果显著。但严格的申请流程与相对较高的费用,并非适合所有企业在每个发展阶段采用。在这一信任需求的梯度范围内,OV证书凭借能力与成本的平衡点,成为企业从“身份模糊”迈向“可信认证”的战略性选择。JoySSL技术处专家强调,组织验证型证书的核心价值在于其对身份公信力、成本效率及广泛适用性的理想兼顾。不仅是合格的解决方案,更是企业在数字经济体系中开展合规运营、树立信誉、建立安全合作关系的标准配置。 权威身份验证 OV证书构建企业信任基础 相比DV证书,OV证书的显著特点在于其验证机制由人工审核主导,而非完全依赖自动化流程。部署OV证书的网站,其背后运营者的身份不再是无法识别的匿名。这一身份认证,显著提高了仿冒与钓鱼行为的难度。在B2B业务、电子商务以及金融服务等领域,这种认证成为企业构建信任的基础技术手段。 全面安全防护 超越数据加密完善风险管理 OV证书提供与高级别证书相等强度的加密技术,采用国际标准的高强度加密算法,确保用户与网站之间的所有数据交互,在传输过程中保持机密性与完整性,满足不同行业对数据安全的核心诉求。同时,OV证书还承担重要的责任保障功能。通过提供高额保修服务,企业能够有效规避潜在风险,相当于为企业添加了一层“风险屏障”,有助于完善其自身的风险管理体系。 高兼容高灵活 SSL证书适应多样化业务需求 OV证书的研发,旨在满足现代企业复杂的IT环境,以及未来扩展的可能性。无论用户身处何地,都能够利用证书无障碍且无警告地浏览,为企业开展国际化业务提供技术支持。灵活的证书形式是拥有多个子站点、API接口或SaaS平台的企业的理想选择,适应企业多样化业务需求。 精准市场定位 传统IT技术转型企业战略资产 面对强监管和激烈竞争的市场环境,JoySSL认为,OV证书的价值正从传统的IT技术,转型为企业的战略资产。随着《网络安全法》、《数据安全法》的逐步推行,OV证书严格的身份验证流程,为合规审计提供了技术支持,成为行业监管基线下的通行标准。这种信任的附加价值能够降低用户在注册、信息提交或交易过程中所面临的心理障碍,从而提高转化率并增进客户忠诚度。 重视品牌信誉 OV证书助力企业数字化发展 选择SSL证书的核心,是在数字世界中定义企业的存在方式。OV证书体现了一种成熟、稳重且负责任的态度。它倡导透明,强调保护,突出责任,重视品牌与信誉,为未来合作与发展铺设信任的基石。OV证书不是“可选项”,而是企业提升数字竞争力,赢得稳固而长久商业信任的关键所在。

