资源编排ROS之资源栈组StackGroup

本文涉及的产品
资源编排,不限时长
简介: ## 背景 [资源编排服务](https://help.aliyun.com/document_detail/28852.html)(Resource Orchestration Service, 简称 ROS)是阿里云提供的一项简化云计算资源管理的服务。您可以遵循 ROS 定义的模板规范编写资源栈模板,在模板中定义所需的云计算资源(例如 ECS 实例、RDS 数据库实例)、资源间的依赖关系

背景

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

随着基础设施的发展,账号对跨多个账号和地域创建、更新或删除堆栈有了越来越强烈的诉求。在资源编排服务推出资源栈组功能之前,账号只能通过手动或代码调用的方式依次在不同的账号和地域下创建资源栈。而使用资源栈组功能,账号则可以通过使用管理员账号定义和管理 ROS 模板,并将模板用作在指定地域的所选目标账号中预置堆栈的基础。从而对多个账号和地域下的堆栈进行统一的管理,简化工作流程和维护成本。

功能介绍

资源栈组

通过资源栈组,可使用一个 ROS 模板在多个阿里云账号跨地域创建资源栈。每个资源栈中包含的所有资源由资源栈组的 ROS 模板定义。在创建资源栈组时,可指定要使用的模板以及模板所需的任何参数和功能。

在定义资源栈组后,可以在指定的目标账号地域中创建、更新或删除资源栈。在这个操作过程中,还可以指定操作首选项。比如,可以指定对资源栈并行执行操作的账号的数量、执行操作的地域的顺序和容错能力 (一旦超出它,资源栈操作就会停止) 。

资源栈组和地域相关,这也就意味着您在一个地域(如 cn-hangzhou)中创建了资源栈组,只能在该地域进行查看或更改。

资源栈实例

资源栈实例是对特定地域内的目标账号中的资源栈的引用。一个资源栈实例对应一个资源栈,但也可能出现资源栈实例存在而所对应的资源栈不存在的情况。例如,由于某些原因无法创建资源栈,则资源栈实例将显示资源栈创建失败的原因。一个资源栈实例只属于一个资源栈组。

下图显示资源栈组、资源栈操作和资源栈之间的逻辑关系。当更新资源栈组时,将在所有账号和地域中更新所有关联的资源栈实例。

堆栈集操作.png

账号

和资源栈组相关的账号有两类:

  • 管理员账号 —— 用来创建资源栈组的阿里云账号。登录管理员账号后,可创建资源栈组,以及资源栈组中的资源栈实例。每个资源栈实例所对应的资源栈均是创建在目标账号的特定地域中。
  • 目标账号 —— 用来创建、更新或删除资源栈组中的一个或多个资源栈的账号。必须先在管理员账号与目标账号之间设置信任关系,然后才能使用资源栈组在目标账号中创建资源栈。管理员账号同时也可以是目标账号

资源栈组、资源栈实例、资源栈、地域和账号的关系图

关系图.png

  • 资源栈组是区分地域的,所以在杭州地域创建的资源栈组,无法在北京地域看到。
  • 资源栈组是由管理员账号(比如账号 A)创建的,可以在资源栈组中创建多个资源栈实例,创建资源栈实例时可以指定账号和地域。如上图所示,账号 A 创建的资源栈组中,在杭州地域给账号 B、C 分别创建资源栈实例 1、2,在北京地域给账号 C 创建资源栈实例 3。这就是资源栈组的跨账号跨地域特性。
  • 资源栈实例是对资源栈的引用。

    • 创建资源栈实例时会相应的创建出资源栈。
    • 删除资源栈实例时可选择删除或保留它所指向的资源栈。
    • 直接删除资源栈则不会删除资源栈实例。

资源栈组和资源栈实例操作

创建资源栈组

创建资源栈组时,指定要用于创建资源栈的 ROS 模板、资源栈的目标账号以及资源栈所需部署的目标账号和特定地域等内容,可确保将具有相同配置的相同资源栈资源一致部署到多个指定地域内的多个指定目标账号

更新资源栈组

更新资源栈组时,可更新模板、地域等内容,资源编排服务会将更改推送到资源栈组中的资源栈。若更新了资源栈组中的模板,会更新所有关联的资源栈。可以通过如下方式更新资源栈组:

  • 更新资源栈组中的模板,比如新增参数、删除一个资源等。
  • 替换资源栈中的模板。
  • 跨现有或其他地域在现有或其他目标账号中添加资源栈,即在资源栈组中新增资源栈实例。

删除资源栈组

当资源栈组中的资源栈实例均被删除后,可删除资源栈组。

添加资源栈实例

在资源栈组中,可通过指定目标账号和地域来添加资源栈实例。

删除资源栈实例

删除资源栈实例时,将从指定的地域内的指定目标账号中删除资源栈及其所有关联资源。可以通过以下方法删除资源栈实例:

  • 删除特定目标账号的资源栈实例及其对应资源栈,同时使其他目标账号中的其他资源栈保持运行。
  • 删除特定地域的资源栈实例及其资源栈,同时使其他地域中的资源栈保持运行。
  • 删除资源栈实例,但保留其所对应的资源栈,使该资源栈独立于资源栈组继续运行。

