cloudplz

本页是译文,以英文原文为准。 阅读原文

项目

Terraform 模块库

一个精选维护的 Terraform 模块库,后来成了搭基础设施的默认路径 —— 8,000+ 次模块引用,覆盖 70 个仓库。

自助式基础设施要成立,前提是自助这条路最好走。这个模块库做的事,是让 AWS 上「合规、 经过生产加固」的开通方式,同时也是最好走的那条路。

问题

七十个应用仓库,每个都能自己开通基础设施。没有共享库,每个团队就得重造 VPC 接线、 数据库参数调优和 IAM 边界。每重造一次,都是未来一次事故,外加一条审计发现。

做法

  • 精选模块,默认值从严。 加密、保留期、监控默认就开着;要覆盖某个安全默认值, 必须给出显式、可评审的理由。
  • 像软件一样版本化。 semver 发布,调用方锁版本,每个 minor 版本都附升级指南 — — 模块是 API,不是代码片段。
  • 文档决定模块用不用得起来。 每个模块都配完整示例;示例跑不起来,模块就不发版。

结果

8,000+ 次模块引用,覆盖 70 个仓库。新服务从第一次提交起,就继承生产级基础设施配置; 平台评审也从逐行读 HCL,变成看意图。