第6章 规范性能与测试


第 6 章 · 规范、性能与测试

章节摘要:能跑不等于能合并。本章把 DAG 写成可评审的代码:命名、无副作用解析、密钥与幂等;把性能当成解析、数据库锁、XCom、冷启动四段治理;把测试分成结构断言、任务函数单测、导入与发布闸门。读完应能给团队一份合并检查单,而不是“在我机器上绿了”。

你能学到什么

阅读完本章,你应当能够:

  1. 列出合并前必须挡下的解析副作用、硬编码密码、catchup 误开
  2. 用解析耗时和 XCom 体积解释“调度变慢”而不是先加机器
  3. 写一条 DAG 结构测试,断言任务依赖与默认参数
  4. 把 CI 设计成:解析 → 单测 → 镜像一致性 → 才能同步到调度器

核心概念速览

金句:测试定义什么叫对,发布管道保证它一直对。缺一截,绿的只是偶然。

子章节导航

6.1 代码开发规范

命名、结构、幂等、文档字段、禁止事项。

6.2 性能优化

解析、锁、XCom、执行器冷启动、池。

6.3 测试与 CI/CD

airflow 测试命令与 DAG 契约、分层验证、发布。

子章节之间的逻辑关系

先约定怎么写,再约定怎么写才跑得动,最后约定没测试不许上。

6.1 怎么写 ──► 6.2 怎么写才不堵 ──► 6.3 没测试不上 ​

本章动手节奏

6.1 把审查清单打印成合并模板:顶层副作用、catchup、密钥、幂等、owner。新 DAG 不走模板就打回,比上课有效。6.2 接到“Airflow 变慢”时按解析心跳、queued、running、Local 对照四问走,禁止直接加 Web 副本。6.3 结构测试必须进 CI,断言边和 catchup;导入测试必须用执行镜像,而不是开发笔记本的包集合。同步到调度器后保持暂停,冒烟再开,是契约层,不是胆小。

类比换成质检:规范是来料标准,性能是产线节拍,测试是出厂检。三道都过,才允许挂到生产这根调度轨道上。原文把 airflow test 升格为测试契约、把 DAG 可测试性写成成熟度门槛,本章把它落成你能写出来的断言,而不是成熟度模型海报。

本章常见误判

只跑 linter 就合并:依赖边写反不会被 linter 看见。只加 Worker 治慢:锁和 XCom 会更热闹。只在笔记本测 import:Worker 缺 Provider 要到运行才爆。提交即取消暂停:契约层缺失,回滚无版本。用行覆盖率代替契约断言:catchup 仍可能为真。本章把误判收成闸门顺序,顺序本身就是规范。

到第 6 章结束,教程的动手链闭合:能写、能懂谁执行、能活过故障、能拒绝越权、能挡住坏图。缺测试的 DAG 仍只是个人脚本。把结构测试三条断言写进团队习惯,比把架构图贴在墙上更能保护调度器。

和后文如何接线

本章是教程的闸门,不是附录。前面所有字段:catchup、边、XCom 体积、执行器对照、探针、RBAC、Provider,都应能变成一条断言或一次抽查。变不成的,从最低集拿掉,免得壁纸化。读完本章,应能在不增加机器的前提下说出三件立刻能做的事:给关键 DAG 加 catchup 断言、把回填和在线分池、同步后先暂停再冒烟。三件做完,Airflow 才从个人脚本变成团队合同。合同需要牙齿,牙齿就是 CI 红灯。红灯烦人,绿而假更贵。

把三条立刻能做的事写成本周工单:关键 DAG 的 catchup 断言、回填与在线分池、发布后暂停。工单不完成,本章等于没读。阅读记录不能代替红灯。红灯来自 CI。CI 来自断言。断言来自你把契约字段当成测试对象。对象选错,测的是风格。风格测试过不了生产。生产只认窗口、边、密钥、镜像一致性。四样有灯,风格可以稍后。稍后不是永远。永远稍后的规范会壁纸化。壁纸化之后,只能靠事故重启规范。事故重启比红灯贵。选红灯。

本周三件工单:catchup 断言、回填分池、发布暂停。三件不做,阅读记录作废。作废不是惩罚,是诚实。诚实是本章相对前面各章的差别:前面可以读懂,本章必须做。做才会红。红才会改模板。模板才会流行。流行才会让契约字段变成肌肉。肌肉才会在夜发布仍在。仍在才会三同一。三同一才会回滚是反向同步而不是考古。考古结束于哈希。哈希结束于脚本讨厌错误对象。讨厌写进 CI。CI 是身体。身体本周长三条断言。三条是最低。最低今晚写。写了才允许说读完教程。读完的标志不是页数。是三件工单的状态。状态是完成。完成才 done。done 在生产目录只接受制品之后。制品在绿的流水线之后。流水线在断言之后。断言在本周。本周不做,教程停在第 5 章。第 5 章的门关了,第 6 章的牙还没长。牙是红灯。红灯烦人。烦人比事故便宜。便宜的牙今晚长。长完本章。本章结束教程。教程结束于闸门。闸门结束于你愿意把讨厌交给脚本。交给脚本,人才能睡。睡是运维资源。资源被闸门保护。保护结束全书动手链。链从最小 DAG 开始。开始于失败可见。可见结束于测试挡住。挡住结束于同一份。同一份结束。

前置知识与后续延伸

  • 前置:第 2 章写法与第 3 章调度循环;至少经历过一次导入错误或 catchup 惊吓
  • 后续:把检查单贴进团队说明;本教程不提供仓库路径,只提供检查项。平台版本以你们锁定的核心与 Provider 为准,不编造升级号
  • 学完自检:能写出三条断言(catchup、依赖边、retries 上限),能说出加 Worker 之前要先砍什么
作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U