应用平台 APPSTAGE-IaC代码结构介绍:单文件描述结构

时间:2024-05-14 08:59:01

单文件描述结构

单文件描述结构样例如下:

├── package.json                    # 包描述文件(必须)
└── specs                           # 规格总目录(必须)
      ├── cn_dev_default            # cn_dev_default规格目录,可用于描述一个开发用途的服务环境所使用的基础设施
      └── cn_product_default        # cn_product_default规格目录,可用于描述一个生产用途的服务环境所使用的基础设施
            └── meta.yaml           # IaC主体描述文件
IaC主体描述文件meta.yaml
type: WiseCloud::Environment                # 描述环境类型,当前仅支持 WiseCloud::Environment 
components:                                 # 定义服务环境所包含的组件列表,每个组件包含一个资源列表
- name: environment                         # 组件名称
  resources:                                # 资源列表
  - name: fgc_cloudmap                      # 资源名称,同类型的资源的名称在整个服务环境中唯一
    type: WiseCloud::Endpoint::CloudMap     # 资源类型
    properties:                             # 资源属性:具体包含哪些属性,由资源类型决定
      ...
- name: FGCActionInvokerService
  resources:
    ... 
- name: FGCAbilityCenterService
  resources:
    ...
applyPipeline: default                      # 默认选用名为default的组件编排流水线
pipelines:                                  # 定义可用的组件编排流水线
- name: default                             # 流水线的名称,作为流水线被引用的唯一标识
  action: Serial                            # 串行编排
  tasks:                                    # 串行编排的任务列表
  - name: apply-environment                 # 任务名称 
    action: Apply                           # 应用变更
    component:                              # 变更组件的相关约束
      name: environment                     # 变更的组件名称
  - name: parallel-others 
    action: Parallel                        # 并行编排
    tasks:                                  # 并行编排的任务列表
    - name: apply-FGCActionInvokerService   # 任务名称
      action: Apply                         # 应用变更
      component:                            # 变更组件的相关约束
        name: FGCActionInvokerService       # 变更的组件名称
    - name: apply-FGCAbilityCenterService   # 任务名称
      action: Apply                         # 应用变更
      component:                            # 变更组件的相关约束
        name: FGCAbilityCenterService       # 变更的组件名称

以上示例清晰地展示了IaC3.0的资源组织结构:

  • Nuwa,CloudMap等资源,依照业务需要,可划分到不同的组件中。
  • 一个组件可对应于一个微服务,或是服务内共享的中间件集合。
  • 全体组件的集合,则汇总描述了整个服务环境的期望部署状态
  • 组件编排流水线,则是以组件为最小粒度来描述服务环境是如何做部署状态的迁移的。其可以处理组件间的升级依赖关系,以及通过多阶段方式提供灰度升级能力。
support.huaweicloud.com/devg-appstage/appstage_06_0063.html