应用平台 APPSTAGE-变更流程编排开发
变更流程编排开发
在一次完整的业务变更中,往往会涵盖多种类型、多个模块的变更,如集群扩容、申请ELB、创建数据库、软件升级等等。在IaC的语境下,每一个变更本质上都是IaC资源的变更。在一次完整的业务变更中,部分资源的变更依赖于其他资源的变更,如,为一个微服务创建NUWA实例之前往往需要先创建该微服务的数据库。
变更流程编排就是使用IaC代码对各资源在具体变更过程中的依赖关系、先后顺序进行代码化描述。变更流程编排本质上就是描述各模块、各资源之间的依赖关系。在变更过程中,IaC将根据依赖关系生成的有向无环图顺序执行各资源的变更过程。
变更流程编排包含两种类型:
- 组件内部各资源的编排
组件内部编排在spec包各组件的resources.yaml文件中描述,通过为资源指定dependsOn属性表达依赖关系。
- name: chaosmonkey-elb type: WiseCloud::LoadBalancer::ELB properties: version: V3 listeners: - name: listener protocol: HTTP protocolPort: 80 poolName: pool_a pools: - name: pool_a protocol: HTTP - name: chaosmonkey-slb type: WiseCloud::LoadBalancer::SLB dependsOn: - name: chaosmonkey-elb properties: elbName: chaosmonkey-elb elbPoolNames: ["pool_a"] deployVersion: 1.4.12 slbConfigs: targets: - clusterName: mgr routes: - location: / target: mgr
以上示例定义了两个资源,一个名为chaosmonkey-elb的ELB,一个名为chaosmonkey-slb的SLB;chaosmonkey-slb依赖于chaosmonkey-elb。在变更时,先变更chaosmonkey-elb,变更完成后再变更chaosmonkey-slb。
dependsOn是列表类型,使用name或alias描述相同组件内其他资源。组件内部各资源的name是资源的标记,不同类型的资源也应使用不同的name;组件内部允许同一个资源出现多次,这表示同一个资源的不同变更阶段,这一场景下该资源的所有节点必须声明alias字段并且alias取值必须在component内全局唯一,同一个资源的所有alias之间必须显式地在dependsOn字段中声明串行依赖。
- 各组件之间的编排
component间的编排在spec包中的meta.yaml文件中描述,涉及applyPipeline/pipelines两个字段。pipelines中支持定义多个流程,applyPipeline描述本次变更要使用的流程。
applyPipeline: default pipelines: - name: default action: Serial tasks: - action: Apply component: name: environment - action: Parallel tasks: - action: Apply component: name: WiseEyeChaosMonkeyMgrService - action: Apply component: name: WiseEyeChaosMonkeyPortal
以上示例定义了一个名为default的流程,该流程中编排了三个component。在变更时,先变更名为environment的component,该component变更完成后再并行变更名为WiseEyeChaosMonkeyMgrService和WiseEyeChaosMonkeyPortal的component。
- component的数据结构中,各字段含义如表3所示。
- RPA 技术_RPA技术应用_RPA适用于哪些流程的开发
- 应用托管服务流程_代码托管平台_云应用引擎CAE-华为云
- 移动开发平台_SAAS平台_基础软件_低代码开发平台
- 华为云ModelArts_ModelArts开发_AI全流程开发
- Astro轻应用_零代码平台_开发无忧加速创新
- 小程序免费开发_免费小程序开发平台_免费开发小程序_免费的小程序平台
- 零代码开发平台_托拉拽开发应用_华为云Astro-华为云
- GaussDB变更_云数据库GaussDB变更_高斯数据库变更-华为云
- Astro轻应用_低代码开发平台Astro Zero_新手入门
- 流水线部署_流水线服务CodeArts Pipeline_流水线-华为云