基础设施依赖管理的模式与实践
1 基础设施配置与依赖管理基础
在管理基础设施时,有多种方式来处理工具状态和获取资源信息。配置管理器可用于创建工具状态的抽象层,例如网络自动化脚本可从键值存储中读取 IP 地址值,但需维护配置管理器并确保基础设施代码能够访问它。另一种选择是使用基础设施提供商的 API,其具有不常变更、提供详细信息以及能处理状态文件可能未包含的带外变更等优点,可通过客户端库来访问 API 信息。
方式 | 优点 | 缺点 |
---|---|---|
配置管理器 | 可创建工具状态抽象层 | 需要维护,要确保代码可访问 |
基础设施提供商 API | 不常变更,信息详细,能处理带外变更 | 代码需网络访问,运行时才知属性值,API 故障时可能无法解析属性 |
许多供应工具具备调用基础设施 API 的能力,如 AWS CloudFormation 中的特定参数类型和 Fn::ImportValue 可从 AWS API 或其他堆栈检索值,Azure Bicep 提供 existing 关键字导入当前文件外的资源属性,HashiCorp Terraform 提供数据源从 API 读取基础设施资源的元数据,模块还可引用 Ansible 事实来收集资源或环境的元数据。
使用基础设施 API