按关键词阅读:
【运维人员使用,如何通过,ROS,资源编排使用难度大】简介: 以“基础设施即代码”的理念代替“重复劳动”
文章图片
在日常工作中 , 我们一定遇到过需要快速构建的工作情形:
作为资源人员 , 需要接收一定数量以及配置的资源申请 , 这些申请要求网络、存储设备按需到位 。
作为人员 , 需要将一套环境 , 复制一份环境以及线上环境 。
架构师规划一套 , 需要在云上进行搭建 。
这些场景都展现着我们日常所遇的各种困难:
对各类云端资源需要进行广泛支持与:这其中需要包括常用基础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) 分页标题#e#
标准化的资源和应用交付方式:独立软件供应商(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 工具用于模板的源文件 。
【运维人员使用,如何通过,ROS,资源编排使用难度大】第一步:在 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 示例
文章图片
AlibabaCloud ROS JSON Template 示例
文章图片
第四步:说明 Ctrl+ 鼠标左键可实现参数位置与参数之间的跳转 ,使用 Ctrl+ 鼠标悬浮可实现参数的悬浮信息 。 模板功能操作说明如下表所示:
文章图片
右键单击本地模板 , 可根据需求进行操作:
文章图片
功能操作说明如下:
Upload:上传模板
Rename:重命名模板名称
Delete:删除本地模板
右键单击远端模板 , 可根据需求进行操作:
文章图片
功能操作说明如下:
Properties:查看模板属性信息
Delete:删除远端模板
说明双击远端模板 , 默认会打开一个临时文件 , 右键菜单选择 Alibaba Cloud ROS > Update Template , 显示对比远端模板修改情况 , 可远端模板 。
资源栈
Alibaba Cloud Toolkit - Alibaba Cloud ROS (Alibaba Cloud View)是一个用于阿里云资源编排产品(ROS)资源栈的工具 , 能帮助您便捷地远端资源栈 。分页标题#e#
在 IntelliJ IDEA 中打开您的工程 。
在 IntelliJ IDEA 窗口中选择 Alibaba Cloud View > Alibaba Cloud ROS , 可根据您的需求进行相关操作 。
文章图片
资源栈功能操作说明如下表所示:
文章图片
Resources:显示该资源栈内的所有资源信息
Parameters:显示该资源栈的参数信息
关于 Cloud Toolkit
作为集、诊断、部署为一体的免费本地多 IDE 插件 , Cloud Toolkit 帮助者真正实现任意或 ECS、EDAS、Kubernetes、SAE、函数计算等一键式研发部署 , 支持 Java 规约、高效执行终端命令和 SQL 等常见工具 , 研发速度提升 8 倍以上 , 大幅降低研发成本 。
产品完全免费并覆盖 IntelliJ IDEA、Eclipse、Pycharm、Maven、VS Code 等不同 IDE 环境 。 持续+社群支持 , 确保者放心使用 , 真正做到研发团队降本提效 。
本文相关词条概念解析:
模板
模板 , 是指作图或设计方案的固定格式 , 有时也指DNA复制或转录时 , 用来产生互补链的核苷酸序列 。 模板按材料分为:钢模板 , 竹胶板 , 木模板 , 塑胶板 。 模板是新浇混凝土成型用的模型 , 模板系统由模板、支承件和紧固件组成 , 要求它能保证结构和构件的形状尺寸准确;有足够的强度、刚度和稳定性;装拆方便可多次使用;接缝严密不漏浆 。 模板包含表示元素 , 这些元素包括文本文字、HTML和数据绑定表达式 , 以及表示ASP.NET服务器控件的声明性语法元素 。

来源:(未知)
【】网址:/a/2020/0819/kd439309.html
标题:运维人员使用,如何通过,ROS,资源编排使用难度大