减少运维工作量,如何通过 ROS 轻松实现资源编排新方式

本文涉及的产品
云原生网关 MSE Higress,422元/月
容器镜像服务 ACR,镜像仓库100个 不限时长
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
简介: 以“基础设施即代码”的理念代替“重复劳动”。

头图.png

在日常工作中,我们一定遇到过需要快速构建系统的工作情形:

  • 作为资源管理人员,需要接收一定数量以及配置的资源申请,这些申请要求网络、存储设备按需到位;
  • 作为开发人员,需要将一套开发环境,复制一份测试环境以及线上环境;
  • 架构师规划一套系统,需要在云上进行搭建。

这些场景都展现着我们日常所遇的各种困难:

  • 对各类云端资源需要进行广泛支持与管理:这其中需要包括常用基础IaaS 资源及 PaaS 服务,比如主机、路由器、负载均衡器等计算网络资源以及各种数据库、缓存、大数据、存储服务;
  • 资源编排使用难度大:技术栈复杂而难用,实现复杂拓扑关系需要系统化知识与丰富经验;
  • 大量机械重复的手动配置操作:不仅是各资源及其拓扑关系按配置进行手工部署,各资源间的拓扑关系更是令人头疼;
  • 学习成本高:过往的资源管理依赖于通过命令行调用API 的方式,提升了操作难度和学习成本。

由此可见,自动化运维成了运维人员的业务刚需,各大云厂商也相继推出各自的资源编排服务(Resource Orchestration,以下简称 ROS)。ROS 的理念是“基础设施即代码”,一方面是用代码思维的版本管理来记录基础设施变化,另一方面通过代码实现自动化运维,简化编写代码复杂度,用户通过使用 Json / Yaml 格式模版描述多个云计算资源(如 ECS、RDS、SLB)的配置、依赖关系等,并自动完成所有云资源在多个不同地域以及多个账户中的部署和配置,就像乐高积木一般,运维人员轻松完成搭建。

经过多次调研后,我们发现针对于云服务器最多的场景是基于云服务器“此刻的状态”再创建 1-N 台云服务器,新创建的云服务器系统盘和数据盘都是“此刻的状态”。我们以一个网站服务为例,一般运维工程师会在系统盘或数据盘中安装一些应用,如:Tomcat、Jenkins、MySql、网站自身的数据/文件等等。如果需要再创建一台云服务器与目前已有云服务器的系统或数据状态保持一致,可以将系统盘做成自定义镜像,数据盘做成快照,然后再新购买云服务器时镜像选择该自定义镜像,数据盘的快照选择该快照,安全组的规则配置与原云服务器一致的规则,就可以创建一台基于原云服务器“此刻状态”的新云服务器。

如果只需创建这一台云服务器且不需要记录历史状态,上述方法是比较合适的。

但实际情况远远比这复杂得多,比如可能会频繁创建/释放云服务器;或者生成镜像的操作人员与购买云服务器的人员不是同一个人,一但购买选项没有选正确,新购的这台云服务器就不能投入业务中,按量计费的需要再释放,包年包月的需要等到到期释放或者做数据迁移,势必带来成本损失;想记录或跟踪云服务器的历史演变,如安全组配置变化、基础镜像等信息,也需要单独记录。

面对上述问题,运维人员使用 ROS 的模板作为交付物,将资源固定参数在模板资源中定义,将可变参数在模板参数中定义,方便运行时输入实际参数。这样在频繁创建云服务器时,只需要输入可变参数中的内容即可,如镜像 ID、快照 ID,或者克隆原云服务器,或者没有可变参数,将所有定义都在资源中描述,根据实际业务要求进行模板编写。模板也可以存放在 Github 中,可以像管理代码一样跟踪模板历史,也可以基于模板之上创建适合于企业内部的运维工具,实现自动化运维,以“基础设施即代码”的理念代替“重复劳动”。

我们可以看到 ROS 的强大特性:

  • 可读、易编写的文本文件:运维人员可以直接编辑 JSON 格式文本,或使用 ROS 控制台提供的可视化编辑器编辑模板。通过 SVN、Git 等版本控制工具控制模板版本,以达到控制基础设施版本目的。也可通过 API、SDK 等方式将 ROS 的编排能力与自己的应用进行整合,实现基础设施即代码(Infrastructure as Code);
  • 标准化的资源和应用交付方式:独立软件供应商(ISV)可以通过 ROS 模板交付包含云资源和应用的整体系统和解决方案。ISV 可以通过这种交付方式,整合阿里云的资源和 ISV 的软件系统,实现统一交付;
  • 通过资源栈(Stack)统一管理一组云资源(一个资源栈即为一组阿里云资源):对于云资源创建、删除、克隆等操作,以资源栈为单位来完成。在 DevOps 实践中,可以使用 ROS 克隆开发环境、测试环境和线上环境,实现应用的整体迁移、扩容。

