阿里巴巴DevOps实践指南(二十四)| 智能运维

简介: 智能运维( AIOps )是依托于阿里巴巴 DevOps 经验沉淀而来的智能化运维平台,通过运维大数据的积累,以及算法团队多种算法的校对,我们将运维提升到新的高度,通过 AI 来帮我们查看数据、判断异常、决策运维操作,形成监、管、控一体化的运维平台。

image.png

编者按:本文源自阿里云云效团队出品的《阿里巴巴DevOps实践指南》,扫描上方二维码或前往:https://developer.aliyun.com/topic/devops,下载完整版电子书,了解阿里十年DevOps实践经验。

阿里巴巴的运维团队致力于打造无人值守的运维平台,用智能化推动高效率、低成本的应用运维。智能运维是运维平台实现信息化和数字化之后的自然发展,利用扎实的技术基础,把机器学习、优化算法和各个专业领域方面的知识完美结合起来,针对具体运维场景提供令人满意的解决方案。

智能运维( AIOps )是依托于阿里巴巴 DevOps 经验沉淀而来的智能化运维平台,通过运维大数据的积累,以及算法团队多种算法的校对,我们将运维提升到新的高度,通过 AI 来帮我们查看数据、判断异常、决策运维操作,形成监、管、控一体化的运维平台。

运维体系面临的挑战

DevOps 运维时代,阿里巴巴运维体系面临如下挑战:

第一,规模化。阿里巴巴的基础设施规模呈指数级增长,在服务器数量是千级别、万级别的时候还勉强可以通过人为操作来运维,但发展到百万级别的时候,任何一个步骤依赖纯人为操作都是不现实的。服务器规模百万级的时候,如何保证整体运维安全、高效的进行是第一个挑战。

第二,高复杂。阿里巴巴业务的多样性及高速发展也对系统稳定性提出了更高的要求,对运维体系带来更大的挑战。曾经我们考核系统可用率 7 个 9,存储方面达到 6 个 9 就很好,但是盒马鲜生这样的业务是要求 100%可用。作为线下业务,在盒马店有半小时不能支付是无法接受。我们要从全链路视角出发,关注每个环节的稳定性建设。

第三,成本优化。成本是门槛,做不到一定的门槛,进入这个市场的机会都没有。除了固定资产投入,运营成本也是很重要的一部分。利用技术进行流程优化,降低各个部分的成本,是提高业务的核心竞争力的关键。

第四,安全。云计算最关心的是安全。系统越来越大,变化越来越快,所面临的内部和外部的风险也越来越大。每天无数变更升级同时进行,如何在系统变更时保持稳定,是需要面对的另一个巨大挑战。

阿里巴巴基础设施的体量和复杂性,显然都超过了人脑的处理能力,需要从新的视角,应用机器智能来解决这些复杂的问题。

image.png

智能运维实践

基于上面的挑战,我们在阿里巴巴集团各个业务场景落地了无人值守发布、无人介入运维的解决方案。

无人值守发布 (Unmanned Deploy)

全新一代发布平台支持滚动、蓝绿、金丝雀等多种发布模式。通过算法,机器学习方法对应用发布过程进行异常检测,从而避免由于代码变更导致的故障。基于大量监控数据、日志数据的积累,并有算法的加持,我们推出了无人值守发布系统。

无人值守发布 riskfree 系统上线以来,从探索到实现再到优化经历了将近三年的时间。目前业务范围定义在应用发布时故障预防。接入无人值守发布的应用在提交发布单后,系统会对整个发布过程中的监控数据进行分析,如果有异常会自动暂停发布,并提示异常指标和拦截原因,开发确认有问题则可以选择关闭或回滚,没有问题则继续发布。

线上发布之痛

以往线上发布的时候,工程师们一般做了如下“精心”工作:

  • 发布前

测试人员对代码进行全方位的单元测试、集成测试,如果发现 Bug,会让开发人员返工。这里有两个问题:第一,有些业务团队由于人员问题,根本就没有测试人员,自己既是开发也是测试;第二,不是所有的 Bug 都能通过测试发现,难免有漏网之鱼。

  • 发布中