使用场景

多地域部署

管理员账号 A 可以在其使用的所有地域同时进行部署,如账号 A 可以同时部署北京,杭州,深圳等多个地域。这尤其适合 On ECS 的产品,因为 On ECS 的产品几乎都是需要部署所有地域。

多地域部署.png

多账号部署

有多个不同目标账号 A(同时也是管理员账号)、B、C(非 RAM 账号)。管理员账号 A 控制着目标账号 A、B、C 的部署。

多账号部署.png

多账号和多地域部署

跨账号跨地域,即上面两个场景的组合。关系图见“资源栈组、资源栈实例、资源栈、地域和账号的关系图”。

使用示例

假设我们要在两个账号的杭州、北京地域下创建 ECS 集群,那么通过资源栈组可以这么做:

  • 满足先决条件(在第一次使用资源栈组前需要操作)
  • 准备一个创建 ECS 集群的模板
  • 创建资源栈组

先决条件(在第一次使用资源栈组前需要操作)

资源编排服务通过角色扮演对资源栈组中的资源栈实例所对应的资源栈进行部署。在使用资源栈组前,需要赋予资源编排服务必要的权限、以及准备好对应角色。

管理员账号创建 AliyunROSStackGroupAdministrationRole,并授权给 ROS 服务

  • 登录管理员账号,并访问 RAM 角色管理,点击新建RAM角色按钮,在右侧弹出框中选择阿里云服务
    image.png
  • 点击下一步,输入角色名称 AliyunROSStackGroupAdministrationRole,选择授信服务为 资源编排服务,完成角色创建:
    image.png

管理员账号为 AliyunROSStackGroupAdministrationRole 创建允许角色扮演策略

  • 登录管理员账号,并访问 RAM 权限策略管理,点击新建权限策略按钮,在窗口中输入策略名称为AssumeRole-AliyunROSStackGroupExecutionRole,选择配置模式为脚本配置,在策略内容里输入如下策略(该策略的意思为允许AliyunROSStackGroupAdministrationRole角色身份扮演为AliyunStackGroupExecutionRole角色身份):
    image.png
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "acs:ram::*:role/AliyunStackGroupExecutionRole"
    }
  ],
  "Version": "1"
}

image.png

目标账号创建 AliyunROSStackGroupExecutionRole ,并授权给管理员账号

  • 登录目标账号,并访问 RAM 角色管理,点击新建RAM角色按钮,在右侧弹出框中选择阿里云账号
    image.png
  • 点击下一步,输入角色名称 AliyunROSStackGroupExecutionRole,选择选择云账号为 管理员账号的ID,完成角色创建:
    image.png

目标账号角色指定权限

  • 为目标账号的 AliyunROSStackGroupExecutionRole 角色指定权限,资源栈组在该目标账号下创建资源栈时会使用该权限(比如 AdministratorAccess
    image.png

准备模板

我们需要创建一个 VPC、VSwitch、安全组和 ECS 实例,则有如下模板(如果对 ROS 模板语法不熟悉,请查看官方文档):

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "InstanceType": {
      "Type": "String",
      "Default": "ecs.g6.large"
    }
  },
  "Resources": {
    "Vpc": {
      "Type": "ALIYUN::ECS::VPC",
      "Properties": {
        "CidrBlock": "192.168.0.0/16"
      }
    },
    "VSwitch": {
      "Type": "ALIYUN::ECS::VSwitch",
      "Properties": {
        "CidrBlock": "192.168.0.0/24",
        "VpcId": {
          "Ref": "Vpc"
        },
        "ZoneId": {
          "Fn::Select": [
            "0",
            {
              "Fn::GetAZs": {
                "Ref": "ALIYUN::Region"
              }
            }
          ]
        }
      }
    },
    "SecurityGroup": {
      "Type": "ALIYUN::ECS::SecurityGroup",
      "Properties": {
        "VpcId": {
          "Ref": "Vpc"
        }
      }
    },
    "InstanceGroup": {
      "Type": "ALIYUN::ECS::InstanceGroup",
      "Properties": {
        "MaxAmount": 2,
        "InstanceType": {
          "Ref": "InstanceType"
        },
        "ImageId": "centos_7",
        "VpcId": {
          "Ref": "Vpc"
        },
        "VSwitchId": {
          "Ref": "VSwitch"
        },
        "SecurityGroupId": {
          "Ref": "SecurityGroup"
        }
      }
    }
  },
  "Outputs": {
    "InstanceIds": {
      "Value": {
        "Fn::GetAtt": ["InstanceGroup", "InstanceIds"]
      }
    }
  }
}

