zl程序教程

您现在的位置是:首页 >  Java

当前栏目

DNSPod十问王万龙:AIOps为什么还没成为主流?

2023-02-18 16:42:41 时间

王万龙,腾讯云监控产品中心总经理。2012年入职腾讯,参与、主导和负责朋友网、QQ空间、QQ小程序、公众号、QQ基础平台业务,在多年的开发过程中孵化了UGCLog统一日志平台、XProf全链路专家系统等日志、链路一体化监控平台,在研发效率提升工具建设方面有丰富的经验。曾任职于迅雷,先后参与并支持了迅雷看看、迅雷游戏等重要业务。华南理工大学计算机科学与工程学院,智能演化算法方向。

田超,腾讯云企业中心总经理、音视频应用平台总经理,负责腾讯云用户增长、DNSPod业务以及企业应用相关产品。同时也是资深用户增长专家,大数据技术专家,曾任应用宝增长平台总经理,摩拜单车技术副总裁。长期致力于对企业数字化相关研究。

1

田超:你从华工毕业后先在迅雷工作了一段时间,负责迅雷看看、迅雷游戏等重要业务。当时的迅雷是很多优秀程序员的大本营,现在回看的话,你觉得迅雷给你最大的启发或者让你学到最多的是什么?又是什么契机让你决定从迅雷来到腾讯?

王万龙:当时毕业后去了迅雷,主要是我投了腾讯校招被拒(笑)。在迅雷工作的4年时间里,由于这是我的第一份工作,我最大的改变莫过于由一个学生蜕变为职业开发者

虽然以前在学校也写代码,但更多是做一些高校实验室项目,到了迅雷以后,我可以真正负责上亿人在用的互联网产品,也了解到大型互联网公司产研、运维团队如何协作,以及项目运作的流程和产品生命周期。

我刚开始是做网站后台开发,后来也感谢领导给的包容和机会,我后面去尝试个人更感兴趣的迅雷看看网页直播播放器,再后来我带领团队做迅雷游戏,游戏的前台和后台都有涉及,因此我也丰富了自己的技术栈,能力提升是非常明显的

来腾讯的契机,是因为我希望进一步学习和成长,锻炼自己在海量用户的架构设计能力和海量服务的开发能力,当然更大的公司也意味着更多的机会,于是我在2012年加入了腾讯。

2

田超:从2012年算下来,你现在已经是10年老鹅了,这么多年你负责过朋友网、QQ空间、QQ小程序、公众号、QQ基础平台业务,到现在负责腾讯云云监控,你印象最深的项目是哪个?能给我们分享下其中的故事吗?

王万龙:最近的一个项目是云监控,但如果说印象最深刻的话应该是QQ小程序

QQ主要是做IM(即时通讯),当然也涉及到QQ空间等社交模块,但从没做过小程序,所以我们可以说是从0开始的一个项目;并且当时微信小程序已经在市场上占据一定份额,我们作为追赶者的压力不言而喻。

QQ小程序

我们的研发人力非常紧张,包括我在内后台只有4个同学,前台大概5-6个同学,给我们的开发时间只有半年。不过也正因为我们人少,所以比较容易找到会议室做封闭开发(笑)。

我回忆起那时候,印象最深的是我们都极度专注,目标非常明确,对于一个开发来说其实最喜欢的就是这种感觉。

此外,做QQ小程序时正值腾讯的“930”变革,提倡开源协同、提升研效,于是我们也自己做了XProf全链路监控系统等研效和监控工具。这么说来,我和监控还是挺有缘分的。

3

田超:云监控领域最近讨论最火的就是“一体化监测”,强调监测方式的“全面可监测”,腾讯云监控也在今年开始了一体化的进程。从内行人的角度来看,你认为一体化监测为什么会成为一种趋势?腾讯云监控目前在一体化进程取得了哪些成果?又遇到了哪些难点?

王万龙:监控不是一个新的业务或领域,“无监控,不运维”,有人的地方就有江湖,有系统的地方就需要有监控

历史上经典的监控产品有Cacti、Zabbix。云原生时代也涌现了非常多优秀的监控项目,比如Prometheus、Grafana、Skywalking。

腾讯云托管Prometheus和Grafana给自建监控系统上云用一个新的选择

