带你读《云上自动化运维宝典》——如何使用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

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
69 4
|
29天前
|
机器学习/深度学习 运维 监控
智能化运维:从自动化到AIOps的演进之路####
本文深入探讨了IT运维领域如何由传统手工操作逐步迈向高度自动化,并进一步向智能化运维(AIOps)转型的过程。不同于常规摘要仅概述内容要点,本摘要将直接引入一个核心观点:随着云计算、大数据及人工智能技术的飞速发展,智能化运维已成为提升企业IT系统稳定性与效率的关键驱动力。文章详细阐述了自动化工具的应用现状、面临的挑战以及AIOps如何通过预测性分析和智能决策支持,实现运维工作的质变,引领读者思考未来运维模式的发展趋势。 ####
|
29天前
|
机器学习/深度学习 数据采集 人工智能
智能化运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的崛起背景,深入分析了其核心概念、关键技术、应用场景及面临的挑战,并对比了传统IT运维模式,揭示了AIOps如何引领运维管理向更高效、智能的方向迈进。通过实际案例分析,展示了AIOps在不同行业中的应用成效,为读者提供了对未来智能运维趋势的洞察与思考。 ####
75 1
|
1月前
|
机器学习/深度学习 数据采集 人工智能
智能运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的兴起背景、核心组件及其在现代IT运维中的应用。通过对比传统运维模式,阐述了AIOps如何利用机器学习、大数据分析等技术,实现故障预测、根因分析、自动化修复等功能,从而提升系统稳定性和运维效率。文章还深入分析了实施AIOps面临的挑战与解决方案,并展望了其未来发展趋势。 ####
|
1月前
|
机器学习/深度学习 数据采集 运维
智能化运维:机器学习在故障预测和自动化响应中的应用
智能化运维:机器学习在故障预测和自动化响应中的应用
62 4
|
2月前
|
存储 运维 监控
高效运维:从基础架构到自动化管理的全面指南
【10月更文挑战第11天】 本文将深入探讨如何通过优化基础架构和引入自动化管理来提升企业IT运维效率。我们将从服务器的选择与配置、存储解决方案的评估,到网络的设计与监控,逐一解析每个环节的关键技术点。同时,重点讨论自动化工具在现代运维中的应用,包括配置管理、持续集成与部署(CI/CD)、自动化测试及故障排除等方面。通过实际案例分析,展示这些技术如何协同工作,实现高效的运维管理。无论是IT初学者还是经验丰富的专业人员,都能从中获得有价值的见解和实操经验。
104 1
|
2月前
|
运维 监控 测试技术
构建高效运维体系:从监控到自动化的实践之路
【10月更文挑战第9天】 在当今信息技术飞速发展的时代,运维作为保障系统稳定性与效率的关键角色,正面临前所未有的挑战。本文将探讨如何通过构建一个高效的运维体系来应对这些挑战,包括监控系统的搭建、自动化工具的应用以及故障应急处理机制的制定。我们将结合具体案例,分析这些措施如何帮助提升系统的可靠性和运维团队的工作效率。
62 1
|
2月前
|
机器学习/深度学习 人工智能 运维
构建高效运维体系:从自动化到智能化的演进
本文探讨了如何通过自动化和智能化手段,提升IT运维效率与质量。首先介绍了自动化在简化操作、减少错误中的作用;然后阐述了智能化技术如AI在预测故障、优化资源中的应用;最后讨论了如何构建一个既自动化又智能的运维体系,以实现高效、稳定和安全的IT环境。
83 4
|
2月前
|
运维 jenkins 持续交付
自动化部署的魅力:如何用Jenkins和Docker简化运维工作
【10月更文挑战第7天】在现代软件开发周期中,快速且高效的部署是至关重要的。本文将引导你理解如何使用Jenkins和Docker实现自动化部署,从而简化运维流程。我们将从基础概念开始,逐步深入到实战操作,让你轻松掌握这一强大的工具组合。通过这篇文章,你将学会如何利用这些工具来提升你的工作效率,并减少人为错误的可能性。
|
2月前
|
运维 Prometheus 监控
运维中的自动化实践每月一次的系统维护曾经是许多企业的噩梦。不仅因为停机时间长,更因为手动操作容易出错。然而,随着自动化工具的引入,这一切正在悄然改变。本文将探讨自动化在IT运维中的重要性及其具体应用。
在当今信息技术飞速发展的时代,企业对系统的稳定性和效率要求越来越高。传统的手动运维方式已经无法满足现代企业的需求。自动化技术的引入不仅提高了运维效率,还显著降低了出错风险。本文通过几个实际案例,展示了自动化在IT运维中的具体应用,包括自动化部署、监控告警和故障排除等方面,旨在为读者提供一些实用的参考。