带你读《云上自动化运维宝典》——如何使用OOS有效进行云上自动化运维(1)

简介: 带你读《云上自动化运维宝典》——如何使用OOS有效进行云上自动化运维(1)

弹性计算技术公开课——CloudOps云上运维季圆满结束了,阿里云弹性计算技术专家郑大禹在本次系列课程中带来了主题为《使用OOS进行云上自动化运维》的课程分享,课程内容涵盖云上资源运维面临的挑战、OOS 自动化运维能力揭秘、使用 OOS 云上 CloudOps 实践等方向。

 

以下是他的课程内容整理,供各位开发者学习:

 

image.png

1. 云上资源运维面临的挑战

image.png

云上资源有如下特点,首先是规模大,用户不需要建立自己的基础设施,可以理论上无限的购买所需要的云资源。另外,由于云上资源的弹性,用户可以根据自身的需求,随时随地的获取所需的云资源。这些都造成云上资源会比自建的基础设施规模更大。其次就是云上资源种类多。除了传统的计算,存储,网络资源外,云上提供了更多样化的服务。例如数据库,消息队列、人工智能 ai、物联网等多种类型的资源。

 

用户可以根据自身的需求购买相应的资源,省去了自身搭建的繁琐流程。由云上提供了各种类型的云服务,使得用户能专注于开发业务自身的逻辑。越来越多的技术架构下沉到云资源层。这一方面让用户无需关注基础设施的维护与管理,同时也使得云上资源的场景变得更加复杂。

 

正是由于云上资源的这些特点,资源的运维在效率,成本,安全等方面也面临着相应的挑战。

1) 云资源规模快速增长

 

image.png

 

首先,云资源规模在快速的增长。云资源规模会随着业务的发展快速增长,企业需要管理更多的与计算,存储,网络等资源,这将大大增加运维的复杂性,需要企业投入更多的时间和人力资源来管理监控这些资源。企业需要建立有效的运维流程和工具,以提高资源的运维效率和可靠性。

 

下面以某云账号下的云资源规模为例,在开始的阶段,业务处于启动期,只需要几台 ECS 实例部署 web 服务就可以满足需求。时期云资源的增长比较平稳。采用一些手动运维的方式或者简单运维脚本的方式就能完成这些少量资源的管理。

 

但是随着业务的发展,提供的服务更多,包括 API 大数据服务,资源规模呈指数限制增长。如果采取和之前相同的运维方式需要的人力也在积极增长。这时如何通过自动化的方式将之前少量资源下的运维经验批量复制到大致大量资源上,从而提高运维效率是一个挑战。

2) 云资源成本也在快速的增长

image.png

 



云资源成本随着资源规模相应增长,企业需要进行有效的成本管理和优化,包括分析和监控资源的使用情况,采用适当的成本节约测试,比如节省停机模式,临时带宽升级等。与此同时,如何自动文化的将这些成本优化、运维措施应用起来,也成为了一个挑战。

 

在某云账号下的云资源成本为例,在开始的阶段企业仅引入了少量的 ecs 云资源,通过一些应用,一些成本优化的最佳实践方式能够降低云资源的整体成本。但随着业务的发展,引入了更多比如 ecs 资源或者其他云资源,包括例如数据库,消息队列等,需要对新引入的资源持续的进行成本优化。可以看到云资源的成本呈现了波动上涨的趋势。

 

这时如何通过提升云资源的利用率,降低成本,自然也成为了另一个挑战。同时,如何通过将之前成本优化的经验自动推广到新引入的资源上,避免人工优化,也是一个关键点。

 

3) 安全合规问题日益重要

 

image.png

 

云上的安全合规问题包括数据泄露,滥用服务系统漏洞、帐号劫持,拒绝服务攻击,不安全应用接口等。其实针对这些安全合规问题,云上已经有了不少的最佳事件。

 

比如随着云资源规模的增长,企业需要定期进行系统漏洞的管理,更新和升级系统的补丁、修复已知的安全漏洞。针对一些公司或者行业的合规要求,企业需要定期对云资源进行合规性检查,修复不合规的资源。

 

例如,某些行业对可靠性要求高,需要进行多可用区,甚至跨地域的容灾,企业就需要根据合规要求,对相应的云资源进行检查。如果资源不满足容灾要求还有进行相应的修正。整个过程耗时耗力,如何对部分安全合规要求进行自动的检查,并对不合规的资源进行自动修正,又成为了云上运维的又一挑战。

 

4 CloudOps 最佳实践如何落地

 

image.png

 

虽然云上绝大部分的运维操作已经封装成了 open api,但是这些最佳实践的场景往往不是简单的一个 api 的调用,或简单的云上云操作。它是一系列运维操作的组合,如何将众多的最佳实践自动化的应用到云资源上这将成为一个命题,OOS 运维编排服务正式提供了这样一种任务编排能力的平台。

2. OOS 自动化运维能力揭秘

 

image.png

 

简单介绍一下 OOS 服务,运维编排服务简称 OOS,是全面免费的云上自动化任务编排平台提供了自动化任务的管理和执行,作为平台提供了一系列自动化和半自动化的平台能力实,践基础设施运维及代码的 cloud office as Code 的理念。

 

