阿里云自动化部署和运维的最佳实践-基于YAML的编排

简介: 为了提升运维开发人员的开发效率,降低开发的难度,阿里云推出了资源编排(Resource Orchestration Service,简称ROS),和运维编排Operation Orchestration Service,简称OOS)这两个编排平台。作为平台级的产品,阿里云会负责保证其稳定可靠,用户只需要按照平台的规则制定自己的运维逻辑。

  运维,是从IT诞生起就一直存在的重要角色,为软硬件系统的整体稳定性、效率、安全等指标负责。最近几年,伴随着云计算和DevOps的广泛应用,运维更是成了舞台中央最亮眼的主角之一。

  值得关注的是,云时代的运维,正在颠覆传统的运维。传统的运维,需要能够手动操作来自众多厂家的计算、网络、存储等软硬件,并为此学习传统“大厂”的众多认证,例如,数据库运维要学Oracle的认证,系统运维要学IBM的认证,虚拟化运维要学VMware的认证,等等。但企业上云之后,云厂商将计算、存储、网络的操作全部抽象成了软件定义的API接口,并用统一风格的SDK、命令行进行封装,从而大幅降低了运维操作的门槛。云上的运维人员不再需要感知底层基础设施的细节,更不需要考取高难度的认证。
  当然,云时代也对运维人员提出了新的要求和挑战。首当其冲的,就是DevOps,强调高度的自动化,要求运维人员具备一定的开发技能。以国内最大的云厂商阿里云为例,运维人员需要学习并掌握阿里云主流云产品(云服务器,云数据库,对象存储,专有网络等等)的API,才能从容的根据自己企业的实际运维需要,开发实现自动化运维系统。这样一来,运维操作工程师,就升级成了运维开发工程师。

  既然谈到了运维开发,就离不开编程语言和开发平台。运维开发与普通软件开发不同,对于快速开发的要求应该是第一位的,因为运维开发的需求变化更频繁,开发周期更短,人力也更为紧张。阿里云提供的JavaPythonGo等语言的SDK,虽然能力强大,但是能力过于“原子”。若没有平台的支持,要运维人员自己从头搭建一个自动化运维系统,并保证其高效稳定持续运行,难度和投入都很大。为了保证生产系统的稳定,创造了一个运维系统,那么,谁来保证这个运维系统的稳定呢?这是一个悖论。

  为了进一步的提升运维开发人员的开发效率,降低开发的难度,阿里云推出了资源编排(Resource Orchestration Service,简称ROS),和运维编排Operation Orchestration Service,简称OOS)这两个编排平台。作为平台级的产品,阿里云会负责保证其稳定可靠,用户只需要按照平台的规则制定自己的运维逻辑。那么什么是编排呢?编排来源于交响乐,是指通过编曲,把各种不同乐器的演奏,和谐的融合在一起。运维开发人员,就像交响乐作曲家,通过编写YAML格式的编排模板,把各种不同的资源、配置、动作,串联在一起。

  先来说资源编排ROS。假设一个场景,在阿里云上搭建一个经典的三层在线服务:前面是SLB负载均衡,中间是若干台ECS作为一个服务集群,后面再挂接一套RDS数据库。当然,你还需为这三层分别各自创建一个VPC,通过安全组设置安全规则。在业务初期你可能只需要两台ECS,但很快会扩大到3台、4台。按照传统的运维思维,需要给系统下达原子的命令:今天创建一台,明天再创建一台。但是按照ROS声明式的语法,运维开发人员只需要指定自己当前的资源需要。比如把MaxAmount值从3改成5(见如下例子),ROS会自动新建两台ECS。再比如把MaxAmount从3改成2,ROS会自动释放其中一台ECS。我们把这种全自动的管理资源的生命周期的方式,叫做“基础设施即代码”。

Resources:
  InstanceGroup:
    Type: 'ALIYUN::ECS::InstanceGroup'
    Properties:
      MaxAmount: 3
      InstanceType:
        Ref: InstanceType
      ImageId:
        Ref: ImageId
      SecurityGroupId:
        Ref: SecurityGroupId
      VSwitchId:
        Ref: VSwitchId
AI 代码解读

  运维是一个非常广泛的概念,资源的生命周期管理,只是其中一小部分。运维,还涉及到了监控、故障处理、持续发布、资源分组、审计等等各种需求。为了满足普适的运维需要,阿里云推出了运维编排(OOS)产品。同样是基于YAML的编排,但是与ROS不同的是,OOS编排的是一个个的原子动作(API)。几乎所有阿里云控制台上的操作,都可以通过OpenAPI来完成,而几乎所有的API动作,都可以通过OOS来完成,因此,我们可以说,所有的阿里云上的运维动作,都可以通过OOS来自动化完成。不仅如此,阿里云OOS还内置了三个强大的运维功能:定时任务、事件触发器和云助手命令。定时任务很容易理解,用户只需要编写cron表达式,OOS就会精确地定时触发,例如,每天早晨八点开启服务器。事件触发器可以跟云监控的事件(或者告警)相结合,实现“事件驱动”的自动化运维,尤其是自动化的故障恢复,运维人员无需关心事件的具体接收过程。云助手命令则可以让开发人员,在无需开启SSH接口的情况下,远程在linux里面执行系统命令。我们举一个事件驱动和云助手结合的例子,当60秒的平均CPU利用率超过90%的时候,重启tomcat服务,OOS模板的示例(节选)如下:

Tasks:
  - Name: alarmTrigger
    Action: 'ACS::AlarmTrigger'
    Properties:
      Namespace: acs_ecs_dashboard
      MetricName: cpu_total
      Statistics: Average
      ComparisonOperator: GreaterThanThreshold
      Threshold: '90'
      Resources: '[{"instanceId":"{{ instanceId }}"}]'
      Period: 60
  - Name: runcommnd
    Action: ACS::ECS::RunCommand
    Properties:
      commandContent: 'service tomcat restart'
      instanceId: '{{ instanceId }}'
      commandType: RunShellScript
AI 代码解读

  通过上面的例子,我们可以看出,ROS和OOS,可以帮助运维开发人员,以最快的速度和最少的代码,实现常见运维任务的自动化。阿里云官方,为ROS和OOS提供了一系列的公共模板,开源在github上,感兴趣的运维同学们可以阅读学习,或者基于这些现有的模板随意进行二次开发。 
 
ROS公共模板:https://github.com/aliyun/ros-templates   
OOS公共模板:https://github.com/aliyun/oos-templates   

  运维同学可能会想到,能否将ROS和OOS结合使用呢?答案是肯定的。可以在OOS模板里,对ROS进行API调用。具体的实现,还希望聪明的运维同学们参考ROS和OOS的官方帮助文档,自己尝试一下。 

ROS主页:https://www.aliyun.com/product/ros    OOS主页:https://www.aliyun.com/product/oos   

  阿里云正在筹办“弹性计算自动化运维模板挑战赛”。也欢迎运维开发同学们积极参与,奖励丰厚。如有问题,欢迎加入钉钉群咨询。 
 
ROS支持群群号:11783495   
OOS支持群群号 : 23330931

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
121
分享
相关文章
云服务运维智能时代:阿里云操作系统控制台
阿里云操作系统控制台是一款创新的云服务器运维工具,采用智能化和可视化方式简化运维工作。通过AI技术实时监控服务器状态,自动分析性能瓶颈和故障原因,生成详细的诊断报告与优化建议。用户无需复杂命令行操作,仅需通过图形化界面即可高效处理问题,降低技术门槛并提升故障处理效率。尤其在服务器宕机等紧急情况下,智能诊断工具能快速定位问题根源,确保业务稳定运行。此外,控制台还提供内存、存储、网络等专项诊断功能,帮助用户全面了解系统资源使用情况,进一步优化服务器性能。这种智能化运维方式不仅提升了工作效率,也让个人开发者和企业用户能够更专注于核心业务的发展。
阿里云 OS 控制台:让基础设施运维不再难
涵盖智能异常检测、智能根因分析、智能修复建议的全链路运维解决方案
阿里云携手神州灵云打造云内网络性能监测标杆 斩获中国信通院高质量数字化转型十大案例——金保信“云内网络可观测”方案树立云原生运维新范式
2025年,金保信社保卡有限公司联合阿里云与神州灵云申报的《云内网络性能可观测解决方案》入选高质量数字化转型典型案例。该方案基于阿里云飞天企业版,融合云原生引流技术和流量“染色”专利,解决云内运维难题,实现主动预警和精准观测,将故障排查时间从数小时缩短至15分钟,助力企业降本增效,形成可跨行业复制的数字化转型方法论。
158 6
阿里云操作系统控制台评测:国产AI+运维 一站式运维管理平台
本文详细评测了阿里云操作系统控制台,作为一款集运维管理、智能助手和系统诊断于一体的工具,它为企业提供了高效管理云资源的解决方案。文章涵盖登录与服务开通、系统管理与实例纳管、组件管理与扩展功能、系统诊断与问题排查以及实时热点分析与性能优化等内容。通过实际操作展示,该平台显著提升了运维效率,并借助AI智能助手简化了复杂操作。建议进一步完善组件库并增强第三方兼容性,以满足更多高级运维需求。
276 3
阿里云飞天洛神云网络子系统“齐天”:超大规模云网络智能运维的“定海神针”
阿里云飞天洛神云网络子系统“齐天”:超大规模云网络智能运维的“定海神针”
164 3
HTTPS 证书自动化运维:https证书管理系统-自动化部署
本指南介绍如何部署Linux服务器节点。首先复制生成的Linux脚本命令,然后将其粘贴到目标服务器上运行。接着刷新页面查看节点记录,并点击“配置证书”选择证书以自动部署。最后,节点部署完成,后续将自动调度,无需人工干预。
HTTPS 证书自动化运维:https证书管理系统-自动化部署
云产品评测|告别传统运维挑战!阿里云OS控制台引领智能管理新时代
阿里云OS控制台是专为运维人员设计的高效管理工具,旨在提升用户体验和简化操作流程。它不仅集成了OS Copilot等智能助手,还提供了系统诊断、订阅管理和AI组件等功能,支持API、SDK、CLI等多种管理方式。通过该平台,用户可以轻松纳管服务器、监控健康状态、执行故障排查,并享受针对阿里云环境优化的运维体验。整体而言,阿里云OS控制台为运维工作带来了极大的便利与效率提升。
深入解析操作系统控制台:阿里云Alibaba Cloud Linux(Alinux)的运维利器
本文将详细介绍阿里云的Alibaba Cloud Linux操作系统控制台的功能和优势。
239 6

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问