DevOps

13 篇内容

工程实践Andy Atkinson

Adding and Removing Big Indexes in PostgreSQL

文章介绍了在 PostgreSQL 大型表上安全添加和删除大索引的完整操作方案。针对创建索引可能持续数小时且需与线上查询并发执行的场景,作者详细说明了使用 CONCURRENTLY 选项避免写操作阻塞、设置 lock_timeout 和 statement_timeout 保护、在 screen/tmux 后台运行、通过特殊查询监控多阶段进度(扫描堆、排序元组、加载元组等)以及调整 maintenance_work_mem 和 max_parallel_maintenance_workers 优化资源的具体方法;同时提供了失败后清理 invalid 索引和处理唯一性限制的注意事项,并给出了最终可直接执行的命令模板。文中基于真实操作给出了各阶段耗时(总计约 6 小时)和性能特征,但方案仅适用于非分区表,且要求手动监控和串行执行并发构建。

推荐收录,因为它不是简单的语法介绍,而是生产环境中管理大表索引的实战手册,包含锁定超时、语句超时、并行度设置、进度监控查询等可复用的工程实践。适合数据库管理员、PostgreSQL 运维人员和后端工程师参考,文中的参数调整思路和阶段监控方法可直接迁移到其他长时 DDL 操作的安全执行中。

工程实践GitHub Engineering

Tame Dependabot: Group your updates, slow the cadence, keep security fast

文章以 Microsoft 的 GCToolkit 项目为例,分析 Dependabot 每日单独提 PR 导致的维护噪音问题,并给出三处关键配置修改:使用 groups 通配符将所有更新合并为一个 PR,将调度间隔从 daily 改为 monthly,以及为每个实际使用的生态添加独立更新条目。作者进一步解释了 Dependabot 安全更新不受版本更新调度影响、默认三天的冷却期可防御供应链攻击等机制,以及 monorepo 场景下按目录分组的选项。文中还给出了从通用配置到精细拆分、冷却期调节及不同项目类型间隔选择的实践建议,强调了在降低噪音的同时不延误紧急安全修复的核心理念。

本文基于真实开源项目的维护经验,将 ‘Dependabot 噪音’ 这一普遍问题转化为具体、可复制的配置模式,且对安全更新的安全边际说明清晰,消除了 ‘减速即风险’ 的常见顾虑。适合所有使用 Dependabot 的仓库维护者,文中的分组、减速、冷却期组合方案可直接迁移,对提升依赖管理效率和安全性有长期参考价值。

工程实践GitHub Security Lab

Disrupting supply chain attacks on npm and GitHub Actions

本文详细介绍 GitHub 为瓦解针对 npm 和 GitHub Actions 的供应链攻击所实施的一系列安全改进。文章按照攻击链(初始入侵、凭证窃取、攻击传播)组织,说明了各阶段的具体威胁及对应防御机制,包括高影响账户的只读延迟、pull_request_target 的安全默认值和触发策略、Actions 缓存的只读限制、Trusted Publishing 扩展、网络防火墙日志、分阶段发布、npm v12 默认禁用安装脚本、Dependabot 的版本冷却期以及凭证吊销 API。这些措施旨在切断攻击者常用的技术路径,但其效果主要限于 GitHub 生态系统,未涉及其他平台或更广泛的供应链安全理论。

推荐收录,因为文章提供了真实的工程安全实践,详细列举了多项可落地的安全机制及其部署背景,对从事 CI/CD 安全、开源维护和 DevOps 的读者有直接的参考价值。其中最小权限、默认安全配置、凭证分离等原则可迁移至其他软件供应链防护场景。

工程实践知乎 - 千问云

Loop Engineering 实战:实现从日志扫描到预发部署的全自主闭环