当然,腾讯内部也有很多沉淀了多年、蕴含无数腾讯开发运维经验的老牌监控产品,我们用得比较多的是单维的Monitor和模块间调用系统(简称模调系统,已服务腾讯超10年以上);还有一些对基础设施的监控(机器、CPU、内存使用、磁盘等的机器技术指标监控),我们叫TNM2;以及像哈勃这样的多维监控系统。

但是,这些系统都有各自的侧重点,主要还是聚焦在基础设施的指标监控。比如说TNM2,可以看到机器各个核的CPU、内存使用、应用程序、内存和操作系统、磁盘的一些IO。此外,还有聚焦在业务的指标监控,比如说模调就是用于业务打点的指标监控。

以前,看指标问题要去一个系统,看日志问题又要打开另一个系统,并且用户还要自己去理解指标和日志是怎么关联的,用户体验不太好。腾讯原来的监控系统主要还是聚焦在指标上,在链路和日志方面相对建设得不是特别完善。

最近几年,当全链路和可观测概念提出来之后,各个系统逐渐把指标、链路、日志这些黄金指标做打通和融合,把原来过于离散的各个系统,变成在一个系统内就能完成从巡检到排障,同时基于大屏可视化技术,我们能在大屏上看到整个系统的基础架构,云上成千上万的节点和中间件以一体化的方式展示出来,那么用户就可以在短时间内发现、定位并解决系统的问题。

可观测三大元素:指标、日志、链路

我们积极响应公司开源协同的导向,和多个团队协同共建,以及从Oteam孵化,补齐监控能力,并将腾讯这么多年在开发运维方面的经验结晶沉淀整合到一体化的监控产品,比如图表体验、链路整体的操作体验等;把原来单个的云产品整合到一个总的产品;我们也积极与开源监控做融合,在数据、协议、采集方面是能完全兼容的。

腾讯云监控产品矩阵

难点主要是历史架构的改造问题,监控涉及的数据面非常广,因此我们需要去打通底层非常多的数据环节,这就意味着比较高的改造成本。同时,我们的监控还服务于大量的外部用户,因此我们在改造时还要去确保用户侧的稳定和高质量运行

4

田超:我了解到,现在云监控的热门产品前端性能监控(RUM)其实是由内部的监控系统孵化而成的。以前只需要满足内部业务需求,而现在要面对海量行业用户的检验、应对更复杂的使用场景,你们在技术层面如何做出调整以适应商业化要求?

王万龙:RUM(前端性能监控)孵化于我们内部优秀的前端监控叫TAM Oteam,通过开源协同共建的方式来运作,多个事业群的同学都有投入开发。

腾讯云 前端性能监控RUM

在商业化过程中,要考虑的点确实比我们内部做一个Oteam(腾讯内部一个公司级跨团队的开源协同小组)多太多。以前我们的Oteam主要面向腾讯内部的开发人员,他们的开发框架成熟度基本不会出现太明显的参差不齐的情况。

商业化就意味着面向众多外部用户,他们的研发成熟度、规模和成本偏好都不一样,例如有的用户是头部互联网公司,有的则是个人开发者;有的用户有几十万个节点,有的只有两台机器;有的用户预算不差钱,有的则对成本非常敏感。相应地,我们在商业化的时候需要做分层阶梯化处理,例如结合多种存储模型,因为不同的存储模型就有不同的成本和效率。

此外,外部用户是“用脚投票”的,一旦产品的接入门槛太高,用户就会认为体验不好,不会像内部使用那样对门槛比较包容。

当然,我们比做Oteam时多了很多接入体验的售前售后工作,需要打造配套工具来快速解答用户在使用系统时的一些疑惑。

5

田超:APM是IT运维管理(ITOM)行业的重要分支,实时监控并管理企业应用性能和微服务性能,相当于是应用程序的“私人医生”。APM产品主要分为两种,一种是主动模拟用户真实体验,客户应用不需要改动;另一种是通过字节码注入实现探针监控功能。这两种模式分别有什么优劣之处?你认为下一代监控技术属于无侵入监控吗?

王万龙:主动模拟用户真实体验的监控,通俗来说叫拨测,以使用者或第三方的视角去做监控,把要监控的系统当作一个用户,向我们的目标系统发请求、调接口,看这个接口成不成功。

