Terraform 进阶:模块化与远程 State
单文件 Terraform 跑 demo 够了,生产要模块化 + 远程 state。本文讲清 module 的输入/输出/版本、远程 state 后端(S3+DynamoDB 锁/Terraform Cloud)、state 漂移与 import、以及一份生产级 Terraform 项目结构。
@admin
CodeNodeX AI 社区管理员,关注 AI 编程、Next.js 和独立开发。
单文件 Terraform 跑 demo 够了,生产要模块化 + 远程 state。本文讲清 module 的输入/输出/版本、远程 state 后端(S3+DynamoDB 锁/Terraform Cloud)、state 漂移与 import、以及一份生产级 Terraform 项目结构。
更换 embedding 模型不是重建索引后切流那么简单。本文介绍版本化向量、双写双读、离线相关性评估、灰度切换和回滚条件,降低检索质量突变风险。
模态框渲染在组件树深处,会被父级的 z-index/overflow/transform 截断。Portal 把它渲染到 document.body,逃离父级限制。本文讲清 Portal 原理、模态框完整实现(Portal + 焦点陷阱 + Escape + 滚动锁定)、无障碍(aria-modal),以及 Radix Dialog 替你做好这一切。
离线 RAG 指标稳定不代表线上体验稳定。本文说明如何维护金标集、发现查询分布漂移、关联线上反馈,并用受控实验调整检索与生成策略。
"要让模型在某个领域表现好,无非三条路:Prompt 调教、RAG 检索、微调。但绝大多数人选错了——该用 RAG 的去微调,该调 Prompt 的上 RAG。本文按'问题本质'给出决策框架:知识、行为、风格三类需求各自该走哪条路,以及什么时候该组合用。"
RAG 系统检索到不同版本、不同权限或不同来源的矛盾内容时,不能让模型自行挑一个顺眼的答案。本文设计来源排序、冲突检测、时间语义和安全澄清流程。
泛型是 TS 最强也最容易过度使用的特性。本文讲清泛型的正确用法(约束/默认值/推断)、内置 Utility Types(Partial/Required/Pick/Omit/Record/ReturnType/Parameters/Awaited)、什么时候用泛型什么时候不用,以及"类型应该帮你而非困住你"。
文档进了向量库不代表知识库已经正确。本文讲解增量索引的版本号、事件去重、删除墓碑、重试和一致性验证,避免 RAG 长期引用过期或已删除内容。
部署不只是"推新版本"——怎么推、怎么切、出问题怎么回滚,决定了风险大小。本文讲清三种部署策略:蓝绿(两套环境瞬间切换)、金丝雀(小流量验证再放量)、滚动(逐步替换),各自的适用场景与代价,以及生产中怎么选。
RAG 变慢时,团队常只盯着模型首 token。本文用延迟预算拆解检索、过滤、重排、生成和网络开销,并给出按请求风险自适应降级的生产策略。
微服务集成测代价高(要起全部服务),契约测试只验证接口约定不变。本文讲清消费者驱动契约测试(Pact):消费者定义期望、生成契约、提供者验证,解耦前后端/服务间的"我的改动有没有破坏别人"。
把 role 字段改成 policy ID 不是普通 mapping 变更。本文用版本化 ACL schema、双写回填、覆盖账本和负向查询证明迁移期间没有权限空窗。