进行预发、灰度、分批发布、金丝雀发布。在每一个环境缓慢发布过程中,要到监控平台,查看各个监控,甚至登录到机器上“刷”日志,通过自己的“火眼金睛”,期望能在众多的日志中,找到某个特殊模式的异常日志;另外,如果是多方依赖的应用,还要查看上下游的应用监控有没有问题。

  • 发布后

检查一下应用的机器是否都正常启动,将失败的机器下线或者置换掉,看看故障系统有没有报警,看看上下游团队有没有“叫”起来,如果有,得马上回滚。总之,这个过程是既耗时又耗力,而且还不能保证没有漏掉一处细节,并且不同发布人员的经验不一样,熟手和新手对一个发布的稳定性保障程度有巨大差别。

我们的解法

我们设计了一套无人值守发布系统

image.png

系统分为两大部分:

  1. 在线分析,无人值守发布系统会对系统监控、业务监控、日志监控、调用链路等维度进行异常检测,检测到异常后,会对发布单进行拦截或回滚。当用户认为无异常时,会进行反馈,继续发布。
  2. 离线分析,在第一步中用户反馈后,这个反馈数据对我们的算法非常有用,可以对我们的算法进行自动的调整。当反馈数据积累一段时间之后,异常检测的准确率就非常高。

算法平台

在发布的过程中,系统会采集各个监控源的数据,对数据的采集、清洗、存储要求很高,我们设计了算法平台来承接各个平台的数据源、算法检测、算法验证、算法上线等流程,系统架构如下图所示。

image.png

主要包含三大部分:

  1. 数据采集存储:对各个监控数据源的数据进行采集,包含系统监控、业务监控、中间件监控、日志监控、数据库监控、云监控等。数据采集后,根据不同数据的特性,存在时序数据库或者关系数据库中。
  2. 算法结果存储:对于每次检测的结果都会进行存储,以方便结果排查和效果评估。
  3. 数据打标:对每次异常检测结果,都可以打标,利用打标数据来重新训练算法,形成正向循环,检测的结果也可以通过邮件、钉钉实时通知给发布者,且可以自动对接前面介绍的运维编排自愈流程,比如,将异常的机器直接自动置换掉。

智能算法

在上面的算法平台中,我们设计了众多异常检测算法。异常检测在无人值守发布系统中有着举足轻重的地位,主要分为三个部分:

  1. 数据采集:我们综合了各个维度的监控数据、调用链路分析等,在观测的广度上是人工盯屏所不能相比的。
  2. 异常检测:我们精心调校的异常检测算法,完全不依赖于传统的基于阈值、3Sigma 等检测算法,全部自动判定,泛化能力好,支持单指标检测、多指标检测、前后对比检测、已发布未发布对比检测等多种模式,检测算法包含 ArimaKSigma、BoxplotDetect 方法(Tukey 方法)、GrubbsTest 方法、Donat 等。
  3. 排除正常波动:通过历史数据、用户反馈数据,精准过滤正常的波动,让用户得到精准的异常检测结果,示意图如下:

image.png

实践效果

无人值守发布自上线以来,覆盖了阿里巴巴集团所有的应用发布过程,为发布的安全稳定保驾护航,异常检测结果如下图所示:

image.png

至此,接入无人值守发布后,开发可以在点击发布后专注别的事情,不需要时时关注发布过程。如果发布过程出现异常,系统会通过钉钉消息、邮件通知到开发,再介入即可,如果过程是机器异常则自动替换异常机器,开发无需人工介入,发布将继续。

简单总结一下,无人值守发布是一个智能化变更故障检测和异常推荐系统。通过对变更执行过程中的多维度监控数据进行分析,判断当前变更是否会造成故障,在发布出现异常的情况下进行拦截和智能推荐。

无人介入运维-ChatOps (Unmanned Operations)

日常运维有很多类别,目前我们专注于其中两类运维工作的“无人介入”:1. 用户接到告警或事件而发起的运维操作;2. 日常运维答疑或咨询。

针对第一种情况,通过“运维诊断”,给应用来一次 360 度全方位“体检”,找到异常点并一键修复;针对第二种情况我们发布了 ChatOps 机器人来加强 DevOps 之间沟通与合作,帮助研发完成一些“脏活”、“累活”、“机械式”任务,目标是达到“0”人工介入的咨询和答疑。