这对系统的开发者来说透明的,系统本身不需要做任何改造,由监控系统去做拨测脚本的编排和部署。

当然,这种监控也有一定的弊端。我们当然希望拨测越实时越好,因为即使一分钟拨测一次,这一分钟内的任何时间点都有可能出现问题,但是,拨测频率越高,相应的资源消耗也越高,因此需要在成本和实时性之间做出取舍

腾讯云 云拨测

字节码注入的监控看似很完美,开发者把我们的探针加载到应用程序内,这个探针会自动做数据收集。因为它是以第一视角去观察系统的状态,所以比拨测更能感知到程序的运行参数状态

但是,字节码注入依然受到语言和运营环境的限制,并不是所有语言都能完美支持和覆盖,比如可能对Java、.NET、Python、NodeJS的覆盖比较好,但对C++、Golang等其他语言的支持并不是特别好。

腾讯云 应用性能观测APM:无需修改代码,只需安装探针,即可全方位保障业务系统的稳定性和可用性

拨测、字节码注入,以及业界比较火的eBPF,其实都属于无侵入监控。无侵入就意味着不需要改代码,对于开发者来说,每改一行代码都涉及到成本和开发周期,那么这种降低监控系统接入门槛的无侵入监控必定会大受欢迎

所以说,无侵入监控肯定是未来的一个方向,只是这种“无侵入”能做到什么程度。比如拨测是完全零侵入,字节码注入是少量的侵入,还有一种是直接通过应用程序埋点的侵入,这种就要一行一行改代码。

我觉得最近2-3年,eBPF和探针的无侵入应该是比较热门、机会非常大的领域

6

田超:云原生时代到来,虽然微服务和分布式部署加快,但发生故障的时候,微服务化以及分布式的依赖关系会导致调用错综复杂,同时,因为在容器化环境下运行,环境动态性增强,往往运维去排障时发现环境已经动态销毁或者发生了变更,这时传统的监控技术已经很难完成排障。腾讯云监控在应对云原生场景有什么经验可以分享?

王万龙:在云原生时代,一方面我们要面临数据量爆炸和数据维度爆炸的挑战,监控系统的原则就是将数据“应收尽收”,这也是为什么我们能去做AIOps,因为涉及AI就一定需要有大数据的支撑。

另一方面,数据的动态性极大地增强,例如容器与进程可以随时创建和销毁,同时即席查询(Ad Hoc)的需求变大,用户查询的条件不再只是输入一个维度值,变化非常灵活,这方面的挑战也很大。

我们在应对这些问题时,主要的破解方法就是结合云的特点,同时也借鉴一些开源系统优秀的设计思想。例如,监控数据的采集主要是“推”(Push)的模式,用户通过上报把数据推过来,而业界的Prometheus(普罗米修斯)采用的是同时支持Push and Pull的模式,而我们云监控也是推拉结合的方式,除了传统的“推”,我们还可以去用户的系统上主动“拉”(Pull)。

针对云原生时代数据动态性、云上漂移的特点,我们也与Service Mesh技术深度融合,可以在监控系统更好观察和动态发现容器的产生和销毁动作,知道现在的动态性漂移到哪里、容器的位置在哪里,也能主动拉到它的状态。此外,我们也结合分布式技术和边缘计算技术,通过angent在用户的容器内动态发现一定量的数据片段和数据样本,结合缓存基数,用中心化的数据收集到统一的一体化监控存储里。

在处理海量数据方面,我们会面临成本的挑战,因此我们也去优化了数据采样的技术。如果我们按照固定比例采样,虽然成本会压缩,但有可能出现需要的数据反而没采到的情况,然而直接百分百采样的成本又太高,所以我们做了一种既有固定比例采样,也有头部采样、尾部采样的技术来解决这个问题。

我觉得监控系统要真正解决云原生的问题,那么它自己就必须是云原生的。举个简单的例子,我们在做一体化监控工作系统时,曾讨论过用Statefulset的工作负载还是用Deployment的工作负载,最后我们认为要足够云原生的话,还是要坚定地用Deployment。

同时,我认为监控系统还需要提供足够的Open API给到第三方。我们发现很多云监控用户希望能够访问我们的内部数据,把数据拉到他们的系统,那么Open API的方式就能支持更丰富的数据应用。

7

