DevOps

19 篇内容

技术文章Kubernetes Blog

Kubernetes v1.37: Tracking When a PersistentVolumeClaim Was Last Used (Beta)

文章介绍 Kubernetes v1.37 将 PersistentVolumeClaimUnusedSinceTime 特性门控提升为 Beta 并默认启用。PVC 保护控制器会在每个 PVC 上维护 Unused 条件:没有非终态 Pod 引用时为 True,原因为 NoPodsUsingPVC;至少一个运行或 Pending Pod 引用时为 False,原因为 PodUsingPVC。文章说明已完成 Pod 不计入使用,Pending Pod 仍计入,多个 Pod 需等最后一个非终态 Pod 移除后才转为 True,并利用 lastTransitionTime 判断 PVC 空闲多久。文中给出 kubectl/jq 查看条件和筛选闲置超过 30 天 PVC 的示例,并指出 Alpha 到 Beta 增加了端到端测试,未来计划 GA。适用于集群存储清理与成本治理,但特性仍处 Beta,行为可能随版本演进。

推荐收录。该文不是简单发布公告,而是由 Kubernetes 官方给出 Unused 条件的精确语义、终态/Pending/多 Pod 边界和可执行 jq 查询,可直接指导闲置 PVC 发现与存储成本治理。适合 Kubernetes 存储管理员、SRE/DevOps 和平台工程读者,迁移价值在于把 PVC 生命周期可观测性纳入日常运维。需注意其行为绑定 v1.37 Beta,后续 GA 可能调整。

工程实践TiDB 社区博客 - 实践案例

【升级指南】 大版本升级指导

文章是 TiDB 大版本升级的操作指南,按升级前置、原地升级和迁移升级三个阶段组织。前置阶段列出 variables/config 比对、应用兼容性回归、集群巡检、Patch 检查、性能压测、升级时长与 DDL 窗口评估、软件包准备和备份清单等检查项。原地升级给出屏蔽告警、按最佳实践调整 config、tiup cluster upgrade、监控 QPS/P99 与 PD Leader、核对版本和调整 variables 等步骤。迁移升级则通过 CDC 搭建备库、VIP 切换、sync_diff_inspector 校验、反向同步来支持回退。整体偏流程清单,缺少真实案例、失败复盘和版本差异细节,需结合官方 Release Notes 与自身环境验证。

推荐收录:文章给出 TiDB 大版本升级的完整检查项与操作步骤,包括升级前变量/参数比对、兼容性回归、压测、备份清单,以及原地升级和 CDC 迁移升级加反向同步的回退路径,并列出具体 tiup 命令与监控指标。对 TiDB DBA/SRE 做升级窗口评估和风险控制有直接参考价值。但内容偏流程清单,缺少实际案例与版本差异分析,使用时需结合官方 Release Notes 和环境验证。

工程实践TiDB 社区博客 - 实践案例

【升级指南】TiDB 集群升级标准操作步骤,从v6.5升级到 v8.5.x

本文给出 TiDB 集群从 v6.5.12 升级到 v8.5.x(示例目标版本为 v7.1.8-5.2)的标准操作步骤,覆盖前置评估、原地升级和迁移升级三类流程。前置阶段通过脚本对比升级前后系统变量、TiDB/TiKV/PD 配置差异,并包含巡检、patch 检查、压测、窗口与 DDL 评估、安装包准备,以及系统变量、权限、sequence、view、core variables、meta.yaml 等备份脚本。原地升级使用 tiup cluster upgrade,随后检查 QPS/P99、PD Leader、版本与 git_hash,并按最佳实践微调 config 和 variables。迁移升级给出 BR 全量恢复、TiCDC 同步、sync_diff_inspector 一致性校验、应用切流和反向同步,以及异常时回退流程。文章偏运维 runbook,命令和脚本可复用,但版本号示例与目标不完全一致,部分步骤仅有文字或无截图,需结合实际环境验证。

推荐收录,因为它提供了可执行证据:变量/配置 diff 脚本、完整备份脚本、tiup 原地升级命令、BR+TiCDC 迁移与 sync_diff_inspector 校验、回退步骤,而不是泛泛介绍升级流程。适合 TiDB DBA、SRE 和负责数据库变更的工程团队在制定升级窗口、备份、校验与回滚预案时参考。主要风险是示例版本为 v7.1.8-5.2、部分环境信息被脱敏,且少数步骤缺少截图和验证数据,落地前需在测试环境验证。