首先在自动化能力方面, OOS 提供了批量操作,跨地域操作条件控制,并发控制等能力使得运维任务能够在多地域大批量资源等复杂场景下,高效稳定的运行。其次,OOS 也支持审批,暂停等半自动化功能。

 

例如对一些重要的运维操作,有些情况下会需要相关的或需要关键人员的审批通过才能执行,这是可以在 OOS 任务流程中加入审批步骤,通知相关人员进行审批,审批之后再自动执行。另外,对于一些无法自动化的步骤 OOS 也支持暂停操作,有相关的人员人工确认后再执行自动化操作,那么 OOS 还支持多种的触发类型,包括立即操作,定时操作,靠近触发操作事件驱动操作。

 

比如,如果我想现在立刻执行某个命令,就可以采用一级操作,这也是默认的方式。然后如果想明天晚上 8 点执行命令或者是每天晚上 8 点执行命令,这种周期性的操作或者延迟操作可以采用定时操作,如果我想针对一些云监控的告警条件。

 

比如当 CPU 使用量高于 80%的时候,进行一些清理的操作,或者是当磁盘到使用量高于 80%的时候删掉一些不必要的文件,这时可以使用告警触发操作事件驱动操作,是结合我们云监控的事件,以 ECS 事件为例。

 

当在 ECS 启动的时候来进行一些初始化的操作,这时可以采用事件操作,OOS 是在这些能力的基础上提供了托管服务稳定,可靠,无需用户在 ECS 或者产品中进行安装配置,OOS 支持编排 70 多种常用阿里产品,提供 200 多运维任务场景,公共模板开箱即用,此外, OOS 所有的运维操作都可以在 action trio 中审计保障用户的审计需求。

 

image.png

 

基于上述的平台能力 OOS 构建了强大的 api 编排能力,以启动 ECS 实例并安装软件为例,在我们常用的运维方式需要先通过 start instance 启动示例。因为 star instance 集中实例是一个异步的过程,所以必须要等实例是运行中的状态才能在后续进行安装软件的操作。

 

所以需要通过不停的 describe instance 来检查实例的系统状态。然后直到实例的状态是运行中,此时再通过 come on 的运行命令的 API 进行安装软件的命令。安装命令过程也是一个异步过程。所以我们需要通过不停的轮询来等待命令执行完成。在命令执行完成之后还需要通过一个 api described invocation result 来查询命令的结果输出,来确定命令是否按照我们期望来执行。

 

OOS 的任务流程中,将第一部分启动实例以及等待实例启动过程的分装成一个云产品动作,就是 ACSECSStartInstance在过程中,它既完成了启动成立的过程。同时它会等待实例已经是运行中,当动作完成状态,可以立即来进行运行命令的操作,无需再等待。然后同时进行安装命令动作,并等待命令执行完成,最终把结果输出。

 

当这两个动作完全执行完成之后,现在的结果就会输出到任务的输出中,这样就能够一眼的看到命令是否按预期来执行,不用来维护复杂的流程。

 

image.png

 

平台能力和 api 编排能力的基础上后来是构建出了丰富的运维场景。包括常用运维任务、批量操作实例、批量管理软件、定时开关机、带宽临时升级、创建和更新镜像、清理磁盘,这些常用运维任务都是我们在收集用户的使用场景的基础上,抽象出来最常用的,这些通用的运维任务,把它提取出来,放在 OOS 的控制台。

 

同时,对这些操作的流程进行一些优化。另外, OOS 在提供这些基础能力的基础之上,还提供一些辅助场景的能力,包括软件包管理,参数管理,配置清单,补丁管理。软件包管理是在实例中安装阿里云 agient 或者软件包管理工具可管理的软件。

 

同时软件包还支持企业将自己的软件上传到 OOS ,通过软件包进行版本管理来安装到对应的 ecs 实例,参数管理提供对参数的存储管理服务,支持文本数据和加密数据两种格式.加密数据这边采用了 MS 来保障加密的安全。配置清单是能够获取云服务器的 OOS 内部的一些信息,这些信息无法通过API来获取。

 

例如系统内软件包的安装的信息,另外还有系统中文件的一些信息,包括文件的大小,文件的更新时间。这些也都是无法通过API 获取。

 

所以这些信息我们是可以通过配置清单来获取,很自然的场景以刚才软件安装的信息为例,我们可以通过筛选一些未安装软件的实例,或者是安装的是软件的低版本的示例进行更新,把软件更新到最新的一个版本.

补丁管理是会对 ECS 实例的补丁系统补丁进行扫描或安装。

 

用户可以根据自己的需要灵活的设置补丁的扫描安装条件。比如在安装中只安装某个操作系统版本的补丁,比如只安装 windows2022 的操作系统,专门的补丁或者只安装中高危补丁,这样能够满足用户自定义的安装需求。


更多精彩内容,欢迎观看:

