写点什么

看似安全的系统背后隐藏危机?如何用数据驱动系统质量提升

2019 年 11 月 14 日

看似安全的系统背后隐藏危机?如何用数据驱动系统质量提升

11 月 30 日,2019 全球互联网通信云大会将在上海举行。这是通信云行业首个技术峰会,InfoQ 记者专访融云联合创始人兼 CTO 杨攀,他将在【AI 与云计算】论坛发表“数据驱动的通信质量优化”的主题演讲。


没有一个系统是完美的

虽然绝大多数系统的开发都是经过了严格的测试和验证,已经做好了上线的准备,但是当一个系统上线的时候,它只是理论上的可用,在实际运行中还会面对非常多不确定的因素和情况。例如将某个 App 装到不同手机上以后,它会遇到一些在测试环境中完全无法验证过的问题,比如不同的手机型号,不同的系统环境等,这些都可能造成一些不确定性,进而引发故障。


而通信平台的整个系统更加复杂,里面除了涉及到环境之外,还有网络、全球的互联互通、各地网络运营商的不同配置以及各地不同的 DNS 解析等,这些都会影响通信系统的稳定性。正是由于大量的不可测和不可知的问题,导致系统出现危机。


其实在这些危机中最核心的问题是我们不清楚是什么原因导致了这些危机。海恩法则提出:每一起严重事故的背后,必然有 29 次轻微事故和 300 起未遂先兆以及 1000 起事故隐患。这里有两层含义:一是事故的发生是量的积累产生的结果;二是再好的技术,再完美的规章,在实际操作层面,也无法取代人自身的素质和责任心。


如果在危机发生时,能够提前去预知一些征兆和现象,其实有机会去解决问题,避免危机的发生。如何能够发现这些危机和隐患呢?核心要解决的是 Know-how 和 Know-what 的问题。也就是说,知道系统在出现问题时是如何运转的,发生了什么。融云在做故障根因分析的过程中,通常有一个观点是如果不能分析出问题为什么发生,那么下一次就需要想办法把所有能够帮助判断问题如何发生的信息提前准备好,记录下来。其核心思想就是:在任何问题发生的过程中,要充分掌握发生问题的生命周期中所有状态和数据,有了这些数据,就可以还原问题现场,从而追溯发生问题的根本原因。


杨攀提到,“融云最近在做全球通信加速网络,其实这个网络我们已经经营了好几年,最近经历了一次大范围的架构调整和网络的物理链路升级,升级之后,从第三方的监控以及客户的反馈来看,效果非常好。在这种情况下,看似是比较好的一个结果,但是对于我们而言,需要换一个角度,从数据监控系统再看加速网络,这时会发现其中仍然有一些隐藏的问题。比如通过可视化的系统指标可以发现,很多指标在发生波动,虽然这些波动未必最后会反映到客户身上,造成某一次体验不佳,但是就像海恩法则提到的一样,这就是隐患,是一些未遂的先兆。如果把这个问题捕捉到,未来就会避免一些大的问题发生。事实上我们根据一些可视化的数据分析确实找到了一些现成模型上的问题和隐患,在发生问题之前就把这些隐患尽早解决掉,后面才能避免真正造成一些故障。”


没有一个系统或平台是完美的。无论测试验证多完整,也都要面对不确定性,这是必然。“我们要做的就是控制问题,提早预知问题发生的可能,通过各种特征的判断,用数据驱动,通过大量的数据、指标、状态的分析来预警,也就是使系统能够避免发生问题,在系统出现问题之后找到问题,解决问题,这是数据驱动质量优化的核心理念。”


如何用数据驱动通信质量优化?

融云的通信云平台,凝结了技术团队在即时通讯领域十几年的积累。最初想做这样的平台,是因为市场上有很多的应用需要即时通讯能力,但是绝大多数开发者在即时通讯领域没有经验。于是,融云将团队积累的经验变成一个云服务产品,也就是开发者通过在客户端集成 SDK,就可以在服务端直接使用融云的通信云平台和全球加速网络。这样就把事情简化了:开发者不需要关心即时通讯本身的核心技术,可以直接在产品里使用即时通讯能力。


杨攀介绍,通信云平台上线伊始,其实就有数据监控和分析机制。但由于系统刚建立不久,前期没有足够的数据样本量,导致通过数据来反映的问题没有明显的特征。随着平台越来越大,几十万注册的用户,每天有几千万的日活,这些用户每天都处于通信状态,因此会收集大量与平台质量相关的数据,以及网络环境、网络状况等相关数据。当业务增长到这样的规模之后,就可以充分利用数据去分析一些特征的指标和结果。“服务质量稳定是通信云平台一个非常重要的竞争力,因此我们成立了专门的质量数据团队,全方位地为平台质量保驾护航。”


提升产品服务质量将成为新的竞争力 用数据驱动质量优化的一个基本的逻辑是:首先要将数据收集上来,而且要尽可能的全面和丰富;其次,对数据进行分析,分析之后得出结果,再将得到的结果反馈回去,进行系统迭代;迭代之后,再继续看数据。这样就形成了一个闭环,不断持续地运转。杨攀说:“这件事是没有尽头的。”


其实每家公司都知道质量优化的重要性,但是否愿意在这方面投入人力物力,不同公司的看法则不一样。这里面有两个层面的因素:一是团队有没有意识到质量是公司的核心价值,随着互联网红利的消失,公司应该将更多的精力放在如何提升产品服务质量上,这是一个大的趋势。


另一方面,想要获得质量优化,必然意味着要付出相应的人力物力成本,那就涉及一个问题,整个公司包括技术团队,愿不愿意在这方面进行投入。