ChatOps 简介

运维小蜜(简称“维蜜”),是 chatbot 在运维领域的实践,也是 ChatOps 的具体实现,是 DevOps 的重要工具。维蜜的定位是面向应用的智能 DevOps 服务助理,那么摊开来讲:

  • 面向应用:将应用的开发、测试、运维的同学集合起来,加强沟通与合作,缩短产品上线时间,降低人力成本,在产品出现问题时能够快速检测并修复,减少甚至消灭产品服务中断可能性,保证开发和运维的同学时刻处于同一个上下文中,时刻了解应用所处的状态。
  • DevOps:强调快速迭代,持续交付,力求信息共享、技术学习与合作、加快信息反馈周期。
  • 智能:理解用户输入的指令,根据命令槽位的元信息和用户自身的信息确定命令各个参数的值,通过自然语言处理和理解用户指令。

维蜜就是希望通过一触即达,秒级响应的体验,把服务做到极致,让研发、测试、运维同学幸福地工作,是我们的终极目标。

ChatOps 优势

我们再来看运维小蜜有哪些价值:

第一,从员工个人的角度来看,能够提升员工的工作效率。运维小蜜可以帮助用户处理简单、重复、枯燥的工作,例如日志查看、命令执行、开关报警、查看机器状态、查看监控、运维事件推送等。

第二,从团队沟通的角度来看,能够降低协作成本。在团队内部,ChatOps 是一种透明、合作、会话驱动的开发模式,群里所有人都知道 what/when happening & who/how fixing it ,也就实现了事件发生场景完整、透明,事件解决过程共享、可查询、可记录,便于其他同学对同类事件处理的学习参考,即所谓“Teachby doing”。

ChatOps 也是一种会话驱动的运维模式,通过聊天机器人对接各种系统后台,将软件开发、交付过程中涉及的开发、测试、运维人员、工具、环境、自动化进程等串联起来,使得聊天室里的所有人能够围绕某个特定话题进行信息共享、技术学习与合作,加快应用的测试、发布、监控、诊断,整个工作的展开全员可见。

运维机器人带来的好处包括:

  1. 方便,把很多系统的常用操作聚合到机器,就不用登陆多个系统找信息。
  2. 协作,事件发生的全部信息推送至聊天室,所有成员均能够了解你这儿发生了什么。
  3. 快速,定位问题时,能够让大家都看到所有的信息,不必让每个人重复的搜索资料。

image.png

ChatOps 实现

我们再来看运维小蜜的实现架构图:

image.png

主要包含三个模块, 分别是 dialogue manager 、nlp tools 和 intent dispatcher manager 。其中dialogue manager 用于判断用户的 utterance 的意图是什么, 是发起一轮新的对话还是承接上面已有的意图, 它调用 nlp tools 的处理器辅助判断。intent dispatcher manager 负责对接具体的业务系统, dialogue manager 处理后的结果传到它调用具体的业务逻辑触发任务的执行。

ChatOps 实践

我们再来看运维小蜜在阿里巴巴集团的几个落地场景:
1、 智能问答

image.png

2、 查询应用的监控信息

image.png

3、 机器置换

image.png

总之,ChatOps 可以帮助我们提升开发效率,提升开发幸福感。

总结

随着智能化算法的成熟和大量运维数据的积累,智能化在运维场景的落地也会越来越多,阿里巴巴运维从阿里集团大量研发场景出发,打磨出一系列智能化运维产品,并赋能中小企业。我们的理念是把复杂留给自己,把简单留给用户。智能化是运维的终极状态,未来我们将在自动化、无人化和智能化上做更大的投入,打造世界级的智能运维平台。

免费下载《阿里巴巴DevOps实践指南》

阿里巴巴合伙人和业界多位大佬力荐、何勉、陈鑫等17位阿里资深技术专家联袂出品、阿里十年DevOps经验沉淀总结、阿里巴巴DevOps落地实践一本通。

前往:https://developer.aliyun.com/topic/devops,下载完整版电子书。

