第四部分 — 建造工厂:架构与案例
参考架构:分层信任流水线
第二部分以一个空格收束:能够自行生成问责的可组合系统。本章用一套 参考架构把它填满——从正在运转的系统中抽象而来(接下来两章的案 例),并刻意以层与规则而非产品的形式陈述,使它能活过任何厂商的 路线图。
七层
1. 市场与目录。 公共界面:一份以合成数据渲染的标准输出目录, 每个条目都带有自己的规格、判定结论和一条命令的可复现方式;文档 同时充当演示与回归仪器。陌生人无需与任何人交谈即可核验产品。
2. 体验。 交互层:审评门户、TLF 查看器、探索应用。它的规则 是:只通过平台的契约消费,从一个共享模块继承身份认证,并保持无 状态,使数据治理的叙事保持简单。这一层是用户居住的地方;它绝不 是真相居住的地方。
3. 访问与身份。 一个可插拔的身份边界——SSO 令牌核验只写一 次,被每个应用引入;数据服务端的授权;分层的权限(里程碑、数据 集、应用)。案例文献中的规则:身份是一个接口,而非一个假设,因 此同一产品可以栖身于合作伙伴门户、现成的 OIDC 提供方或演示模式。
4. 编排。 一个网关:接受经契约校验的作业,原子化入队,并提 供状态与工件。配额与身份认证层级属于这里——在任何东西执行之前 强制"谁可以请求什么"的那道边界。
5. 执行。 沙箱化工作节点:加固容器、只读文件系统、丢弃的权 限能力、默认不连模型 API 的网络、内存与 CPU 限制、钉死的引擎版 本。工作节点内部,任何语言皆可;工作节点之间,只有契约与工件可 以通过。
6. 证据。 心脏,也是在位者技术栈因其构造而天然缺失的那一层: 以哈希寻址的工件连同谱系边;每个获批交付物的锁定参照;带有单元 格级三态比较的独立重算;能停线的渲染门;只增不改的审计链;让每 次执行都可重放的清单。证据作为工作的副产品生成,绝不在事后补 写。
7. 数据。 研究数据留在原地——在客户的环境中,在他们的共享 存储上,在他们的治理之下——由流水线走向数据。带有记录在案的来 源的合成数据,滋养每一个公共界面。
绑定各层的规则
只有层,只是一张图;四条规则才使之成为系统:
- 每个边界上都有契约。 有版本、只增不改、自我声明的载荷;消 费方拒绝未知的主版本。(第三部分的原则二。)
- 一个工件经济体。 每一层发出的东西——数据集、图、判定结论、 日志——都按内容寻址并以谱系相连。旁门(邮件、临时导出)在设 计上被关闭。
- 门有权威。 一次失败的比较就会中止渲染。升级处置是一项签名 在案的人的行为。
- 内核可移植。 第 5–6 层加上引擎构成一个内核,在公共演示、客 户 VPC 和内部参考部署中以完全相同的方式运行(原则九)。
为何这胜过两种替代方案
相对经验证的单体:每一层都可在稳定的契约背后替换,因此没有任何 一次与单一厂商的谈判能拥有你的路线图,而验证证据是你的——由你 的系统针对你的工作生成——而不是每年租用一次、针对某个工具的证 据。相对松散的生态:证据层存在,而这正是能力与问责之间的全部差 别。代价是诚实的:你拥有集成,你拥有运维,并且你必须忍住不去重 建通用部件(原则八)——这套架构只有在各层保持纤薄、引擎保持被 吸收的前提下才成立。
接下来两章展示这套架构的三分之二正在生产中运行:作为可组合审评 平台的"体验与运维"脊梁,以及作为验证网关的证据层。完整的组装 ——横跨全部七层的一个产品——是本书结尾章节所描述的路线图。
检验。 对任何"平台"推销,问一句:厂商真正占据的是七层中 的哪几层——如果他们没有占据证据层,又是谁来补?省略第六层的 架构图,是穿着架构外衣的托管安排。