基础设施依赖管理模式解析
1. 依赖注入
使用基础设施 API 存在一些缺点。基础设施即代码(IaC)需要网络访问,在运行 IaC 之前,无法得知属性的值,因为代码必须向 API 发出请求。如果基础设施 API 出现故障,IaC 可能无法解析低级资源的属性。
通过依赖倒置添加抽象层,可以保护高级资源免受低级资源属性变化的影响。虽然无法防止所有故障或中断,但可以最大程度减少因低级资源更新而可能导致的故障影响范围。可以将其视为一种契约:如果高级和低级资源就所需的属性达成一致,它们就可以相互独立地发展。
依赖注入结合了控制反转和依赖倒置的原则。高级模块或资源通过抽象层从低级模块或资源调用属性。以下是依赖注入的应用步骤:
1. 调用低级模块。
2. 低级模块输出所有资源元数据。
3. 获取元数据并解析所需属性。
4. 使用解析后的属性创建高级资源,如服务器。
graph LR
A[调用低级模块] --> B[低级模块输出资源元数据]
B --> C[获取并解析元数据]
C --> D[创建高级资源]
以下是使用 Apache Libcloud 实现服务器和网络示例的依赖注入代码:
import credentials
import ipaddress
import json
from libcloud.compute.types import Provider
from libcloud.compute.p
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



