资源编排ROS之更改集

本文涉及的产品
资源编排,不限时长
简介: 背景 资源编排服务(Resource Orchestration Service, 简称ROS)是阿里云提供的一项简化云计算资源管理的服务。您可以遵循ROS定义的模板规范编写资源栈模板,在模板中定义所需的云计算资源(例如ECS实例、RDS数据库实例)、资源间的依赖关系等。ROS的编排引擎将根据模板自动完成所有资源的创建和配置,实现自动化部署及运维。 当您需要更新资源栈时,在实施之前了解您的更改

背景

资源编排服务(Resource Orchestration Service, 简称ROS)是阿里云提供的一项简化云计算资源管理的服务。您可以遵循ROS定义的模板规范编写资源栈模板,在模板中定义所需的云计算资源(例如ECS实例、RDS数据库实例)、资源间的依赖关系等。ROS的编排引擎将根据模板自动完成所有资源的创建和配置,实现自动化部署及运维。

当您需要更新资源栈时,在实施之前了解您的更改会如何影响正在运行的资源可以帮助您充满自信地更新资源栈。使用更改集,您可以预览提议对资源栈进行的更改可能会对正在运行的资源造成什么影响,例如,您的更改是否会删除或替换任何关键资源,只有在您决定执行更改集时,ROS 才会对您的资源栈进行更改,这让您可以决定是否继续执行提议的更改,还是通过创建另一个更改集来探索其他更改。您可以使用 ROS 控制台、ALIYUN CLI 或 ROS API 来创建和管理更改集。

关于更改集的更多功能介绍,可以参考这里

功能介绍

更新资源栈

使用更改集更新资源栈,与直接更新资源栈的最大区别是多了一个审核变更的过程。

如下图所示,用户有一个资源栈,里面有三个资源:三角、圆、方块。用户更新资源栈时,想知道资源栈到底会发生哪些变更,于是创建了一个更改集。通过查看更改集的内容,发现三角和圆发生了变化,颜色由白变橘,方块没有发生变化。如果用户觉得符合预期,就可以执行更改集,资源栈就会开始更新。用户如果觉得不符合预期,可以调整模板或参数后,重新创建更改集,直至符合预期。

不使用更改集的更新流程中,用户在执行更新之前,并不知道资源栈会发生何种变化。这可能会导致一些误操作,如意外更新或删除了某些资源。一种避免误操作的方法是使用资源栈策略,防止意外更新,这是一种防御措施。主动的办法是使用更改集,预览变更内容,一切尽在掌控。当然两者也可以结合在一起使用。

创建资源栈

更改集不仅可以用来更新资源栈,也可以用来创建资源栈。用来创建资源栈时,可以预览会创建出哪些资源。目前只有API和CLI支持该功能,控制台不支持该功能。更推荐的做法是使用资源栈预览功能,对应的API接口是PreviewStack,控制台、API和CLI均支持。

示例

创建更改集

我们使用如下模板在ROS控制台创建一个资源栈。这个资源栈包含三个资源:Handle1、Handle2、Handle3。

ROSTemplateFormatVersion: '2015-09-01'
Resources:
  Handle1:
    Type: 'ALIYUN::ROS::WaitConditionHandle'
    Properties:
      Count: 0
  Handle2:
    Type: 'ALIYUN::ROS::WaitConditionHandle'
    Properties:
      Count: 1
  Handle3:
    Type: 'ALIYUN::ROS::WaitConditionHandle'
    Properties:
      Count: 2

为这个资源栈创建更改集,目的把Handle1的Count修改为100,删除Handle3,增加一个新资源Handle4。

在选择模板,使用如下模板。

ROSTemplateFormatVersion: '2015-09-01'
Resources:
  Handle1:
    Type: 'ALIYUN::ROS::WaitConditionHandle'
    Properties:
      Count: 100
  Handle2:
    Type: 'ALIYUN::ROS::WaitConditionHandle'
    Properties:
      Count: 1
  Handle4:
    Type: 'ALIYUN::ROS::WaitConditionHandle'
    Properties:
      Count: 3

按照导航指引,完成剩下的配置,创建更改集。

审核变更

选择更改集,查看详情。

