ros c++ 代码说明文档_减少运维工作量,如何通过 ROS 轻松实现资源编排新方式...

0eaedd4a24d19979ed4991d3ac071814.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 示例

6d8a77bafebb082eb01f867bec6cc996.gif

  • AlibabaCloud ROS JSON Template 示例

f640af40ea1157b042e4a574b6a20ac0.gif

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

功能

描述

Refresh

刷新目录。

Create

创建本地模板。首次使用此插件创建模板默认会创建 JSON、YAML及.ros.config.yml 文件

Delete

删除选中模板功能

Local Templates

本地模板虚拟目录

Remote Templates

远端模板虚拟目录

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

3769921c61eebce2943a446e2192e890.png

功能操作说明如下:

  • Upload:上传模板

  • Rename:重命名模板名称

  • Delete:删除本地模板

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

922dc2f740cc65bb79ac3982872540aa.png

功能操作说明如下:

  • Download:下载模板

  • Properties:查看模板属性信息

  • Delete:删除远端模板

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

e5033d8ca1bcd8aab242727f3e1d7e51.gif

资源栈管理

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

  • 在 IntelliJ IDEA 中打开您的工程;

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

294e4c34f0fee4f47888e740ef7e941a.png

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

功能

描述

地域

选择地域

Search

在当前地域下,搜索资源栈 ID 或资源栈名称;若未输入,则刷线当前地域资源栈列表

Create Stack

创建资源栈 ,自动跳转至官网 ROS 控制台创建资源栈界面

Stack ID/Name

单击名称,显示该资源栈属性信息

Status

显示该资源栈当前状态

Create at

显示该资源栈创建时间

Outputs

显示该资源栈的输出值信息

Delete

删除该资源栈

More

  • Properties:显示该资源栈的属性信息

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

  • Parameters:显示该资源栈的参数信息

e5033d8ca1bcd8aab242727f3e1d7e51.gif

关于 Cloud Toolkit

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

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

对应下载传送门

  • IntelliJ 、PyCharm、PhpStorm:https://developer.aliyun.com/article/687264

  • Eclipse:https://developer.aliyun.com/article/673562

  • Visual Studio Code :https://marketplace.visualstudio.com/items?spm=5176.11997469.1283546..7a8f4e2bIgRa0P&itemName=alibabacloud-cloudtoolkit.toolkit-vscode&ssr=false#overview

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

86b67373b113a62f3a23f7c7bd502e89.gif戳原文,直达云原生架构白皮书详情页!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/561208.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华硕和梅林系统哪个好_RUSHCRM:定制CRM软件系统哪个好?

Crm系统是一个可以帮助企业获得、维护以及提升客户价值的系统,并且做到以客户为中心的管理模式。但是有不少企业在选择crm软件系统的过程中,会发现在国内crm系统的市场中,绝大多数crm系统的功能都不能完全满足企业的需求,那么就需…

字典哈希表的实现原理_GCC中unordered_(multi)set/map的实现原理 (Part 2 图解哈希表结构)...

写在前面(本专栏仅是个人笔记本,有胡言乱语和错漏部分)本文以图文代码的形式记录了_Hashtable的结构,如何编排每一个bucket的链表,如何将每个bucket的链表串在一起形成一个长链表,如何利用迭代器遍历_Hasht…

null === undefined_【英】两个“非值”:undefined 和 null

前言本期英文由Dr. Axel Rauschmayer分享。英文从这开始~~Most programming languages have only one value for “no value” or “empty reference”. For example, that value is null in Java. JavaScript has two of those special values: undefin…

有趣的编程代码_iPad amp; Mac 编程游戏推荐

今天想给大家推荐一款免费的编程 App,它的名字叫「Swift Playgrounds」。会不会有人一看到“编程”两个字就觉得怕了怕了,感觉太深奥了?但是,这款游戏真的简单又有趣,值得你去试试。▍应用介绍这是一款适用于 Mac 和 i…

tensorflow支持python3.7吗_TensorFlow2.1正式版上线:最后一次支持Python2,进一步支持TPU...

机器之心报道参与:杜伟、一鸣TensorFlow2.1的更新,能够让弃坑的用户回心转意吗?去年 10 月,谷歌才发布了 TensorFlow 2.0 正式版。时隔三个月后,昨日官方发布了 TensorFlow 2.1,本次版本更新带了了多项新特…

hashmap containsvalue时间复杂度_不看看HashMap源码,怎么和面试官谈薪资

HashMap 是日常开发中,用的最多的集合类之一,也是面试中经常被问到的 Java 类之一。同时,HashMap 在实现方式上面又有十分典型的范例。不管是从哪一方面来看,学习 HashMap 都可以说是有利无害的。分析 HashMap 的源码的文章在网上…

tcp序列号为什么是随机的_译文:每个开发人员应了解的 TCP 知识

