Dapr的未来改进与发展方向
1. Dapr组件投影
Dapr组件以YAML文件形式描述,在Kubernetes上运行时表现为Kubernetes自定义资源,这些组件记录了应用程序的外部依赖,如托管数据库或负载均衡器。但Dapr没有内置方法将这些外部依赖作为应用程序所依赖的完整技术栈进行管理。
云平台已经提供了资源管理系统,如Azure Resource Manager (ARM)和AWS CloudFormation,还有跨平台解决方案,如HashiCorp的Terraform。这些系统提供了描述语言,可用于描述云资源的期望状态,并尝试将所有所需资源调整到该状态。当资源偏离期望状态时,系统会采取纠正措施使其恢复。
若能将云资源自动投影为Kubernetes自定义资源,就无需手动定义Dapr组件。具体来说,有以下好处:
- 无需手动组件配置 :减轻基于Dapr系统的管理负担。
- 可扩展性 :投影到位后,任何云资源都能作为组件投影到Dapr中。
- 组件配置自动更新 :投影系统可连接到底层资源管理系统,当原始云资源发生变化(如密钥轮换)时,自动更新组件定义,减少管理负担和因基础设施配置不匹配导致的错误风险。
实现这样的投影系统并不困难,因为云资源有明确的清单模式和API接口,理论上可以自动生成Dapr组件代码,无需编写自定义代码。Dapr还可以为某些资源类型定义通用API,这部分也可以作为某种清单自动生成。