田超:如果说传统的监控技术是帮用户“被动发现问题”,那么现在为了进一步提高运维效率,还需要“主动提出问题”、“主动解决问题”,因此AIOps应运而生,基于AI和专家规则自动发现问题,做到真正的根因可解释性,实现故障的快速定位和应急恢复。在你看来,AIOps能否真的取代ITOM,成为新一代运维模式?腾讯云监控在AIOps有哪些布局?

王万龙:即使目前AIOps领域有做得比较前沿的产品和布局比较久的厂商,但AIOps还不能完全取代ITOM

我认为新一代的运维模式要满足三个部分:

1. 发现问题

2. 告警通知

3. action(怎么去解决)

现在的AI已经能够比较好地解决前两个部分,结合模型去探测系统的异常,并且能够智能地告警,但第三个部分基本很少有系统能涉及,现在的AI还无法自己做决策和action

我们云监控团队只有几十个人,所以我们会与腾讯集团内的很多AI团队做“强强联合”,用云监控的大数据采集与处理能力,结合集团整体的AI能力,目前我们已经实现了包括动态阈值、默认告警策略学习能力。

后续,我们打算往深水区布局,希望不仅能够通过AI感知和告警系统的异常状态,同时还能智能决策与智能调度,比如说发了一个版本,然后通过AI发现问题后,可以智能地做版本回滚。

8

田超:很多报告预测,2022年50%的大型企业会采用AIOps,并且比例会一直攀升。如果运维能够交由AI做决策、分析与故障修复,实现无人值守运维,那么是否意味着运维工程师们要集体失业了?

王万龙:这个大家不必担心。就像最近的ChatGPT这么厉害,那它现在能取代开发工程师吗?至少在我们这代人的时间里,答案都是否定的。

AI短期内无法取代运维工程师,主要是人有很多创造力分析和经验积累,并且还有很多非技术性的决策

例如我们监测到一个系统的异常,但恢复后有可能造成另一个系统的异常,这时AI很难判断要不要恢复这个系统,这里还是需要人去进行判断。当然,AI技术再演进几十上百年,我们是不敢想象的。

9

田超:随着监控技术的逐渐演进,许多企业和个人选择投向开源的怀抱自建监控,前端监控Sentry,链路Opentelemetry/Skywalking,指标Prometheus。针对这些优秀的开源系统,腾讯云监控的产品优势在哪里?对监控业内开源系统的迅猛发展又有什么样的看法?

王万龙:我们和这些开源系统并不是竞争关系,而是从中学习了非常多优秀的设计和思想,比如像Sentry基于异常日志的告警、OT(Opentelemetry)链路和指标的数据融合设计。

但这些开源监控系统都比较偏垂直领域,当面对云上不同规模的用户需求、海量的节点和纷繁复杂的架构时,会有一些捉襟见肘。比如说Prometheus是面向单机的,如果用户的数据量非常大,它会遇到一些问题。

此外,还有监控系统的自监控问题。例如你用开源系统搭建了一个Sentry,那么监控系统自身的成功率又由谁去监控?而用云上的系统,系统的成功率其实由我们去维护,用户就不需要关注单机、自监控等问题,云上一体化的监控系统对用户是透明的。

所以说,腾讯云监控的角色,就是去做一个更加一体化、更能满足用户需求的监控系统。云上用户迫切需要一个能和腾讯云IaaS的基础架构和基础设施无缝结合,又能动态快速伸缩,并且不需要操心自行搭建开源系统这样的产品。只要能为用户带来价值,云监控系统就有生存的空间。

10

田超:国内外目前在可观测领域的技术发展现状大概是什么样的?你如何看待国内可观测厂商SaaS发展的前景?

王万龙:目前国内可检测领域的产品分为两种。一种是云厂商亲自做的基于自身架构的可观测产品,例如我们腾讯云的云监控、阿里云的ARMS;另一种是独立厂商,比如博睿、听云、云智慧等做的可观测产品。

云厂商自己做的产品,在基础设施数据的采集方面有天然的优势,用户甚至没有任何感知;而独立厂商像博睿就必须要求用户去安装它的angent,有一定的门槛。

从国内整体市场来看,APM产品占据更多的市场份额,APM又以私有化的市场为主