文章分享了在 AI 驱动诊断系统维护中实践 Loop Engineering 的经验,针对“AI 写代码快但维护循环仍靠人推”的痛点,构建了从日志扫描到预发部署的全自主闭环。通过四代 AI 工程化演进,定义了发现、交付、验证、持久化、调度五动作与 Connectors、Automations、Skills、Worktrees、Sub Agents、State 六组件,实现了自主 Bug 发现、诊断、修复、多层验证与自动部署。上线后效果显著:一周 ERROR 总量下降 96%,同类问题修复时间降低 69%,人工介入降为零。文章还总结了四格检验判断是否适合建 Loop、分层验证防假修复、Token 成本控制等关键教训,指出工程师角色正从循环推动者转向循环设计者,提供了可迁移的工程架构和落地路线图。

本文不是概念炒作,而是生产级工程实践。详细拆解了从日志采集到预发部署的自动化流水线,包含组件设计、验证体系、并行修复、知识库沉淀等可复用方案,并坦诚分享踩坑教训。适合从事 DevOps、SRE 或 AI Agent 工程的读者借鉴,将其中的 Connectors 建设、多层验证、知识库沉淀等机制迁移到自己的自动化维护系统中。

工程实践Instacart Tech Blog

Blueberry: Force Multiplier For The On-Call Engineer

本文深入介绍了Instacart开发的Blueberry系统,一个面向值班工程师的Slack原生推理框架。核心目标是缩短从告警触发到获得首条可执行洞察(TTFI)以及验证推断(TTTT)的时间。系统架构以持久化作业队列实现诊断过程可靠性,通过三层模型上下文协议(MCP)表面组合共享与团队专属工具,并支持并行子代理进行证据采集。在实际运行中,Blueberry在2026年4月处理超2.5万次诊断,TTFI和TTTT中位数约3分钟,成功率达99.9%。文章通过多个案例展示了系统如何快速定位根因、通过多轮对话排除不相关变更、利用历史模式识别外部中断,以及并行处理大规模告警风暴。其关键贡献在于将隐性运维知识外化为可复用基础设施,提升团队协作和排障效率,同时指出安全行动闭环仍在测试中。

本文是一个高质量工程案例,完整记录了生产级AI运维系统的设计决策、架构权衡和量化成效,尤其适合从事SRE、DevOps或AI工程化的团队参考。文中展示的持久化推理、分层工具集成和证据驱动排障模式具有明确的可迁移价值,对希望构建类似协作式值班助手的组织有直接启发,但需注意其强依赖Slack生态和内部工具链。

工程实践GitHub Security Lab

How GitHub gave every repository a durable owner

文章讲述了 GitHub 如何为内部组织超过 1.1 万个无主仓库建立持久所有权。面对秘密扫描修复等安全工作中找不到仓库负责人的痛点,GitHub 设计了基于自定义属性(ownership‑type 和 ownership‑name)的所有权模型,区分服务目录、团队和个人三类。通过同步服务目录获得初始覆盖后,利用 GitHub App 和 Kubernetes CronJob 推出自动化执行:新仓库创建时强制声明所有权,已有仓库则创建 issue 并给予 30 天宽限期,逾期未声明的仓库被归档。过程中因缺少直接通知和外部数据源异常导致两次小型事故,随即引入 @提及通知、低水位阈值等保护措施。最终归档约 8000 个仓库,所有活跃仓库均具备持久所有者,并维持实时检查以防漂移。文章提供了可迁移的实践步骤,强调自动化操作必须预设数据失效和通知缺失的防护。

本文是一个完整的工程实践案例,从问题定义、模型设计、自动化推出到异常处理形成闭环,真实呈现了大规模组织内部推行仓库所有权管理的取舍和教训。对于需要治理海量代码仓库、提升安全响应速度或满足合规要求的平台工程团队、DevOps 或安全工程师,文中的自定义属性方案、可逆归档策略和边缘防护思路具有直接可迁移价值,同时也提醒了自动化操作中必须提前防御数据可靠性和通知失效问题。

工程实践GitHub Engineering

Automating cross-repo documentation with GitHub Agentic Workflows

