在日常工作中,咱们肯定遇到过须要疾速构建零碎的工作情景:
- 作为资源管理人员,须要接管肯定数量以及配置的资源申请,这些申请要求网络、存储设备按需到位;
- 作为开发人员,须要将一套开发环境,复制一份测试环境以及线上环境;
- 架构师布局一套零碎,须要在云上进行搭建。
这些场景都展示着咱们日常所遇的各种艰难:
- 对各类云端资源须要进行广泛支持与治理 :这其中须要包含罕用根底 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 示例
- AlibabaCloud ROS JSON Template 示例
第四步 :阐明 Ctrl+ 鼠标左键可实现参数地位与参数之间的跳转,应用 Ctrl+ 鼠标悬浮可实现参数的悬浮信息。模板治理性能操作阐明如下表所示:
右键单击本地模板,可依据需要进行操作:
性能操作阐明如下:
- Upload:上传模板
- Rename:重命名模板名称
- Delete:删除本地模板
右键单击远端模板,可依据需要进行操作:
性能操作阐明如下:
- 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,可依据您的需要进行相干操作。
资源栈治理性能操作阐明如下表所示:
- Resources:显示该资源栈内的所有资源信息
- Parameters:显示该资源栈的参数信息
对于 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
首届云原生微服务大会
首届云原生微服务大会 PC 端地址:https://developer.aliyun.com/topic/microservices2020#/
“阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术畛域、聚焦云原生风行技术趋势、云原生大规模的落地实际,做最懂云原生开发者的公众号。”