The documentation you are viewing is for Dapr v1.7 which is an older version of Dapr. For up-to-date documentation, see the latest version.

认证生命周期

从提交到生产准备的组件认证生命周期

概述

Dapr 使用模块化设计,将功能作为组件来提供。 每个组件都有接口定义。 所有的组件都是可插拔的,因此在理想的情况下,你可以用一个具有相同接口的组件换掉另一个。 用于生产的每个组件, 需要保持一套技术要求,以确保组件的功能兼容性和强度。

一般来说,一个组件需要是:

  • 符合定义的Dapr接口
  • 功能正确和强健
  • 完善的文档和维护

为了确保一个组件符合Dapr设定的标准,在Dapr维护者管理的环境中,有一组针对组件的测试。 一旦测试持续通过,就可以确定一个组件的成熟度。

认证级别

级别如下:

Alpha

  • 该组件实现了所需的接口,并按照规范中的描述工作。
  • 该组件有文档
  • 该组件可能有问题,或者在集成时可能会暴露出问题。
  • 该组件可能无法通过所有的一致性测试
  • 该组件可能没有符合性测试
  • 建议仅用于非业务关键型用途,因为在后续版本中可能会出现不兼容的变化

所有组件都在 Alpha 阶段开始。

Beta

  • 该组件必须通过为满足组件规范而定义的所有组件一致性测试
  • 组件的一致性测试已经在Dapr维护者管理的环境中运行
  • 该组件包含了由Dapr维护者审查和批准的一致性测试结果的记录,并具有特定组件-contrib版本
  • 建议仅用于非业务关键型用途,因为在后续版本中可能会出现不兼容的变化

一般可用性 (GA)

  • 至少有两个不同的用户在生产中使用该组件
  • 一个GA组件在Dapr社区或Dapr维护者中有一个维护者
  • 该组件在多个版本的组件-contrib repo中都有良好的文档、测试和维护

一致性测试

components-contrib资源库中的每个组件都需要遵守由Dapr定义的一组接口。 一致性测试是对这些组件定义及其相关的支持服务运行的测试,这样组件就被测试为符合Dapr接口规范和行为。

符合性测试是为以下构建块定义的:

  • 状态存储
  • 密钥存储
  • 绑定
  • 发布/订阅

要了解更多关于它们的信息,请看readme 这里

测试要求

  • 测试应该根据组件的规范来验证组件的功能行为和稳健性
  • 重现测试所需的所有细节都作为组件一致性测试文件的一部分加入

组件认证过程

为了使一个部件得到认证,测试在Dapr团队维护的环境中运行。

新的组件认证。Alpha->Beta或Beta->GA

对于一个需要从Alpha到Beta或Beta到GA的认证变更的新组件,组件认证申请遵循以下步骤:

  • 创建了一个issue,要求以当前和新的认证级别对组件进行认证
  • 一个组件的用户提交了一个整合组件的PR,以便与定义的一致性测试套件一起运行
  • 用户在创建的问题中详细说明了环境设置,以便Dapr维护者能够在受管理的环境中设置服务
  • 在环境设置完成后,Dapr维护者会审查PR,如果批准,就会合并该PR
  • Dapr维护者在Dapr团队维护的环境中运行测试,审查功能是否正确
  • Dapr维护者按照Dapr Runtime版本分类更新组件状态文件。 这是在Dapr运行时的下一个版本中作为发布过程的一部分进行的

现有的GA认证组件

对于现有的GA认证的组件,一致性测试应该针对组件代码或支持服务版本或客户端版本的任何变化来运行。

在组件版本更新的情况下,该组件再次从Alpha阶段开始,然后按照新的组件认证来进行。