文章来自GitHub工程博客,详细介绍了Aspire团队如何利用GitHub Agentic Workflows实现跨仓库(microsoft/aspire到microsoft/aspire.dev)的文档自动生成。核心方法是在特性PR合入后触发工作流,通过里程碑自动解析目标文档分支,由LLM代理阅读代码diff和关联issue,判断是否需要文档并起草MDX内容,最终以草稿PR形式提交并指定特性工程师为审核人。安全模型通过safe-outputs契约将代理的写入能力严格限定在指定仓库、分支和受保护文件之外,使用GitHub App令牌实现最小权限。文中给出了30天运行数据:396次运行生成82个文档PR,中位合并时间44.8小时,合并率100%,并总结了里程碑映射、草稿+专人审核、令牌作用域等成功经验,以及初版门控过宽、大diff预算爆炸等改进。该方案显著降低了文档的‘逆向工程税’,使文档作者转向更高价值工作,但要求项目已有清晰里程碑与发布分支映射,且需要预处理大尺寸PR。

这是一篇高质量的工程实践案例,完整呈现了跨仓库文档自动化的真实挑战、方案设计、安全权衡与效果验证。文中对安全约束的细致设计(如safe-outputs、GitHub App最小权限)和过程数据极具参考价值,可直接指导类似场景下AI驱动工作流的落地。适合负责DevOps、平台工程或需要提升文档效率的团队阅读,其中的里程碑映射、草稿+专家审核模式以及安全思维均可迁移至其他自动化项目。

工程实践LWN.net

CalyxOS is back

这篇文章介绍 CalyxOS 在暂停发布后如何重新恢复发行,重点不是“回归”本身,而是重建了一套更安全、更可持续的发布体系。作者说明团队改用基于 HSM 的开源签名方案,并通过审计脚本验证 HSM 预置流程,以降低私钥泄露和单点故障风险。文章还提到发布基础设施被重构为更清晰的服务器分工,同时针对 Google 降低 AOSP 频率后带来的补丁合并成本,团队编写脚本来减少每月更新的手工负担。与此同时,作者也坦承仍有手工步骤无法自动化,例如每次更新都要补齐 kernel sources,以及维护 LineageOS/CalyxOS 的 base device trees。整体来看,它展示的是一个 Android 发行版在安全签名、发布工程和上游依赖变化下的系统性应对,但也明确了自动化的边界仍受制于上游供应和设备树维护。

收录价值在于它给出了可复用的发布安全改造案例:HSM 签名、审计脚本、去单点故障和发布基础设施重构都有具体证据。适合关注开源发行版、安全发布链路和上游变更治理的读者参考,也能迁移到其他需要高可信发布流程的项目中。

工程实践Salesforce Engineering

How AI Learned to Investigate Mobile Build Failures Like an Experienced Support Engineer

文章介绍 Salesforce Mobile CI/CD 团队如何把八年积累的移动构建排障经验,抽象成名为 Analyze Build Tools 的 AI 排查系统。该系统不再只展示仪表盘,而是像资深支持工程师一样基于假设主动收集证据,联动 Managed Pipelines、Splunk、历史构建和内部指标,判断失败更可能来自应用代码、平台基础设施还是 Apple/Google 外部变更。它通过 /mp-investigate-build 等能力,让开发者直接询问“为什么失败”,减少人工拼接日志和跨系统检索的成本。作者给出明确成效:事故解决时间约缩短 60%,构建失败分析工作量下降 75%,使 8 人团队能够支撑 60+ 仓库和更多移动工程师。文章也指出当前系统仍以事后排障为主,下一步是做异常检测与主动告警,但告警噪声控制将决定其可用性。

推荐收录,因为文章给出了从“看仪表盘”到“像支持工程师一样做假设并取证”的具体工程方法,并用 60% 与 75% 两组结果证明了其价值。适合做移动 CI/CD、AI 辅助运维和开发者效率系统的参考,尤其对共享平台如何规模化支持多仓库、多团队场景具有可迁移意义。

工程实践PlanetScale Blog

One Postgres cluster, many apps