创建资源栈组

  • 登录管理员账号,访问 ROS 资源栈组界面,点击创建资源栈组,在创建界面中输入模板:
    image.png
  • 点击下一步,输入资源栈组名称,还可以指定资源栈组描述模板参数
    image.png
  • 选择并确认管理员角色执行角色,也就是我们在先决条件中创建的供资源栈组使用的默认角色:
    image.png
  • 输入目标账号(多个以英文,分隔),选择目标地域,选填部署选项
    image.png
  • 确认无误后点击创建资源栈组
  • 资源栈组列表中找到所创建的资源栈组,点击以查看详情
    image.png
  • 可以看到在两个目标账号和两个目标地域下共计创建了 4 个资源栈实例以及资源栈,每个资源栈下都有 VPC、VSwitch、安全组和 ECS 实例:
    image.png

image.png

总结

通过 ROS 的资源栈组功能,您可以轻松快速地进行跨账号以及跨地域。资源栈组将这些资源栈集中在一起进行管理,不仅是在创建过程中能做到快速部署,在后期的维护操作上也能够做到方便快捷的管理。比如,当您更新模板后,只需更新资源栈组,即可将该资源栈组内的所有资源栈均更新到最新状态。

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
目录
相关文章
|
3月前
|
弹性计算 关系型数据库 MySQL
使用资源编排 ROS 轻松部署单点网站——以 WordPress 为例
WordPress 是流行的开源CMS,阿里云的ROS(Resource Orchestration Service)提供模板化部署服务,简化云上环境如VPC、ECS、MySQL的创建。用户可通过ROS控制台选择模板一键部署WordPress,配置包括实例区、类型、系统盘及密码等参数。ROS模板定义了资源、参数和输出,自动处理依赖关系,实现云资源和应用的自动化部署。通过ROS,用户可以高效管理和更新整个资源栈,实现快速、可靠的云服务部署。
213 1
使用资源编排 ROS 轻松部署单点网站——以 WordPress 为例
|
4月前
|
弹性计算 JSON API
一键云部署:资源编排 ROS 轻松部署文本转语音系统 ChatTTS
ChatTTS是一款针对对话场景的文本转语音模型,支持英中两种语言,训练数据超过10万小时。ChatTTS可通过WebUI和API访问。阿里云的资源编排服务(ROS)提供了一键部署ChatTTS到云端的方案,用户只需在ROS控制台配置模板参数,如区域和实例类型,即可完成部署。部署后,从资源栈输出获取ChatTTS服务地址。ROS利用IaC理念自动化部署云资源和应用,提高了部署效率和稳定性。
731 5
一键云部署:资源编排 ROS 轻松部署文本转语音系统 ChatTTS
|
4月前
|
弹性计算 人工智能 JSON
一键云部署:资源编排 ROS 轻松部署 LLM 流程编排服务 Flowise
Flowise 是一个开源低代码平台,用于构建定制化的 LLM 流程和 AI 代理。阿里云的 Resource Orchestration Service (ROS) 提供了一键部署 Flowise 到 ECS 实例的方案。用户只需在 ROS 控制台配置模板参数,如可用区和实例类型,即可完成部署。部署后,从资源栈输出获取 Flowise 服务地址以开始使用。ROS 模板定义了 VPC、ECS 实例等资源,并通过 ROS 自动化部署,简化了云上资源和应用的管理。
219 1
一键云部署:资源编排 ROS 轻松部署 LLM 流程编排服务 Flowise
|
4月前
|
JSON 弹性计算 运维
深入浅出资源编排ROS:构建云环境下的自动化运维利器引言
**资源编排ROS是阿里云提供的自动化管理工具,通过声明式模板定义云资源生命周期,简化复杂IT架构的运维。它解析JSON或YAML模板,自动创建、更新资源,确保状态与模板一致。ROS用于环境一致性、故障恢复、成本优化,是现代云管理的关键,助力企业提升效率和成本效益。**
143 3
|
5月前
|
弹性计算 人工智能 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的最佳实践。
710 1
|
5月前
|
弹性计算 运维 数据处理
资源编排ROS之模块:实现模板代码复用(进阶篇)
资源编排ROS模块能够实现模板代码复用。支持输入输出、公共模块、版本管理、共享模块等功能。在使用场景上,除了对基础设施模块化外,还可作为配置、数据处理工具或资源包装器。
503 6
|
5月前
|
弹性计算 关系型数据库 API
ECS安装问题之安装资源编排服务(ROS)如何解决
ECS(Elastic Compute Service,弹性计算服务)是云计算服务提供商提供的一种基础云服务,允许用户在云端获取和配置虚拟服务器。以下是ECS服务使用中的一些常见问题及其解答的合集:
|
9天前
|
Ubuntu 机器人 Linux
|
9天前
|
传感器 数据可视化 机器人
【ROS速成】半小时入门机器人ROS系统简明教程之可视化系统(三)
半小时入门机器人ROS系统简明教程之可视化系统
|
9天前
|
机器人
【ROS速成】半小时入门机器人ROS系统简明教程之安装测速(二)
半小时入门机器人ROS系统简明教程之安装测速

推荐镜像

更多