为什么要把服务器放在离用户很近的地理位置上?其中一个原因是为了实现更低的延迟。当您发送的数据是短的、应该尽可能快的传输数据时,这很有意义。但如果是大文件,比如视频等大文件呢?当然,在接收第一个字节时肯定会有…

matlab时域转换成频域_从时域到频域,你只需要旋转一下!

作为一个工科生,这里我不去说很多的严密的定理和知识,我只是从我的角度,形象的去理解时域和频域。首先我们来观察一个画在空间直角坐标系中的正弦函数:现在我们从两个视角去观察它分别是垂直于xoz面和垂直于yoz面看到的图像如下&a…

win7右键计算机管理参数错误,win7纯净版虚拟磁盘管理器参数错误怎么解决?

最近有用户反映win7纯净版虚拟磁盘管理器参数错误,他是硬盘分区太多,很乱,所以想要自己设置盘符名称,但没想到在修改盘符时出现提示“硬盘参数错误”,导致修改盘符失败,这让用户非常苦恼。那么,…

mysql查看用户名_Mysql创建数据表的方法介绍(附示例)

本篇文章给大家带来的内容是关于Mysql创建数据表的方法介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。数据表是数据库最重要的组成部分之一,是其他对象的基础。如果我们的数据库没有数据表就等于没有…

vue读取终端硬件信息_双通道RFID模块助力电力数据采集终端(不必多说,直接测试对比)...

推动超高频技术应用的RFID模块打包模组、全面简化设计极高的性价比,让更多领域用得起超高频RFIDM6002 是我司自主研发的一款高性能双通道嵌入式超高频RFID 读写模块,该模块主要是解决单通道读写模块的空间盲点问题,弥补单通道读写模块在应用中…

spring 查找实现类_69道Spring面试题和答案

什么是spring?Spring是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。使用Spring框架的好…

2018全国计算机音乐大赛一等奖,2018全国数字音乐大赛总决赛精彩无限!小学员的技能震惊评委!...

2018全国数字音乐大赛总决赛精彩无限!小学员的技能震惊评委!近日,为期四天的第三届罗兰艺术节暨全国青少年数字音乐大赛总决赛于北京隆重召开并圆满闭幕。期间丰富多彩的音乐竞技赛事与演艺现场,让所有参与大赛的学员与家长们赞叹…

erp开发和java开发区别_Java程序员求职必学:Spring boot学习指南!

黑马程序员上海中心学姐微信:CZBKSH关注咳咳,今天学姐就来和你们说说Spring对于Java程序员的重要性。首先,Spring 官网首页是这么介绍自己的——“Spring: the source for modern Java”,这也意味着 Spring 与 Java 有着密切的关系…

irobot擦地机器人故障_33款扫地机器人口碑:售价6350元的戴森口碑垫底,小米、科沃斯谁更好用?...

市面上的扫地机器人琳琅满目,消费者该怎么选呢?2020年6月,《消费者报道》汇总了京东、天猫、苏宁上热销的33款扫地机器人的评价情况,对约3.9万条消费者评价数据进行了分析和评分。评价品牌科沃斯、海尔、iRobot、小米、浦桑尼克、…

专业显卡打游戏测试软件,专业显卡能玩游戏吗?专业卡游戏实测

专业显卡能玩游戏吗?专业卡游戏实测2013年03月06日 00:12作者:汤炜炜编辑:汤炜炜分享泡泡网显卡频道3月6日 图形工作站专业显卡与消费级游戏显卡在硬件上是完全一样的,区别只在于规格微调、驱动不同、软件验证。我们也知道&#x…

python集合运算符_Python 集合、字典、运算符

先区分一下序列类型和散列类型: 序列类型:list、string、tuple,他们中的元素是有序的。 散列类型:set、dict,他们中的元素无序的。(注意:python3.7.0开始字典变成"有序"了&#xff09…

wireshark 查看端口是否正常_网络抓包软件-Wireshark使用分享

Wireshark(以前叫Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是抓取网络封包,并尽可能地显示出详细的网络封包信息。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。基础界面介绍Wireshark软件界面有以下几个功能区域&#xf…

普通计算机用的是什么屏幕,笔记本屏幕的色域 72%NTSC和100%sRGB有什么区别

笔记本屏幕的色域 72%NTSC和100%sRGB有什么区别2018-09-15 11:00:05247点赞724收藏60评论无论是选购普通笔记本还是游戏本,大家除了关心产品的外观和配置外,越来越多的朋友把重点放在了屏幕上,也许TN屏和IPS屏大家很好判断哪个更好&#xff0…

redis源码分析 ppt_【Redis】redis各类型数据结构和底层实现源码分析

一、简介和应用Redis是一个由ANSI C语言编写,性能优秀、支持网络、可持久化的K-K内存数据库,并提供多种语言的API。它常用的类型主要是 String、List、Hash、Set、ZSet 这5种。Redis在互联网公司一般有以下应用:String:缓存、限流、计数器、分…