查看变更摘要。

查看变更详情。

变更详情

下在是JSON更改的具体内容。Changes中的每一项对应于一个资源的变更。

在ResourceChange结构中,Action表示变更类型:

  • Add:创建。
  • Remove:删除。
  • Modfiy:修改。

可以看到Handle3资源会被删除,Handle4资源会被创建,而Handle1和Handle2资源发生了修改。

Handle1资源发生修改是因为我们修改了Count属性,在更改集中ResourceChange.Details部分也有显示。

Handle2资源并没有发生修改,为什么会出现在更改集中。ResourceChange.Details.ChangeSource为System,是因为ALIYUN::ROS::WaitConditionHandle比较特殊,根据特定的条件或内部机制也会触发更新,一般的资源不存在这个情况。

关于变更详情的细节可以参见更改集数据结构

{
  "Changes": [
    {
      "Type": "Resource",
      "ResourceChange": {
        "Action": "Modify",
        "LogicalResourceId": "Handle2",
        "Details": [
          {
            "Evaluation": "Dynamic",
            "Target": {
              "RequiresRecreation": "Never",
              "Attribute": "Properties"
            },
            "ChangeSource": "System"
          }
        ],
        "Scope": [
          "Properties"
        ],
        "PhysicalResourceId": "Handle2",
        "ResourceType": "ALIYUN::ROS::WaitConditionHandle",
        "Replacement": "False"
      }
    },
    {
      "Type": "Resource",
      "ResourceChange": {
        "Action": "Modify",
        "LogicalResourceId": "Handle1",
        "Details": [
          {
            "Evaluation": "Static",
            "Target": {
              "RequiresRecreation": "Never",
              "Attribute": "Properties",
              "Name": "Count"
            },
            "ChangeSource": "DirectModification"
          }
        ],
        "Scope": [
          "Properties"
        ],
        "PhysicalResourceId": "Handle1",
        "ResourceType": "ALIYUN::ROS::WaitConditionHandle",
        "Replacement": "False"
      }
    },
    {
      "Type": "Resource",
      "ResourceChange": {
        "Action": "Add",
        "LogicalResourceId": "Handle4",
        "Details": [],
        "Scope": [],
        "ResourceType": "ALIYUN::ROS::WaitConditionHandle"
      }
    },
    {
      "Type": "Resource",
      "ResourceChange": {
        "Action": "Remove",
        "LogicalResourceId": "Handle3",
        "Details": [],
        "Scope": [],
        "PhysicalResourceId": "Handle3",
        "ResourceType": "ALIYUN::ROS::WaitConditionHandle"
      }
    }
  ]
}

执行更改集

确认变更详情,如果不符合要求,可以创建新的更改集直到符合要求。如果已经符合要求,可以直接执行更改集。

