阿里云自动化部署和运维的最佳实践-基于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

  运维是一个非常广泛的概念,资源的生命周期管理,只是其中一小部分。运维,还涉及到了监控、故障处理、持续发布、资源分组、审计等等各种需求。为了满足普适的运维需要,阿里云推出了运维编排(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

  通过上面的例子,我们可以看出,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

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
存储 人工智能 运维
阿里云操作系统控制台评测:国产AI+运维 一站式运维管理平台
本文详细评测了阿里云操作系统控制台,作为一款集运维管理、智能助手和系统诊断于一体的工具,它为企业提供了高效管理云资源的解决方案。文章涵盖登录与服务开通、系统管理与实例纳管、组件管理与扩展功能、系统诊断与问题排查以及实时热点分析与性能优化等内容。通过实际操作展示,该平台显著提升了运维效率,并借助AI智能助手简化了复杂操作。建议进一步完善组件库并增强第三方兼容性,以满足更多高级运维需求。
117 0
|
1月前
|
存储 运维 监控
云服务运维智能时代:阿里云操作系统控制台
阿里云操作系统控制台是一款创新的云服务器运维工具,采用智能化和可视化方式简化运维工作。通过AI技术实时监控服务器状态,自动分析性能瓶颈和故障原因,生成详细的诊断报告与优化建议。用户无需复杂命令行操作,仅需通过图形化界面即可高效处理问题,降低技术门槛并提升故障处理效率。尤其在服务器宕机等紧急情况下,智能诊断工具能快速定位问题根源,确保业务稳定运行。此外,控制台还提供内存、存储、网络等专项诊断功能,帮助用户全面了解系统资源使用情况,进一步优化服务器性能。这种智能化运维方式不仅提升了工作效率,也让个人开发者和企业用户能够更专注于核心业务的发展。
|
1月前
|
存储 运维 监控
阿里云飞天洛神云网络子系统“齐天”:超大规模云网络智能运维的“定海神针”
阿里云飞天洛神云网络子系统“齐天”:超大规模云网络智能运维的“定海神针”
|
2月前
|
缓存 运维 监控
Anolis OS深度集成运维利器 阿里云操作系统控制台上线
阿里云在百万服务器运维领域的丰富经验打造。
Anolis OS深度集成运维利器 阿里云操作系统控制台上线
|
3月前
|
Linux 持续交付 调度
HTTPS 证书自动化运维:https证书管理系统-自动化部署
本指南介绍如何部署Linux服务器节点。首先复制生成的Linux脚本命令,然后将其粘贴到目标服务器上运行。接着刷新页面查看节点记录,并点击“配置证书”选择证书以自动部署。最后,节点部署完成,后续将自动调度,无需人工干预。
HTTPS 证书自动化运维:https证书管理系统-自动化部署
|
3月前
|
监控 运维
HTTPS 证书自动化运维:https证书管理系统- 自动化监控
本文介绍如何设置和查看域名或证书监控。步骤1:根据证书状态选择新增域名或证书监控,线上部署推荐域名监控,未部署选择证书监控。步骤2:查询监控记录详情。步骤3:在详情页查看每日定时检测结果或手动测试。
HTTPS 证书自动化运维:https证书管理系统- 自动化监控
|
3月前
|
运维
HTTPS 证书自动化运维:https证书管理系统之自动化签发
通过访问【https://www.lingyanspace.com】注册账户,进入证书服务菜单并新增证书。填写域名(单域名、多域名或泛域名),创建订单后添加云解析DNS记录进行质检。确认完成后可下载证书,并支持后续查看、更新和定时更新功能。证书过期前15天自动更新,需配置邮箱接收通知。
HTTPS 证书自动化运维:https证书管理系统之自动化签发
|
3月前
|
弹性计算 人工智能 运维
云产品评测|告别传统运维挑战!阿里云OS控制台引领智能管理新时代
阿里云OS控制台是专为运维人员设计的高效管理工具,旨在提升用户体验和简化操作流程。它不仅集成了OS Copilot等智能助手,还提供了系统诊断、订阅管理和AI组件等功能,支持API、SDK、CLI等多种管理方式。通过该平台,用户可以轻松纳管服务器、监控健康状态、执行故障排查,并享受针对阿里云环境优化的运维体验。整体而言,阿里云OS控制台为运维工作带来了极大的便利与效率提升。
|
3月前
|
存储 运维 安全
深入解析操作系统控制台:阿里云Alibaba Cloud Linux(Alinux)的运维利器
本文将详细介绍阿里云的Alibaba Cloud Linux操作系统控制台的功能和优势。
150 6
|
3月前
|
Kubernetes Java 持续交付
小团队 CI/CD 实践:无需运维,Java Web应用的自动化部署
本文介绍如何使用GitHub Actions和阿里云Kubernetes(ACK)实现Java Web应用的自动化部署。通过CI/CD流程,开发人员无需手动处理复杂的运维任务,从而提高效率并减少错误。文中详细讲解了Docker与Kubernetes的概念,并演示了从创建Kubernetes集群、配置容器镜像服务到设置GitHub仓库Secrets及编写GitHub Actions工作流的具体步骤。最终实现了代码提交后自动构建、推送镜像并部署到Kubernetes集群的功能。整个过程不仅简化了部署流程,还确保了应用在不同环境中的稳定运行。
143 9

热门文章

最新文章