RTE2021 回顾丨实践中的摸爬滚打,AI OPS 落地之路
本文整理自声网Agora SD - RTN 网络传输质量负责人于涛在 RTE2021 实时互联网大会上的演讲分享。他在演讲中针对传统 OPS 痛点、AI OPS 的优势以及 AI OPS 工程化的难点进行了全面的分析,并分享了声网研发团队关于 AI OPS 落地实践过程中的宝贵经验。
▲图:声网Agora SD - RTN 网络传输质量负责人于涛
01 为什么需要 AI OPS
需求往往是从生产中的痛点出发,每一项新技术都是从需求的孵化过程中诞生的。目前传统的 OPS 主要存在三大痛点:7 D × 24 H 无间断运维保障、运维执行的质量以及执行效率问题。
1. 7 D × 24 H
服务的高可用依赖 7 D × 24 H 的不间断运维保障,组建 7 D × 24 H 团队的难度大,成本高。而且随着业务规模的增长,以及产业的全球化,以上问题的难度会线性增加。
2. 质量
业务运维是一个相对比较“吃经验”的工作,这也就是为什么传统运维新人入职往往有比较长的入职培训以及熟悉业务过程。经验的差异会引擎运维处理质量不一致,或导致异常没有捕捉,或导致处理不到位,亦或处理过于激进,这都将直接影响客户的体验。这一点 AI OPS 是能够较好地弥补的,训练良好的算法能够将执行质量逼近经验老道的运维人员群体决策的结果的同时,保持执行结果的高一致性。
3. 效率
运维效率对用户的体验也至关重要。服务质量异常的时候,如果处理需要 1 小时,用户的体验就受损 1 小时;如果处理时间只有 5 分钟,就只影响 5 分钟。以机房网络质量回退来说,经验丰富的人员从报警到处理完成的平均耗时也在 15 分钟左右,加上线上服务规模之大,故障又是相对随即发生的,让有限人数的团队监控如此大规模的服务集群的同时,还要保证所有异常高效地处理异常,传统运维已经捉襟见肘。但是自动化的 AI OPS 在执行效率上却有着先天的优势。
回顾来看,这些传统人工 OPS 上的痛点恰巧是 AI OPS 最大的优势所在:
7 D × 24 小时:机器是不需要睡觉的。
质量问题:经过训练的模型它的执行质量是稳定可靠的。
效率问题:自动化的AI OPS系统效率远高于人工。
02 AI OPS 工程化的难点
在具体实践的过程中,AI OPS 的工程化落地还存着诸多的困难。
标准化:从 AI OPS 行业来看,整个行业正处于期望膨胀期,技术和工具不断推陈出新的同时行业缺乏标准,没有成熟稳定的平台和工具链。从公司发展的角度来看,AI OPS 处于探索阶段,在没有标准化的情况下进行工程化成本和风险都非常大。举个例子,这就好比我们要将现有服务容器化上云,却没有如今已经非常成熟的 Docker,K8S 工具,同时各云厂商也没有针对容器做各类适配和兼容,这会增加大量的架构设计和开发工作。这就是 AI OPS 落地过程中面临的第一个比较棘手的问题。
期望不一致:在企业中,业务、运维、算法乃至大数据团队对于 AI OPS 的理解往往是不一样的。过去几年智能驾驶的事故新闻大家应该都还有些印象,其中一个原因就是人们对智能驾驶的期望是"真正的自动驾驶",然而当前阶段的 AI 是很难脱离人去完全自主运行,当驾驶环境超出AI的能力边界的时候驾驶员没有接管,悲剧便产生了。目前 AI 是一个非常时髦的词,但是不同专业的人对其的期望不一样,不一致的期望导致信息差,不仅影响协作进度,还可能引起线上故障。
基础设施要求高:巧妇难为无米之炊,好的 AI 除了优秀的算法,还依赖高质量的数据,AI OPS 也不例外。以全球化的云服务供应商为例,要做好 AI OPS 的基础是做好大数据,除了要做到实时高吞吐的数据中心,还要提供流式计算接口。
03 Agora 的 AI OPS 落地最佳实践
针对 AI OPS 落地的具体实践过程中出现的问题,我们研发团队又是如何解决的呢?
短期与长期目标的制定
对齐长期目标,长期目标的制定能够帮助团队明确发展方向,有利于梳理前期工作重点。
短期目标是将长期目标拆解为阶段化目标,其主要作用是尽快把我们的项目 AI 算法落地,还要为长期目标打基础,一些公共组建要建立起来。
团队间对齐期望,能力互补
由于 AI OPS 是多团队的协作,它是 SRE、业务、算法、大数据四个团队紧密协作下的产物。在此过程中,对齐期望做好团队协作至关重要。
首先是团队之间的能力理解。我们业务团队需要主动了解算法团队的能力,算法团队除了实时的异常捕捉能力、单指标的时间序列异常识别,还能提供用量预测能力,根据数据的质量和用量的规律,算法推测甚至能够提供长达以周或者月为单位的预测。对于 SRE 来说,这在流量规划和成本控制方面能够带来很大的价值。
其次是边界的理解,这个很重要。对其他团队能力边界的模糊认知,可能会酿成线上故障或者是悲剧。机器学习的质量依赖于人工标注的数据质量,算法的能力边界可近似于标注人(群)的能力边界。如果业务团队对算法过度信任,线上故障可能就不可避免了。假设业务团队将有问题的算法应用到一些非常核心的服务,并且完全脱离人的约束,这就好比完全脱离人的自动驾驶,根据墨菲定理,必然出事。
当了解到能力和边界之后,团队间就需要通过互补来达到整体最优。AI在其最擅长的领域做到高质高效降低人工精力消耗,传统运维则处理一些意外情况保证整体可用性。
解耦业务,运维和算法
在落地的过程中至关重要的一步,就是将运维平台服务化和 API 化。
何为运维?何为落地?运维是指服务层/业务上的操作,那么 AI OPS 的落地就是算法结果作用于业务。但是如果在算法层直接调用业务运维接口或者直接修改数据库,那么首先风险是非常大的,其次耦合非常严重,反过来对于算法,业务和运维开发迭代效率都非常低。这对真正摸索阶段亟需快速迭代的整个项目组来说,无疑是非常大的困难。
为了解决上面的问题,我们将 AI OPS 拆分成三层:
第一层:AI层
第二层:决策层
第三层:执行层
这三步做完之后,就可以把 AI 和运维解耦,其好处有3点:
一: 算法,决策,执行层可以独立开发,提升模块研发效率。各模块尤其是算法可以进行快速的迭代更新,同时可以避免"牵一发动全身"的情况,迭代的成本更低。对于探索阶段 AI OPS,解耦是寻求落地的路上不可或缺的环节。
二: 系统更健壮。决策层可以做更多防呆和安全策略,提高系统鲁棒性。在面对单一算法崩溃,或者结果输出异常,处理空间更大更优雅。
三: 可扩展性强。标准化的输入接口对于后续算法甚至其他自动化脚本的接入提供了更为便捷的接入方法。实质上在公司内部完成了 AI OPS 的标准化。
将多指标转化为单个综合指标——化繁为简
多指标异常检测比单指标的更为复杂,对数据质量和标注质量要求更高,其落地也更加艰难。这时业务侧可以充分发挥互补能力,尽可能把多指标转换成一个综合指标。例如,延时、丢包和抖动都会影响网络传输体验,将其转化为一个综合指标优质传输率。该指标不仅能够准确反应网络质量,对于算法团队训练单指标的算法模型也相对比较简单,加速了 AI OPS 的落地。
“强大”的算法不一定是合适的算法
算法是 AI OPS 的核心。强大的算法不一定是最合适的算法,还关乎到成熟度和鲁棒性。
比如发动机是汽车的动力核心,强大的发动机往往需要更高标号的汽油。同样地,更强大的算法(例如深度学习)需要更高质量的数据。目前这个阶段,要求更高质量的数据,涉及了一个很长的链路。在业务层要定义合适的指标;在传输的过程中,可能会有数据的丢失,或者脏数据;在算法训练方面,需要大量的人工来标注。考虑到这三点,在 AI OPS 早期的挑战是相当大的,选择当前阶段适合业务的算法能更有效的推动落地。
此外还要考虑业务。算法有两个关键指标:准确率、召回率。如果业务本身容错比较大,可以放弃一些准确率,扩大一些召回率,这样对于用户体验也是比较好的。
04 展望
基于长期目标考虑,我们希望将来能够包含更多的探索内容。一方面希望把成本和效率考虑进来,另一方面也希望平台能够接入更多的服务。
往期回顾
RTE2021 回顾丨基于 V-PCC 框架的点云视频编码与重构技术
RTE2021 回顾丨面向 RTE 场景的新一代 API 探索和实践
RTE2021 回顾丨一增两减,助力深度学习在实时推理场景中的应用
RTE2021 回顾丨面向 RTE 场景的新一代 API 探索和实践
RTE2021 回顾丨一增两减,助力深度学习在实时推理场景中的应用
RTE2021 回顾丨WebRTC 漫漫成长路,下一个十年将走向何方?
RTE2021 回顾丨基于深度学习的音频编/解码的实现与落地挑战
RTE2021 回顾丨实践中的摸爬滚打,AI OPS 落地之路的更多相关文章
- 编程实践中C语言的一些常见细节
对于C语言,不同的编译器采用了不同的实现,并且在不同平台上表现也不同.脱离具体环境探讨C的细节行为是没有意义的,以下是我所使用的环境,大部分内容都经过测试,且所有测试结果基于这个环境获得,为简化起见, ...
- 03--(二)编程实践中C语言的一些常见细节
编程实践中C语言的一些常见细节(转载) 对于C语言,不同的编译器采用了不同的实现,并且在不同平台上表现也不同.脱离具体环境探讨C的细节行为是没有意义的,以下是我所使用的环境,大部分内容都经过测试,且所 ...
- 【RPA之家转载】苏桦 华为RPA 企业财务实践:RPA与AI结合,实现百万级票据、合同处理自动化
[RPA之家转载]苏桦 华为RPA 企业财务实践:RPA与AI结合,实现百万级票据.合同处理自动化 看到大会的主题,说每一位开发者都了不起,说白了我也非常的感触,因为我自己本身也是一个开发者,我从01 ...
- 记一次小团队Git实践(中)
对于初学者,从使用上先入手,往往学的最快,并从中汲取教训,再回头更深入的学习,效果尤佳. 安装git 安装git自不必说,mac已经内置了git,linux下一个命令就能搞定,windows下需要下载 ...
- Illustrator软件中eps和ai格式的区别
转自Illustrator软件中eps和ai格式的区别 AI是ILL特有的格式,EPS格式是在排版领域经常使用的格式.AI中的位图图像是用链接的方式存储,EPS格式则将位图图像包含于文件中.对于含有相 ...
- 实践中总结——理解haslayout和BFC
1.HASLAYOUT 首先,haslayout翻译成中文就是:有布局. 所谓布局,指的是一个元素可以对本身和里边的元素进行尺寸计算和定位.这里只是谈IE6/7,据说微软之所以不是对所有元素默认有布局 ...
- 谈谈在DevOps实践中,感觉最重要的这三个技术……
从国内众多DevOps实践中,我们能看到下面三个技术尤其重要和火热: 容器:容器从根本上解决了软件对环境的依懒性,解决了各个环境之间的差异问题:它可以加速部署的速度,提高部署的效率:降低部署的成本.容 ...
- 你应当如何学习C++以及编程(细节是必要的,但不是重要的,把时间用在集中精力去解决问题,而不是学习新技术,那样练不成高手。在实践中提高才是最重要的。最最重要的内功还是长期学习所磨练出来的自学能力)good
最近在学习Qt但由于没有C++的基础,感觉学的很吃力.看到pongba的这篇文章感觉不错就弄过来了, 原文地址:http://blog.csdn.net/qter_wd007/article/deta ...
- 读Java并发编程实践中,向已有线程安全类添加功能--客户端加锁实现示例
在Java并发编程实践中4.4中提到向客户端加锁的方法.此为验证示例,写的不好,但可以看出结果来. package com.blackbread.test; import java.util.Arra ...
- Vue项目实践中的功能实现与要点
本贴记录项目实践中,各种功能的实现与技术要点,均有待改进. 路由切换的时候,显示loading动画 目前方案是: 在每个页面都手动装载一个loading组件组件的显示依赖vuex里面的一个值 , 在r ...
随机推荐
- IDEA+SpringBoot整合Swagger2创建API文档
------------恢复内容开始------------ 1.创建SpringBoot项目 2.选择快捷方式创建springboot项目 3.工程文件树形图 4.pom.xml中导入Swagger ...
- spring boot权限设计资源
源代码 https://github.com/2237995998/education 博客说明 https://blog.csdn.net/weixin_45138601/article/detai ...
- Java的学前准备(2021.7.29)
前言:Emm...已经是编程学习的Day2了(好像Day1不知道哪去了,或许是在考验我的记忆力呢 ).但所幸我依然可继续学习,内容如下. 一.J课程 电脑快捷键 Ctrl+ shift / C/ V/ ...
- bootstrapTable insertRow 新增行保留原数据
思路:保留原数据,然后新增行. var optionsxx = {//省略xxx: columns: [{ checkbox: true}, { field: 'id', title: '主键', c ...
- iOS设置textView的placeholder
转载:http://blog.sina.com.cn/s/blog_7a1b23430102wkys.html #import "ViewController.h" @interf ...
- 一个基于线程池和epoll的IO事件管理器
前面几篇博客介绍了Epoll, ThreadPool, 其中 Epoll 封装了epoll的各类api, 可在epoll句柄中添加/修改/删除 fd 的 各类事件(EPOLLIN | EPOLLOUT ...
- openSUSE Tumbleweed 安装原生微信
优麒麟网站上有![微信原生版](https://www.ubuntukylin.com/applications/106-cn.html)提供下载. 之前用 Ubuntu的时候,直接安装就可以使用. ...
- 在 Rime 上对输入法进行定制
Rime Rime是什么?忘了!但是在用.而且很好用. 了解Rime历史,还是去官网吧! 定制 Rime有两个目录: 1. 程序目录 2. 用户目录 Rime 的程序目录 Windows 上 要看你安 ...
- AES加密 php7版本 openssl_encrypt 遇到的坑
与前端对接api ,解密不了前端加密的数据. 问题描述: 1.前端用 cryptojs 加密的 密钥是24位 , 2.后端用的php7的 openssl_encrypt 同密钥来进行解密,发现解密 ...
- 社团管理系统(AMS)个人总结
一.展示 所在小组:13组 源代码链接:https://github.com/xupppp/ams 博文链接: https://www.cnblogs.com/xupppp/p/11795218.ht ...