执行完成后,观察资源列表,符合预期。

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
目录
相关文章
|
4月前
|
弹性计算 关系型数据库 MySQL
使用资源编排 ROS 轻松部署单点网站——以 WordPress 为例
WordPress 是流行的开源CMS,阿里云的ROS(Resource Orchestration Service)提供模板化部署服务,简化云上环境如VPC、ECS、MySQL的创建。用户可通过ROS控制台选择模板一键部署WordPress,配置包括实例区、类型、系统盘及密码等参数。ROS模板定义了资源、参数和输出,自动处理依赖关系,实现云资源和应用的自动化部署。通过ROS,用户可以高效管理和更新整个资源栈,实现快速、可靠的云服务部署。
225 1
使用资源编排 ROS 轻松部署单点网站——以 WordPress 为例
|
5月前
|
弹性计算 JSON API
一键云部署:资源编排 ROS 轻松部署文本转语音系统 ChatTTS
ChatTTS是一款针对对话场景的文本转语音模型,支持英中两种语言,训练数据超过10万小时。ChatTTS可通过WebUI和API访问。阿里云的资源编排服务(ROS)提供了一键部署ChatTTS到云端的方案,用户只需在ROS控制台配置模板参数,如区域和实例类型,即可完成部署。部署后,从资源栈输出获取ChatTTS服务地址。ROS利用IaC理念自动化部署云资源和应用,提高了部署效率和稳定性。
779 5
一键云部署:资源编排 ROS 轻松部署文本转语音系统 ChatTTS
|
5月前
|
弹性计算 人工智能 JSON
一键云部署:资源编排 ROS 轻松部署 LLM 流程编排服务 Flowise
Flowise 是一个开源低代码平台,用于构建定制化的 LLM 流程和 AI 代理。阿里云的 Resource Orchestration Service (ROS) 提供了一键部署 Flowise 到 ECS 实例的方案。用户只需在 ROS 控制台配置模板参数,如可用区和实例类型,即可完成部署。部署后,从资源栈输出获取 Flowise 服务地址以开始使用。ROS 模板定义了 VPC、ECS 实例等资源,并通过 ROS 自动化部署,简化了云上资源和应用的管理。
229 1
一键云部署:资源编排 ROS 轻松部署 LLM 流程编排服务 Flowise
|
5月前
|
JSON 弹性计算 运维
深入浅出资源编排ROS:构建云环境下的自动化运维利器引言
**资源编排ROS是阿里云提供的自动化管理工具,通过声明式模板定义云资源生命周期,简化复杂IT架构的运维。它解析JSON或YAML模板,自动创建、更新资源,确保状态与模板一致。ROS用于环境一致性、故障恢复、成本优化,是现代云管理的关键,助力企业提升效率和成本效益。**
170 3
|
6月前
|
弹性计算 人工智能 JSON
一键云部署:资源编排 ROS 轻松部署 LLM 应用开发平台 Dify
Dify是一款开源的LLM应用开发平台,融合BaaS和LLMOps理念,助力开发者快速构建生产级AI应用。阿里云的ROS提供IaC自动化部署服务,通过JSON/YAML/Terraform模板轻松部署Dify环境。以下是简化的部署步骤: 1. 登录ROS控制台的Dify部署页面。 2. 配置ECS实例参数。 3. 创建资源栈,完成部署后从输出获取Dify服务地址。 ROS模板定义了VPC、VSwitch、ECS实例等资源,通过ROS控制台创建资源栈实现自动化部署。这种方式高效、稳定,体现了IaC的最佳实践。
742 1
|
6月前
|
弹性计算 运维 数据处理
资源编排ROS之模块:实现模板代码复用(进阶篇)
资源编排ROS模块能够实现模板代码复用。支持输入输出、公共模块、版本管理、共享模块等功能。在使用场景上,除了对基础设施模块化外,还可作为配置、数据处理工具或资源包装器。
518 6
|
6月前
|
弹性计算 运维 安全
资源编排ROS之模块:实现模板代码复用(基础篇)
ROS是阿里云的资源管理服务,通过模板定义和编排引擎自动化部署云资源。模块是可预测、重用、追溯和管理的资源集合,分为公共和自定义类型。它们简化了复杂配置,如安全组,可在多个模板和账号中复用。创建模块后,可在资源栈中引用,实现标准化部署。
135 1
|
6月前
|
弹性计算 关系型数据库 API
ECS安装问题之安装资源编排服务(ROS)如何解决
ECS(Elastic Compute Service,弹性计算服务)是云计算服务提供商提供的一种基础云服务,允许用户在云端获取和配置虚拟服务器。以下是ECS服务使用中的一些常见问题及其解答的合集:
|
弹性计算 运维 持续交付
基于资源编排服务(ROS)实现存量资源的IaC化
如果您需要一种简单而有效的方法来管理大量云资源并实现自动化部署,推荐使用阿里云的资源编排服务ROS(Resource Orchestration Service)。ROS能够将存量资源转化为IaC(基础设施即代码),通过资源场景创建、模版生成和资源栈导入等功能,实现资源的统一管理和自动化部署。这不仅提高了资源管理的效率,还降低了成本。如果您想了解如何更轻松地管理云资源并加速部署流程,ROS是一个值得深入了解的工具。
142 1
|
弹性计算 JSON 运维
使用ROS CDK进行资源编排
ROS CDK(Cloud Development Toolkit)是ROS推出的代码开发工具,帮助您使用少量代码实现复杂模板的资源编排效果。

推荐镜像

更多