带你读《云上自动化运维宝典》——如何使用OOS有效进行云上自动化运维(2):https://developer.aliyun.com/article/1405368

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5天前
|
机器学习/深度学习 人工智能 运维
运维的未来之路:自动化与智能化的融合
【8月更文挑战第15天】在数字化时代的浪潮下,运维领域正经历一场深刻的变革。从手工操作到自动化流程,再到如今智能技术的融入,运维工作正在逐步摆脱繁重而重复的任务,向着更加高效、智能的方向发展。本文将探讨自动化与智能化技术如何重塑运维工作的面貌,以及这一趋势对运维人员技能要求的影响。
20 0
|
2天前
|
机器学习/深度学习 人工智能 运维
智能运维:未来趋势下的自动化与人工智能融合
【8月更文挑战第18天】 在数字化浪潮中,智能运维(AIOps)作为一股不可逆转的力量,正逐步改写传统运维的脚本。本文将探讨AIOps的核心要素、实施路径和面临的挑战,同时分享个人从新手到专家的心路历程,旨在启发读者思考如何在这一领域内持续成长并作出贡献。
12 6
|
4天前
|
机器学习/深度学习 边缘计算 人工智能
运维的未来之路:自动化与智能化
【8月更文挑战第16天】在数字化浪潮的推动下,运维领域正经历着前所未有的变革。本文将探讨自动化与智能化如何重塑运维工作,提升效率,降低成本,并预测未来运维的发展趋势。我们将深入分析当前运维面临的挑战,探讨自动化工具的应用,以及人工智能技术如何助力运维智能化,最后展望运维领域的未来可能性。
|
4天前
|
运维 持续交付 网络安全
自动化运维:Ansible与Terraform的比较
【8月更文挑战第16天】Ansible和Terraform都是自动化运维领域的重要工具,它们各自以其独特的功能和优势在市场中占据了一席之地。在选择使用哪个工具时,用户应根据自己的实际需求和应用场景进行综合考虑。如果主要关注系统配置管理和应用程序部署,那么Ansible可能是一个更好的选择;如果主要关注基础设施的自动化部署和管理,那么Terraform可能更适合您的需求。
|
6天前
|
运维 安全 测试技术
运维之魂:自动化与持续集成的交响曲
在数字时代的交响乐中,自动化和持续集成(CI/CD)是不可或缺的乐章。本文将带您走进运维的世界,探索如何通过自动化和持续集成提升效率、减少错误并确保软件质量。我们将从基础概念讲起,逐步深入到实践案例,最后探讨如何克服实施过程中的挑战,为读者呈现一场技术与艺术完美融合的视听盛宴。
|
5天前
|
机器学习/深度学习 人工智能 运维
自动化运维的新篇章:从脚本到智能化管理
在数字化浪潮中,运维领域迎来了前所未有的挑战与机遇。本文将通过一个运维专家的视角,讲述他如何从一个刚毕业的迷茫青年成长为行业内的佼佼者。文章不仅分享技术成长之路,更深入探讨自动化运维的演变历程,以及它如何重塑IT行业的未来。
|
6天前
|
机器学习/深度学习 人工智能 运维
运维的未来:从自动化到智能化
【8月更文挑战第14天】本文将探讨运维(Operations)的发展历程,从早期的手动操作,到自动化,再到如今的智能化。我们将深入了解智能化运维的优势,以及它如何改变运维人员的工作方式。同时,我们也将讨论智能化运维面临的挑战,以及未来的发展趋势。
|
7天前
|
运维 监控 Devops
构建高效自动化运维体系:DevOps与容器化实践
【7月更文挑战第44天】在现代IT基础设施管理中,自动化运维已成为提升效率、降低成本、确保系统稳定性的关键。本文将探讨如何通过结合DevOps理念和容器化技术来构建一个高效的自动化运维体系。我们将分析这一体系对提高软件交付速度、优化资源利用率以及增强系统可靠性的积极影响,并提供一系列实施策略和最佳实践,帮助企业实现运维自动化转型。
|
9天前
|
运维 监控 持续交付
构建高效自动化运维体系:Ansible与Docker的协同实践
【7月更文挑战第42天】 在当今快速发展的云计算和微服务架构时代,自动化运维已成为提升效率、确保系统稳定性的关键。本文将探讨如何利用Ansible这一强大的自动化工具与Docker容器技术相结合,搭建一个高效、可靠的自动化运维体系。文章首先简述了自动化运维的必要性和Ansible与Docker的基本概念,随后详细介绍了两者结合的优势,并通过实际案例分析展示了如何实现自动化部署、管理和扩展应用服务。通过阅读本文,读者将获得一套可行的自动化运维解决方案,以应对日益复杂的IT环境挑战。
|
10天前
|
机器学习/深度学习 运维 监控
智能化运维:打造高效、自动化的IT管理之道
在信息技术飞速发展的今天,企业对IT系统的依赖程度日益加深。本文将深入探讨智能化运维的重要性,并分享如何构建一个高效、自动化的IT管理体系。从基础架构监控到故障自动修复,我们将一步步揭示智能化运维的奥秘,帮助你的企业走在技术前沿,确保业务连续性和数据安全。
22 1