在了解 ROS 的强大后,我们就在日常使用过程中会创建各种数量的 ROS 模板。这也就造成了我们在日常的运维管理中,需要更便捷的工具对模板进行管理。为了更好的管理本地与云端的 ROS 模版,我们上线了 Alibaba Cloud Toolkit - Alibaba ROS Templates,通过一个资源配置文件(.ros.config.yml),协助用户对模板文件进行管理操作。

说明:.ros.config.yml 文件是 Alibaba ROS Templates 工具用于管理模板的源文件。

第一步:在 IntelliJ IDEA 中打开您的工程。

第二步:创建模板,有以下两种创建方式:

  • 在 IntelliJ IDEA 中右键单击您的工程名称,选择 New > AlibabaCloud ROS YAML Template 或选择 New > AlibabaCloud ROS JSON Template。

注意:使用这种方式创建的模板不会被 Alibaba ROS Templates 工具管理。如需使用模板工具管理,则需要在 .ros.config.yml 文件中增加模板路径,并将模板移动至 JSON 和 YAML 文件夹下。

  • 打开 IntelliJ IDEA 右边框 Alibaba ROS Templates 工具,单击 Create,输入模板的名称,选择模板的类型,创建本地模板。

第三步:在 Resources 参数中输入资源类型。

  • AlibabaCloud ROS YAML Template 示例

1.gif

  • AlibabaCloud ROS JSON Template 示例

2.gif

第四步:说明 Ctrl+ 鼠标左键可实现参数位置与参数之间的跳转, 使用 Ctrl+ 鼠标悬浮可实现参数的悬浮信息。模板管理功能操作说明如下表所示:

表1.jpg

右键单击本地模板,可根据需求进行操作:

3.png

功能操作说明如下:

  • Upload:上传模板
  • Rename:重命名模板名称
  • Delete:删除本地模板

右键单击远端模板,可根据需求进行操作:

4.png

功能操作说明如下:

  • Download:下载模板
  • Properties:查看模板属性信息
  • Delete:删除远端模板

说明双击远端模板,默认会打开一个临时文件,右键菜单选择 Alibaba Cloud ROS > Update Template,显示对比远端模板修改情况,可更新远端模板。

资源栈管理

Alibaba Cloud Toolkit - Alibaba Cloud ROS (Alibaba Cloud View)是一个用于管理阿里云资源编排产品(ROS)资源栈的工具,能帮助您便捷地管理远端资源栈。

  • 在 IntelliJ IDEA 中打开您的工程;
  • 在 IntelliJ IDEA 窗口中选择 Alibaba Cloud View > Alibaba Cloud ROS,可根据您的需求进行相关操作。

5.png

资源栈管理功能操作说明如下表所示:

表2.jpg

  • Resources:显示该资源栈内的所有资源信息
  • Parameters:显示该资源栈的参数信息

关于 Cloud Toolkit

作为集开发、测试、诊断、部署为一体的免费本地多 IDE 插件,Cloud Toolkit 帮助开发者真正实现任意服务器或 ECS、EDAS、Kubernetes、SAE、函数计算等一键式研发部署,支持 Java 规约、高效执行终端命令和 SQL 等常见工具,研发速度提升 8 倍以上,大幅降低研发成本。

产品完全免费并覆盖 IntelliJ IDEA、Eclipse、Pycharm、Maven、VS Code 等不同 IDE 环境。持续更新+社群支持,确保开发者放心使用,真正做到研发团队降本提效。

对应下载传送门

附产品使用文档https://help.aliyun.com/document_detail/29968.html

首届云原生微服务大会

首届云原生微服务大会 PC 端地址:https://developer.aliyun.com/topic/microservices2020#/

阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的公众号。”

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
相关文章
|
5月前
|
弹性计算 关系型数据库 MySQL
使用资源编排 ROS 轻松部署单点网站——以 WordPress 为例
WordPress 是流行的开源CMS,阿里云的ROS(Resource Orchestration Service)提供模板化部署服务,简化云上环境如VPC、ECS、MySQL的创建。用户可通过ROS控制台选择模板一键部署WordPress,配置包括实例区、类型、系统盘及密码等参数。ROS模板定义了资源、参数和输出,自动处理依赖关系,实现云资源和应用的自动化部署。通过ROS,用户可以高效管理和更新整个资源栈,实现快速、可靠的云服务部署。
使用资源编排 ROS 轻松部署单点网站——以 WordPress 为例
|
6月前
|
弹性计算 JSON API
一键云部署:资源编排 ROS 轻松部署文本转语音系统 ChatTTS
ChatTTS是一款针对对话场景的文本转语音模型,支持英中两种语言,训练数据超过10万小时。ChatTTS可通过WebUI和API访问。阿里云的资源编排服务(ROS)提供了一键部署ChatTTS到云端的方案,用户只需在ROS控制台配置模板参数,如区域和实例类型,即可完成部署。部署后,从资源栈输出获取ChatTTS服务地址。ROS利用IaC理念自动化部署云资源和应用,提高了部署效率和稳定性。
一键云部署:资源编排 ROS 轻松部署文本转语音系统 ChatTTS
|
6月前
|
弹性计算 人工智能 JSON
一键云部署:资源编排 ROS 轻松部署 LLM 流程编排服务 Flowise
Flowise 是一个开源低代码平台,用于构建定制化的 LLM 流程和 AI 代理。阿里云的 Resource Orchestration Service (ROS) 提供了一键部署 Flowise 到 ECS 实例的方案。用户只需在 ROS 控制台配置模板参数,如可用区和实例类型,即可完成部署。部署后,从资源栈输出获取 Flowise 服务地址以开始使用。ROS 模板定义了 VPC、ECS 实例等资源,并通过 ROS 自动化部署,简化了云上资源和应用的管理。
一键云部署:资源编排 ROS 轻松部署 LLM 流程编排服务 Flowise
|
6月前
|
JSON 弹性计算 运维
深入浅出资源编排ROS:构建云环境下的自动化运维利器引言
**资源编排ROS是阿里云提供的自动化管理工具,通过声明式模板定义云资源生命周期,简化复杂IT架构的运维。它解析JSON或YAML模板,自动创建、更新资源,确保状态与模板一致。ROS用于环境一致性、故障恢复、成本优化,是现代云管理的关键,助力企业提升效率和成本效益。**
185 3
|
7月前
|
弹性计算 人工智能 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的最佳实践。
|
7月前
|
弹性计算 关系型数据库 API
ECS安装问题之安装资源编排服务(ROS)如何解决
ECS(Elastic Compute Service,弹性计算服务)是云计算服务提供商提供的一种基础云服务,允许用户在云端获取和配置虚拟服务器。以下是ECS服务使用中的一些常见问题及其解答的合集:
|
2月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
69 4
|
28天前
|
机器学习/深度学习 运维 监控
智能化运维:从自动化到AIOps的演进之路####
本文深入探讨了IT运维领域如何由传统手工操作逐步迈向高度自动化,并进一步向智能化运维(AIOps)转型的过程。不同于常规摘要仅概述内容要点,本摘要将直接引入一个核心观点:随着云计算、大数据及人工智能技术的飞速发展,智能化运维已成为提升企业IT系统稳定性与效率的关键驱动力。文章详细阐述了自动化工具的应用现状、面临的挑战以及AIOps如何通过预测性分析和智能决策支持,实现运维工作的质变,引领读者思考未来运维模式的发展趋势。 ####
|
28天前
|
机器学习/深度学习 数据采集 人工智能
智能化运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的崛起背景,深入分析了其核心概念、关键技术、应用场景及面临的挑战,并对比了传统IT运维模式,揭示了AIOps如何引领运维管理向更高效、智能的方向迈进。通过实际案例分析,展示了AIOps在不同行业中的应用成效,为读者提供了对未来智能运维趋势的洞察与思考。 ####
73 1
|
1月前
|
机器学习/深度学习 数据采集 人工智能
智能运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的兴起背景、核心组件及其在现代IT运维中的应用。通过对比传统运维模式,阐述了AIOps如何利用机器学习、大数据分析等技术,实现故障预测、根因分析、自动化修复等功能,从而提升系统稳定性和运维效率。文章还深入分析了实施AIOps面临的挑战与解决方案,并展望了其未来发展趋势。 ####

推荐镜像

更多