融云通信云平台作为 PaaS 层服务,与独立 App 产品的不同在于要应对不同类型的客户业务模型。具体来说,如果是独立的 App,其业务模型、业务峰值虽然有波动,但几乎每一天的变动都是有规律的,也是在可预知的范围内。而融云通信云平台面向的每个客户都是不同的,什么时候是高峰,什么时候是低谷,什么时候突然有高并发,这些情况都是未知的。杨攀提到,“无论用什么样的沟通方式和服务手段,这些信息我们都无法获得,所以对于我们来说,最重要的就是应对。”


应对措施包括:系统架构要提前准备好,可以平滑地去扩容、弹性伸缩,但是在这个过程中,需要判断系统的弹性伸缩能力,其是否能够应对业务的发展等,这些判断的难度很大。这就需要持续地对客户的典型业务模型进行分析,分析之后得出对应的几种常见的客户业务模型。根据数据可以设计对应的技术参数或系统架构,从而去解决这些问题。


通过数据驱动,会明显发现两点变化:一是客户的体验会明显提升,平台的稳定性也在不断提高;二是技术团队会更有信心,这份底气来自于大家对于系统的优化、迭代方向更清晰,也知道问题如何排查和解决。


未来融云在通信质量优化上的规划

对于通信云平台未来在通信质量优化上的规划,杨攀介绍,与质量相关数据收集的维度会更加丰富,要分析的内容也越来越多,其中的一个挑战就是数据分析平台的能力会陷入瓶颈。所以,融云首先会不断升级通信质量数据分析平台,去应对更多数据量的分析;其次,随着数据越来越多,除了平台处理之外,很多数据的分析是由人来处理的,这部分的成本会随着数据量的增加而增加,所以后续会引入机器学习的方法,比如模式识别,自动挖掘问题和分析问题,通过新技术减少人力成本,同时提升平台的效率。




2019 全球互联网通信云大会已开启报名通道,本次大会分为高峰论坛和“新通信技术”、“AI 和云计算”、“架构演进与性能优化”三个技术分论坛,聚集了阿里、AWS、Twilio、百度、京东等行业顶级技术大咖,围绕 5G、通信、AI、AR/VR、全球网络链路优化等前沿技术和热门话题,针对社交、直播、在线教育、电商等热门行业,为通信云领域的开发者带来精彩的技术分享。



点击【报名参会】,参加 2019 全球互联网通信云大会。


2019 年 11 月 14 日 14:20703
用户头像

发布了 123 篇内容, 共 35.0 次阅读, 收获喜欢 150 次。

关注

评论

发布
暂无评论
发现更多内容

云原生架构的基石

soolaugust

Docker 架构 Kubernetes 容器 云原生

区块链承兑商支付系统开发,usdt支付系统搭建

WX13823153201

Spring 为啥默认把bean设计成单例的?这篇讲的明明白白的

程序员生活志

程序范式的意义

soolaugust

架构 程序设计

Flink所需组件-1

小知识点

scala 大数据 flink 流计算

系统不可用总结

不在调上

高效程序员的45个习惯:敏捷开发修炼之道(3)

石云升

读书笔记 敏捷开发 无限游戏

错误的存储方案正吞噬你的成本

jinjin

为什么一旦自己创业了,很难再回到公司去坐班?

北柯

创业 互联网 创业心态 上班 上班族

搭载十代酷睿i7处理器,这台ROG冰刃4新锐拥有媲美台式游戏电脑的性能

最新动态

写代码爬取了某 Hub 资源,只为撸这个鉴黄平台!

程序员生活志

教程 Hub 资源

丐帮,少林,明教,武当!看看你数据分析的技能属于哪一派?

程序员生活志

"工科生"的浪漫 百度大脑语言与知识技术峰会在七夕向你发出参会邀请

百度大脑

ARTS week 4

锈蠢刀

2w字 + 40张图带你参透并发编程!

cxuan

Java 后端 并发

ST在keil下开发时候文件options配置的一些小技巧

良知犹存

嵌入式

Python3 for ... else ...陷阱

王坤祥

Python Python PEP

学习的深度 & 深度的学习

北风

学习

吃透Laravel的Ioc容器

书旅

laravel 容器 ioc

大数据技术发展(二):Hadoop 技术生态圈的发展

抖码算法

Java 大数据 hadoop 大数据技术 hadoop3

nginx 报错 accept4 () failed (24:Too many open files)

Java联盟

nginx

为啥PHP in_array(0,['a', 'b', 'c']) 返回为true?

架构精进之路

php 弱类型语言

影响音视频延迟的关键因素(一):流媒体系统

ZEGO即构

TCP udp RTC HLS RTMP

一文吃透PHP进程信号处理

书旅

php Linux 信号

SpreadJS 纯前端表格控件应用案例:集成 Odoo提升企业ERP表格功能

Geek_Willie

开源 SpreadJS Odoo

“庆俞年”大战,真正受损的不是李国庆

北柯

创业 合伙人 创业者 互联网人 当当网

一个虚拟世界里栽树的公司及其启示

郭华

技术 商业模式 电影

云上安全工作乱如麻,等保2.0来一下

华为云开发者社区

安全 华为云 等保 云平台 多云服务

大厂面试必读,JAVA进阶神书《深入理解Java虚拟机》第三版更新内容全曝光!

华章IT

JVM 虚拟机 周志明 Java虚拟机 jvm调优

nginx报错worker_connections are not enough

Java联盟

nginx

草脸识别,AI泡沫还是皇冠明珠?

郭华

人工智能 AI 商业 解决方案

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

看似安全的系统背后隐藏危机?如何用数据驱动系统质量提升-InfoQ