对比国外的话,比较标杆的产品就是一个可观测监控SaaS厂商叫Datadog。国内云的发展比国外晚几年,但有Datadog这么好的学习目标,我理解3-5年后,国内公有云上的可观测SaaS就能到达国外现在的状态

11

田超:做了这么多年的程序员,我很好奇你心中对“优秀程序员”的定义是什么?我们经常调侃程序员会有“35岁危机”,你是怎么看待的?

王万龙:我理解一个优秀的程序员首先是比较纯粹的。这代表了TA做事情很专注,不会受到太多干扰。

其次,要有一定的学习能力和责任心,这就代表TA可以快速吸收很多知识,因此技术栈会更全面,技术的深度也会优于常人。

对于这个35岁危机,我想说态度决定一切,而年龄并不是一个决定性因素。如果我们没有很好的心态和学习能力,可能不到30岁危机就已经来了;如果心态很好,35岁也没有任何问题,我们公司就有很多优秀的程序员顶着35岁“高龄”,依然能完成很好的产出。

所以并不是说35岁这个年龄会带来危机,而是你的想法带来的危机。

12

田超:最后我们展望一下未来吧,你认为未来的云监控技术会往什么方向发展?

王万龙:一句话来总结的话,未来云监控技术的发展趋势必然是更少的人工参与。这并不是意味着要取代开发或运维工程师,但他们的参与度一定会大大降低。

更细来说,无埋点监控、eBPF、监控拨测都是很好的方向,开发工程师无需改代码就能接入到我们的监控系统,甚至对工程师来说是无感知的。

另外,AIOps也是一个方向。运维工程师无需提前预设一些规则,系统会根据历史上的运行状态和动态去智能预测未来的状态,与预测值不一致时就会发现系统异常并告警出来,以及还会有我在前面提到的智能诊断、智能调度、智能恢复。

还有一个比较重要的方向是专家系统。开发和运维工程师不需要对系统非常熟悉,也不需要在收到告警后一行行看代码、日志等,专家系统会给出一个专业化的建议。

未来,人工会越来越贵,用AI去解决人的问题,其实更能解放人的创造力,云监控技术就能取得更大的突破。

* 图片来源:腾讯云监控

 END  

栏目统筹 | 赵九州

责任编辑 | 黄绮婷 庄雅捷 张洁

你有用过腾讯云监控的产品吗?你认为AIOps会让运维工程师失业吗?欢迎在评论区分享你的看法~点亮“在看”+评论区留言,阿D将在12月28日(周三)下午15:00随机抽取2位粉丝,送出DNSPod定制咖啡杯~

《DNSPod十问》是由腾讯云企业中心推出的一档深度谈话栏目,通过每期向嘉宾提出十个问题,带着广大读者站在产业互联网、科技领域精英的肩膀上,俯瞰各大行业发展趋势和前沿技术革新。

栏目嘉宾的领域在逐渐扩大,从最初的域名圈、站长圈到程序员圈、创业者圈、投资圈。腾讯副总裁丁珂、CSDN董事长蒋涛、Discuz!创始人戴志康、知识星球吴鲁加、腾讯安全学院副院长杨卿等技术大咖和行业领军人物都在这个栏目留下了他们的真知灼见。

《DNSPod十问》在腾讯云生态圈也极具影响力和活跃度。我们在腾讯内部平台——DNSPod公众号、腾讯中小企业服务公众号、腾讯云公众号、腾讯云主机公众号、腾讯云服务器公众号、腾讯云助手、腾讯乐问、腾讯码客圈、腾讯KM平台、腾讯云+社区、腾讯云+大学等平台累计关注度高达数十万,同时我们积极开拓与外部媒体的合作,如腾讯科技、腾讯新闻、新浪微博机构号、CSDN社区技术专栏、知乎机构号、企鹅号、搜狐号、头条号、开源中国技术社区、IT之家、InfoQ社区资讯站点、Twitter机构号、Facebook机构号等媒体阅读总量逾百万。

未来,我们希望这个栏目的影响力会覆盖更加多元的受众,把更多正确的理念对外传递出去。欢迎各位读者在评论区留下你想看到的嘉宾和想问的问题,我们邀请你共同成为《DNSPod十问》栏目的提问者与发声者。

合作联系:

qitinghuang@tencent.com

▼公众号后台获取二维码

加入DNSPod官方用户群