文章介绍了如何在一个 PlanetScale Postgres cluster 中承载多个应用:先用逻辑数据库把 blog、todo 等数据与 schema 分开,再通过角色与权限控制实现彼此隔离。作者重点解释了 Postgres 默认对新数据库开放 PUBLIC CONNECT、以及需要显式 REVOKE/GRANT 才能把访问收紧到指定角色,这也是多应用共享集群时最容易踩坑的部分。随后文章给出用 PlanetScale API 创建角色、再在数据库内授予 CONNECT、CREATE 和 schema 权限的完整流程,并提醒读写与迁移职责最好拆分成不同角色。最后作者把这些步骤自动化到 Pulumi/IaC 中,展示如何把新增或删除应用简化为修改配置数组并重新部署。文章也明确边界:这种共享集群方案更适合 side project 和小规模应用,增长到高并发或大量用户时仍应迁移到独立集群。

文章直接给出了 Postgres 多逻辑数据库隔离、角色权限收紧和 IaC 自动化的可执行做法,不是泛泛介绍概念。适合需要在同一集群承载多个小应用、或想把数据库权限管理流程自动化的工程读者参考;但它也明确说明了规模上来后应切到独立集群。

工程实践Grab Tech

Scaling out Distroless adoption With AI

这篇文章讲的是 Grab 如何在大规模服务体系中推进 Distroless 镜像迁移,并把“先补齐可验证的 medium tests,再批量改 Dockerfile”的方法自动化。文章重点不是单纯介绍 Distroless,而是详细说明了为什么迁移会因运行时依赖缺失而失败、如何用分层测试建立安全网,以及如何借助 AI agent、MCP、脚本技能和人类审核把原本高度重复的迁移与修复工作规模化。 作者还给出了一个可执行的 patch-test-compare 流程:先基线化已有测试结果,再检测 Dockerfile 中的系统包依赖,按需生成多阶段构建或直接切换基础镜像,最后用同一套 medium tests 验证是否引入回归。它的结论是,AI 更适合承担“明确目标、可判定成功、但流程繁琐”的工程迁移任务,但前提是要有严格 guardrails、分批反馈和人工最终把关。

推荐收录,因为文章把一个真实的大规模安全迁移问题拆解成了可复用的测试、自动化和人机协作流程,而不是停留在“用了 AI 提效”的宣传层面。对于做平台工程、DevOps、安全基线治理或 AI 辅助工程化落地的读者,这篇文章提供了很强的可迁移经验和明确的边界条件。

工程实践知乎 - 鹅厂架构师

QQ音乐Harness Engineering实践

文章系统介绍了腾讯音乐在大仓多服务场景中落地 Harness Engineering 的实践,核心目标是把 AI 编程从“对话式生成”升级为“可控、可审计、可复用”的工程流程。作者提出用上下文工程、流程门禁、服务矩阵、三层知识体系、Skill/Agent/Command 三件套和 Self-Refinement 机制,把需求、设计、开发、验证和经验沉淀串成一条可追溯的链路,从而降低 AI 生成代码在生产环境中的漂移和返工。文章也明确给出适用边界:它不是替代 IDE 或通用 AI 编程工具,而是位于执行层之上的治理层,尤其适合跨服务、跨仓库、强契约约束的企业研发场景。

推荐收录,因为它不是泛泛谈“AI 提效”,而是把 AI 协作中的真实工程矛盾拆成了可落地的治理方案,包含流程、知识、契约和审计等多个层面。对正在探索 AI 编程工程化、Monorepo 微服务协作和团队级 AI 治理的读者,这篇文章有很强的迁移价值。

工具笔记matklad

TIL: Symlinking NixOS Dotfiles

文章讨论在 NixOS 上管理 dotfiles 的一种轻量替代方案:不使用 home-manager,而是把 dotfiles 与系统配置放在同一仓库中,再通过符号链接把文件放到目标路径。作者指出 NixOS 并没有直接为用户目录提供“原生” symlink 配置,但可以借助 systemd-tmpfiles 的声明式规则间接创建链接,例如把 ~/.config/git/config 指向仓库中的配置文件。文章的核心结论是,这种做法可以兼顾声明式管理和手工可调整性,但作者也明确保留了对其与脚本、stow 等方案优劣的判断空间。

推荐收录,因为它提供了一个具体、可复用的 NixOS 配置技巧,适合正在做 dotfiles 管理或 NixOS 个性化配置的读者。文章价值不在长篇原理,而在于把一个看似没有官方入口的问题,转化为可落地的系统级配置方案。