本文共 6106 字,大约阅读时间需要 20 分钟。
FreeWheel创建于2007年,总部位于美国硅谷,主要业务是提供互联网视频广告投放、监测、预测、增值等解决方案。经过十多年的发展,FreeWheel的业务量不断增长,系统架构日趋复杂,公司运维团队面临的挑战也越来越大。FreeWheel的运维团队经历了从最初的小规模传统运维,到按照职能细分的运维团队组织模式,再到最近几年转换DevOps思想,进而到SRE的演变,目前正在探索实践AIOps。作为积极拥抱新技术和新思想的团队,FreeWheel结合自身的痛点对团队、工具和流程进行持续改进,其转向AIOps的例子十分典型,他们踩过的一些坑对想要采用AIOps的企业和团队也很有借鉴意义。
从公司2007年创立到现在,FreeWheel运维团队的发展大致经历了以下几个阶段:
在FreeWheel的发展过程中,业务和技术层面的多个痛点促使运维团队尝试从运维智能化的发展趋势中寻求有效的解决方案。例如:
随着近年来人工智能技术的快速发展,以及各领域运维数据和经验的积累为智能化运维提供数据基础,AIOps正成为运维的下一个发展趋势。FreeWheel希望借助这个趋势解决业务和技术层面所面临的各种挑战,进一步提升运维水平,同时推进运维团队的成长,适应公司业务、技术架构以及整体团队发展的需要。
FreeWheel的AIOps平台目前还在构建过程中,如上文所述在某些领域已经开始了探索性的工作,同时也逐步规划好未来的演进方向。
上文提到,监控层面的挑战是FreeWheel探索AIOps的重要驱动力之一,也是重点考虑的切入点。由于业务的复杂性和快速演进,FreeWheel监控系统的报警来源变得非常多样。单就监控系统而言,FreeWheel使用了流行的Nagios和Zabbix以及开源的ELK技术栈,也使用了在云端应用较多的商业软件Datadog,以及Splunk等产品。下图展示了FreeWheel目前监控体系(包括统一报警、事件收集、分析通知平台)的架构图:
左侧的所有监控平台和日志系统都是FreeWheel现在的监控数据源,通过公司的邮件系统和Slack消息系统进行集成和整合,运维团队(主要是NOC – Network Operation Center团队)重点关注这两个渠道的报警信息。NOC系统内部有数据可以进行训练,会预先设定某些条件,对报警消息的主题或内容做标识,这样NOC就能通过识别标识,进而触发图中右侧的OpsGenie自动化平台。OpsGenie提供丰富的接口,能够实现多种自动化流程和动作,例如发送即时消息、短信甚至直接打电话。这样,严重的报警或事件就能第一时间进行通知并及时得到响应。
在该体系中,Splunk和ELK可以在一定程度上做机器学习,基于大量的Metrics和日志在内部建立一些数据模型并进行训练,生成规则协助分析并解决问题,但它们并不能覆盖所有的数据源。此外,由于报警来源太多,各种数据格式不规整,在加上监控的频度也不一样,报警有快有慢,一个问题可能引发很多报警,虽然邮件系统和Slack对报警消息实施了初步的整合和归集,但如图所示,由于智能化应用程度有限,它们并未能大幅消减报警风暴,并提供有益的关联分析等功能,这样运维人员分析和定位问题的效率并未大幅提升。
为了解决上述问题,FreeWheel计划对目前的监控体系进行优化,主要是引入MoogSoft 来替换上图中邮件系统和Slack所占据的中心位置,使后两者回归通知渠道的本职功能,而MoogSoft将进行:
经过如上处理,各个数据源关于同一个事件的多个报警通过机器学习的模型分析汇聚成一个报警,避免了报警风暴造成的困扰,使运维人员可以快速准确地定位到问题。OpsGenie再触发流程及时通知相关技术响应人员,处理报警的效率就会很高。这样优化后的监控体系架构如下图所示:
此外,在分析报警事件的过程中,基于相关性的分析,Moogsoft不仅可以为运维人员提示与当前事件类似的过往事件,还可以通过时序分析提示当前事件所聚合的成百上千报警信息中可能的根源(root cause)报警信息,以协助加速问题的分析与解决。在处理完某个报警事件后,运维人员还可以将所积累的知识标注和关联到系统中,以支持系统模型的不断提升。
在监控层面,如上文所述,FreeWheel另一个挑战是期望在直播赛事过程中先于客户发现问题。这就需要能做到实时监控并有效预警。作为上述监控体系的补充和增强,FreeWheel的监控团队还构建了集中统一、时效性更高的监控平台PQM,如下图所示:
该平台采样间隔粒度更细,数据库选用专为实时监控设计的时序数据库,也引入了Kubernetes原生的Prometheus监控平台来采集数据。在报警爆发以后,监控平台可以自动做出响应,同时这套监控系统还会基于非实时流量对业务数据做异常流量的自动检测,再结合上述监控体系智能化技术进行辅助决策,就可以很好地定位问题甚至预防问题。
在监控层面之上,FreeWheel也探索使用AIOps技术协助解决一些业务挑战,比如欺诈和无效流量(IVT)的识别。在机器学习方面,通常需要一个数据集合来训练模型,然后才能对其进行测试,但是建立一个准确的、表示复杂机器人流量的数据集几乎是不可能的,也是非常昂贵的。但广告决策平台的特殊定位,使得FreeWheel有机会解决数字广告生态系统中无效流量的问题。具体而言,应用机器学习理解最终用户的行为,形成模式构建模版,之后用聚类算法来模拟流量行为,这样可以识别突发流量,对流量进行有效的评估,更好地检测欺诈行为。FreeWheel已开始进行初步的探索,结合广告服务器的事务日志数据进行分析,帮助做出有关IVT检测和删除的有效决策。
在监控层面之下的基础设施,FreeWheel也探索使用AIOps技术来优化相关的运维工作。比如针对网络基础架构所面临的挑战,FreeWheel在积极的实施SD-WAN技术解决方案,该技术允许针对数据中心间流量的数据包进行动态重新路由,其中的核心技术 First-Packet iQ可以根据某个应用的首个数据包进行应用识别,使其远优于目前典型的数据包检测以及端口检测方法。这种智能化的技术有助于我们更快地识别恶意流量,减少被攻击的可能性,并优化基础设施的使用效率,更好的保障关键业务的运行,也减轻了基础设施运维的压力和风险。
总体而言,在逐渐探索采用AIOps技术之后,FreeWheel团队能明显感觉到报警繁多的痛点得到了极大的缓解,一些智能决策的支持也让团队的效率明显提升,尤其能帮助运维团队快速有效地定位、识别、解决问题,降低MTTR。对于FreeWheel这样业务分布在全球的公司来说,AIOps平台和工作流程的优化能切实解决很多问题,具备很好的应用前景。
FreeWheel的运维团队经历过DevOps, SRE和AIOps的各个发展阶段,转型过程中也才踩过一些坑,对这几种运维实践有比较深的体会。
总体而言,DevOps是一种思想的转变和进化,涉及到撰写代码、测试、发布、上线各个环节,以及相应技术手段的推进和落地,目的是打通开发和运维之间的边界,更关注从开发到生产之间的流程如何快速迭代,从而达到缩短周期并提高产品质量的目的。
SRE更关注运维阶段,强调用工程的思想和手段来看待和解决运维问题,包括监控、报警、容量评估、系统扩展等,以及如何早期介入产品研发的架构决策,以更好地保障在线产品SLA的目标达成。
AIOps则贯彻整个运维领域,从硬件资源规划、管理、实施,操作系统安装配置,到中间件及应用软件的上线、变更,以及后续的监控、报警、维护、优化等各方面都需要关注。基于海量的信息源以及大数据分析技术,结合大量运维专家的丰富经验及人工智能算法,在各个领域、各个阶段以更自动化、更智能化的方式推动运维工作的变革。
AIOps的概念归根结底是对运维规则的智能化发现与实施,即将人工经验总结的过程变为自动学习及输出实施的过程,其目标是利用大数据、人工智能及周边技术实现对运维效率、质量、成本等方面的优化和提升。
AIOps是运维领域发展的必然方向,凡是具有上述需求的企业,包括互联网企业以及数字化转型中的生产制造企业等,都可以考虑尝试AIOps。FreeWheel运维团队向AIOps演进是源自于自身的需求,实践过程中虽然踩过不少坑,但也确实解决了很多问题。对于决心实践AIOps的团队或企业,FreeWheel基于自己切身的经历给出了一些建议:
希望正在看文章的你也能从FreeWheel的经历中吸取经验,结合自己的实际情况将运维工作做得更好。
作者简介
刘显:Director, FreeWheel Operations, APAC。17年IT领域从业经验,涉猎开源生态系统,高性能、高可用技术解决方案,对大数据、容器化、云计算等技术领域有非常浓厚的兴趣。目前带领FreeWheel北京运维团队在DevOps、SRE及AIOps方向进行相关的探索和实践。
杨顺祥 :VP, FreeWheel Operations, APAC。多年IT从业经验,先后服务于IBM及中国平安集团,参与负责云平台和行业解决方案的研发、实施和运维工作。2018年11月加入FreeWheel,负责亚太地区运维团队相关工作。
转载地址:http://cbupx.baihongyu.com/