image.png

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
相关文章
|
24天前
|
机器学习/深度学习 运维 监控
智能监控系统在运维中的应用与优势
传统的运维管理方式在面对日益复杂的IT系统时显得力不从心,智能监控系统的出现为运维工作带来了新的机遇。本文将探讨智能监控系统在运维中的应用与优势,介绍其工作原理以及如何有效地利用智能监控系统提升运维效率和质量。
43 2
|
1月前
|
运维 监控 安全
现代化运维管理系统的关键特征与实践指南
在当今数字化时代,现代化运维管理系统正日益成为企业提升效率、降低成本的关键工具。本文将深入探讨现代化运维管理系统的关键特征,以及实践指南,帮助企业更好地应对技术挑战,提升运维效率。
|
1月前
|
运维 Kubernetes 监控
构建高效自动化运维体系:基于Docker和Kubernetes的实践指南
【2月更文挑战第30天】 在当今快速发展的云计算时代,传统的IT运维模式已难以满足业务的敏捷性和稳定性需求。本文深入探讨了如何通过Docker容器化技术和Kubernetes集群管理工具构建一个高效、可靠的自动化运维体系。文章首先概述了容器化技术和微服务架构的基本概念,随后详细阐述了基于Docker的应用打包、部署流程,以及Kubernetes在自动化部署、扩展和管理容器化应用中的关键作用。最后,文中通过案例分析,展示了如何在实际场景中利用这些技术优化运维流程,提高系统的整体效率和可靠性。
|
1月前
|
机器学习/深度学习 人工智能 运维
《未来智能运维:AI技术的应用与展望》
在当今数字化时代,智能运维正日益成为企业提升效率、降低成本的关键。本文将探讨人工智能技术在运维领域的应用现状与未来发展趋势,展望未来智能运维的发展前景。
82 1
|
9天前
|
运维 Kubernetes Devops
构建高效自动化运维体系:DevOps与容器技术融合实践
【4月更文挑战第15天】 在当今快速发展的信息技术时代,传统的IT运维模式已难以满足业务敏捷性的需求。本文旨在探讨如何通过整合DevOps理念和容器技术来构建一个高效的自动化运维体系。文章将详细阐述DevOps的核心原则、容器技术的基础知识,以及两者结合的优势。此外,文中还将分享一系列实践经验,包括持续集成/持续部署(CI/CD)流程的搭建、微服务架构的应用,以及监控和日志管理策略的优化,以期帮助企业实现快速、可靠且安全的软件交付过程。
|
19天前
|
机器学习/深度学习 传感器 运维
提升数据中心效能:智能运维策略与实践
【4月更文挑战第6天】在数字化时代,数据中心作为企业信息架构的核心,其稳定性和效率直接影响到业务连续性和客户满意度。随着技术的进步,传统的数据中心运维模式已经不能满足现代高效、智能化的需求。本文将探讨如何通过智能运维(AIOps)策略,结合大数据分析和机器学习技术,实现数据中心的自动化管理、故障预测及快速响应,以提升整体效能并降低运营成本。
|
29天前
|
机器学习/深度学习 存储 人工智能
未来智能运维的发展趋势与挑战
随着信息技术的迅猛发展,智能运维作为关键的技术领域正日益受到重视。本文探讨了未来智能运维的发展趋势和所面临的挑战,从人工智能、自动化运维、数据分析等方面展望了未来智能运维的发展方向,同时也指出了在实践中需要克服的困难和挑战。
52 1
|
29天前
|
机器学习/深度学习 人工智能 运维
未来智能运维:人工智能在云计算运维中的应用
随着云计算技术的不断发展,传统的运维方式已经无法满足日益复杂的系统需求。本文探讨了人工智能在云计算运维中的应用,介绍了未来智能运维的发展趋势和挑战。
16 3
|
1月前
|
机器学习/深度学习 数据采集 运维
《智能监控系统在运维中的应用与优势》
随着技术的发展,智能监控系统在运维领域扮演着越来越重要的角色。本文将探讨智能监控系统在运维中的应用及其带来的优势,揭示其对于提升运维效率和保障系统稳定性的重要意义。
13 0
|
1月前
|
机器学习/深度学习 人工智能 运维
现代化运维管理:智能化的未来
随着信息技术的迅猛发展,现代化运维管理正变得日益重要。本文将探讨智能化运维管理的发展趋势,以及如何利用先进技术提升运维效率和质量。

热门文章

最新文章