核心要点
能定义 IaC 用代码声明基础设施
理解版本化、审查、可重复部署
知道 Terraform/Pulumi/CloudFormation 在 ML 场景
能举例 GPU 集群、K8s、网络配置
简要回答
IaC 用 Terraform 等声明式配置 ML 基础设施(K8s 集群、GPU 节点池、S3、IAM),可版本审查、一键复现与销毁,消除手工点控制台漂移。
标准回答
一、先给出结论和背景
- 基础设施即代码(IaC):用代码(Terraform、Pulumi、CDK)定义云资源,Git 版本管理,CI 自动 apply。
- 可复现环境:- 训练集群、推理 EKS/GKE、S3 bucket、IAM 角色一键创建
- 新成员/新区域环境与 prod 一致
- 变更治理:- PR review 基础设施变更(如开放 0.0.0.0/0)
- 审计谁何时改了 GPU 配额
二、拆开关键步骤和判断点
- 成本与生命周期:-
terraform destroy回收临时训练集群防遗忘计费 - 环境分 dev/staging/prod workspace 隔离
- ML 特定资源:- GPU 实例类型、Spot 策略、EFS 共享存储
- SageMaker/Vertex 端点配置
- 网络:VPC peering 连数据仓
三、补上落地边界和取舍
- 与 CI/CD 集成:- 模型部署 pipeline 依赖的 K8s namespace、Ingress、Secret 同步 provision
- 实践:模块化管理(networking/compute/ml-serving);state 远程存储(S3+lock);敏感值用 Vault。详见 MLOps 入门、AI 工程。
面试里要把 基础设施即代码IaC如何支撑机器学习运维 放到训练到上线的链路里说:离线指标只是第一步,还要补特征一致性、版本管理、灰度实验、监控漂移和回滚方案。这样能证明你理解的是生产系统,而不是只会背流程图。
回答思路
【定义】用一句话说清「基础设施即代码(IaC)如何支撑机器学习运维」
【原理】讲清关键机制或步骤(2~3 点)
【例子】举一个真实项目、论文或产品中的例子
【对比】与易混淆概念或替代方案比较(如有)
【收尾】总结适用场景 + 一个局限或风险
常见误区
⚠️ 常见踩坑
误区一:容易答偏的地方:把 Dockerfile 当成全部 IaC;手工改生产资源无记录;state 文件不远程锁导致冲突。
追问
追问 1:IaC 和 Helm chart 分工?
追问 2:如何处理 IaC 中的密钥?
不进 Git plaintext;用 AWS Secrets Manager/HashiCorp Vault;Terraform data source 运行时注入;K8s External Secrets Operator 同步。
追问 3:Drift 检测是什么?
有人手工改控制台导致与代码不一致。定期 terraform plan 检测 drift;告警并选择 import 或 revert 手工变更。
🔗 相似问题
同一考点的不同问法,换着练更稳
延伸学习
按主题分类的相关资源,便于系统复习
