应用作用域

应用作用域是通过提供不同形式的应用边界和共同的组行为,将组件组合成逻辑应用。

https://github.com/oam-dev/spec/blob/master/5.application_scopes.md

应用作用域是通过提供不同形式的应用边界和共同的组行为,将组件组合成逻辑应用。

应用程序作用域具有以下通用特征:

  • 当定义一组组件实例所共有的行为或元数据时,应该使用应用作用域。
  • 组件可以同时被部署到不同类型的多个应用作用域中。
  • 应用作用域类型可以决定组件是否可以被同时部署到同一应用作用域类型的多个实例中。
  • 应用作用域可被用作组件组与基础设施(如网络)或外部能力(如身份提供者)所提供的能力之间的连接机制。

下图说明了组件如何被分组到重叠的应用作用域中以创建不同的应用边界:

scopes-diagram-1

这个例子显示了两种作用域类型,有四个组件分布在它们之间。

组件A、B和C被部署到同一个健康作用域。健康作用域将收集在组件升级操作中被评估的关于其组成组件的聚合健康信息。健康作用域提供的查询信息可以被需要根据一组组件的聚合健康状况进行评估和/或执行行动的特征或组件进一步使用。这是应用程序的基本分组构造,它提供了组件之间依赖关系的松散定义。

组件A在自己的网络作用域内与组件B、C和D隔离。这允许基础设施运营商为不同的组件组提供不同的SDN设置,如后端组件上更多的限制性入站/出站规则。

定义应用作用域

应用作用域由 ScopeDefinition 实体表示。

顶层属性

这些属性提供关于应用作用域的顶层信息。

Attribute Type Required Default Value Description
apiVersion string Y A string that identifies the version of the schema the object should have. The core types uses core.oam.dev/v1beta1 in this version of model.
kind string Y Must end with ScopeDefinition.
metadata Metadata Y 实体元数据
spec Spec Y 作用域属性的规范。

Spec

spec 定义了作用月的构成部分。

Attribute Type Required Default Value Description
allowComponentOverlap bool N true 确定是否允许一个组件同时出现在这个作用域类型的多个实例中。如果是false,那么如果试图把一个组件同时放到这个作用域类型的一个以上的实例中,运行时实现必须产生一个错误并停止部署。
definitionRef DefinitionRef Y 平台中作用域能力的标识符。

DefinitionRef

Attribute Type Required Default Value Description
name string N 作用域能力的名称标识符。与apiVersionkind相互排斥。
apiVersion string N 作用域能力的API版本。
kind string N 作用域能力的类型。

示例

apiVersion: core.oam.dev/v1beta1
kind: ScopeDefinition
metadata:
  name: healthscopes.core.oam.dev
spec:
  allowComponentOverlap: true
  definitionRef:
    name: healthscopes.core.oam.dev

本文档中定义了以下示例作用域能力。

健康作用域

健康作用域将组件分组到一个综合健康组。该组中的组成部件的总体健康状况为升级和回滚机制提供信息。

网络作用域

网络作用域将组件归入网络子网边界,并定义了一般运行时网络模型。网络定义、规则和政策由基础设施的网络或SDN描述。