工程实践TiDB 社区博客 - 实践案例

5 个 Agent 如何交付一套啤酒节营销系统:平凯 Loop 开发轻量业务应用的实践

文章复盘在平凯 Loop 中用 5 个角色 Agent 协作交付啤酒节营销系统的实践,系统覆盖活动、促销、优惠券核销、分群、A/B 实验与看板,含 17 个 REST API 和可运行 Demo。作者关注多 Agent 如何在统一上下文和验收机制下完成需求、开发、测试与部署协同。核心做法包括:一需求一线程并前置验收标准;按 Leader、RD、QA、DevOps 等交付物划分角色;按依赖关系推进;把完成定义为静态检查、自动化测试和真实交互三层证据;将踩坑固化为规则。文中用一次 25 分钟增量变更说明上下文共享、依赖显性化和验收前置的收益,并强调该模式适合边界清晰的轻量系统,生产化仍需补齐认证、权限、审计、监控、备份和合规。

推荐收录:文章不是产品发布稿,而是给出了 5 个角色 Agent 在真实轻量业务系统中的任务拆分、角色边界、依赖排序和多层验收证据,并附 25 分钟增量变更闭环。对探索 AI 工程化、多 Agent 协作或内部工具快速交付的团队,这些实践可直接迁移;同时明确列出 Demo 到生产的安全、合规和运维缺口,避免读者误判适用范围。

工程实践ClickHouse Engineering

Announcing support for ClickStack in the ClickHouse Terraform provider

本文是 ClickHouse 工程博客,宣布在官方 Terraform provider(ClickHouse/clickhouse,v3.25 起 beta)中新增 ClickStack 资源支持,可把仪表盘、告警、数据源、已保存搜索、连接与 Webhook 纳入版本控制和代码评审。核心工程取舍是:不新建独立 provider,而是作为独立服务模块并入现有 provider,以复用发布、测试、文档与鉴权路径;同时为支撑代码生成和校验,ClickStack API 改用命名类型、统一整数字段并输出结构化错误。鉴权区分 Cloud(组织 ID、Cloud API Key、服务 ID)与自托管(endpoint、个人 API Key、team)。文中给出创建仪表盘、plan 阶段调用校验 API、terraform import 及批量导入既有资源的示例,并说明风险边界:功能仍为 beta,UI 侧编辑不会被识别为漂移,可能被后续 apply 覆盖。

推荐收录,因为它不仅介绍功能,还交代了 provider 合并而非重发、API 契约调整(命名类型、结构化错误)和 plan 阶段校验等具体工程决策,并附可执行的 Terraform 配置、import 与批量导入流程。适合用 IaC 管理可观测性配置的平台/SRE 读者借鉴,可迁移价值是把仪表盘与告警当作代码治理;主要风险是内容偏厂商发布、功能处于 beta,读者需结合官方文档确认行为变化。

工程实践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 个性化配置的读者。文章价值不在长篇原理,而在于把一个看似没有官方入口的问题,转化为可落地的系统级配置方案。

技术文章Andy Pavlo Database Blog

Ten Database Crack Commandments

文章借用 Notorious B.I.G. 的《Ten Crack Commandments》,提出十条数据库运维与管理戒律。内容涵盖:不向厂商暴露预算、最小权限、监控数据不存回同一 DBMS、应用与 DBMS 分离、避免无休止调参、限制单实例多租户、及时执行维护任务、不要为未到来流量过度配置等。作者结合 Postgres/MySQL 的行级安全、MVCC、自动 vacuum,以及 AWS RDS 的预留实例和维护窗口等具体机制说明取舍。文章带有 OtterTune 产品推广色彩,部分云产品价格与功能具有 2022 年时效性,但多数原则对数据库性能、可靠性和成本治理仍有长期参考价值。

推荐收录。文章虽以歌曲类比并含 OtterTune 推广,但十条规则均给出可验证的数据库运维依据,如行级安全、MVCC、自动 vacuum、多租户资源竞争和云实例过度配置的代价。适合 DBA、后端/SRE 与使用云数据库的工程团队作为检查清单,其中最小权限、监控分离、预留实例和维护窗口等经验可迁移到生产系统;需注意云产品细节和厂商立场带来的时效与偏向。