采访嘉宾:杨攀,融云联合创始人兼 CTO
虽然绝大多数系统的开发都是经过了严格的测试和验证,已经做好了上线的准备,但是当一个系统上线的时候,它只是理论上的可用,在实际运行中还会面对非常多不确定的因素和情况。例如将某个 App 装到不同手机上以后,它会遇到一些在测试环境中完全无法验证过的问题,比如不同的手机型号,不同的系统环境等,这些都可能造成一些不确定性,进而引发故障。
而通信平台的整个系统更加复杂,里面除了涉及到环境之外,还有网络、全球的互联互通、各地网络运营商的不同配置以及各地不同的 DNS 解析等,这些都会影响通信系统的稳定性。正是由于大量的不可测和不可知的问题,导致系统出现危机。
其实在这些危机中最核心的问题是我们不清楚是什么原因导致了这些危机。海恩法则提出:每一起严重事故的背后,必然有 29 次轻微事故和 300 起未遂先兆以及 1000 起事故隐患。这里有两层含义:一是事故的发生是量的积累产生的结果;二是再好的技术,再完美的规章,在实际操作层面,也无法取代人自身的素质和责任心。
如果在危机发生时,能够提前去预知一些征兆和现象,其实有机会去解决问题,避免危机的发生。如何能够发现这些危机和隐患呢?核心要解决的是 Know-how 和 Know-what 的问题。也就是说,知道系统在出现问题时是如何运转的,发生了什么。融云在做故障根因分析的过程中,通常有一个观点是如果不能分析出问题为什么发生,那么下一次就需要想办法把所有能够帮助判断问题如何发生的信息提前准备好,记录下来。其核心思想就是:在任何问题发生的过程中,要充分掌握发生问题的生命周期中所有状态和数据,有了这些数据,就可以还原问题现场,从而追溯发生问题的根本原因。
杨攀提到,“融云最近在做全球通信加速网络,其实这个网络我们已经经营了好几年,最近经历了一次大范围的架构调整和网络的物理链路升级,升级之后,从第三方的监控以及客户的反馈来看,效果非常好。在这种情况下,看似是比较好的一个结果,但是对于我们而言,需要换一个角度,从数据监控系统再看加速网络,这时会发现其中仍然有一些隐藏的问题。比如通过可视化的系统指标可以发现,很多指标在发生波动,虽然这些波动未必最后会反映到客户身上,造成某一次体验不佳,但是就像海恩法则提到的一样,这就是隐患,是一些未遂的先兆。如果把这个问题捕捉到,未来就会避免一些大的问题发生。事实上我们根据一些可视化的数据分析确实找到了一些现成模型上的问题和隐患,在发生问题之前就把这些隐患尽早解决掉,后面才能避免真正造成一些故障。”
没有一个系统或平台是完美的。无论测试验证多完整,也都要面对不确定性,这是必然。“我们要做的就是控制问题,提早预知问题发生的可能,通过各种特征的判断,用数据驱动,通过大量的数据、指标、状态的分析来预警,也就是使系统能够避免发生问题,在系统出现问题之后找到问题,解决问题,这是数据驱动质量优化的核心理念。”
融云的通信云平台,凝结了技术团队在即时通讯领域十几年的积累。最初想做这样的平台,是因为市场上有很多的应用需要即时通讯能力,但是绝大多数开发者在即时通讯领域没有经验。于是,融云将团队积累的经验变成一个云服务产品,也就是开发者通过在客户端集成 SDK,就可以在服务端直接使用融云的通信云平台和全球加速网络。这样就把事情简化了:开发者不需要关心即时通讯本身的核心技术,可以直接在产品里使用即时通讯能力。
杨攀介绍,通信云平台上线伊始,其实就有数据监控和分析机制。但由于系统刚建立不久,前期没有足够的数据样本量,导致通过数据来反映的问题没有明显的特征。随着平台越来越大,几十万注册的用户,每天有几千万的日活,这些用户每天都处于通信状态,因此会收集大量与平台质量相关的数据,以及网络环境、网络状况等相关数据。当业务增长到这样的规模之后,就可以充分利用数据去分析一些特征的指标和结果。“服务质量稳定是通信云平台一个非常重要的竞争力,因此我们成立了专门的质量数据团队,全方位地为平台质量保驾护航。”
用数据驱动质量优化的一个基本的逻辑是:首先要将数据收集上来,而且要尽可能的全面和丰富;其次,对数据进行分析,分析之后得出结果,再将得到的结果反馈回去,进行系统迭代;迭代之后,再继续看数据。这样就形成了一个闭环,不断持续地运转。杨攀说:“这件事是没有尽头的。”
其实每家公司都知道质量优化的重要性,但是否愿意在这方面投入人力物力,不同公司的看法则不一样。这里面有两个层面的因素:一是团队有没有意识到质量是公司的核心价值,随着互联网红利的消失,公司应该将更多的精力放在如何提升产品服务质量上,这是一个大的趋势。
另一方面,想要获得质量优化,必然意味着要付出相应的人力物力成本,那就涉及一个问题,整个公司包括技术团队,愿不愿意在这方面进行投入。
融云通信云平台作为 PaaS 层服务,与独立 App 产品的不同在于要应对不同类型的客户业务模型。具体来说,如果是独立的 App,其业务模型、业务峰值虽然有波动,但几乎每一天的变动都是有规律的,也是在可预知的范围内。而融云通信云平台面向的每个客户都是不同的,什么时候是高峰,什么时候是低谷,什么时候突然有高并发,这些情况都是未知的。杨攀提到,“无论用什么样的沟通方式和服务手段,这些信息我们都无法获得,所以对于我们来说,最重要的就是应对。”
应对措施包括:系统架构要提前准备好,可以平滑地去扩容、弹性伸缩,但是在这个过程中,需要判断系统的弹性伸缩能力,其是否能够应对业务的发展等,这些判断的难度很大。这就需要持续地对客户的典型业务模型进行分析,分析之后得出对应的几种常见的客户业务模型。根据数据可以设计对应的技术参数或系统架构,从而去解决这些问题。
通过数据驱动,会明显发现两点变化:一是客户的体验会明显提升,平台的稳定性也在不断提高;二是技术团队会更有信心,这份底气来自于大家对于系统的优化、迭代方向更清晰,也知道问题如何排查和解决。
对于通信云平台未来在通信质量优化上的规划,杨攀介绍,与质量相关数据收集的维度会更加丰富,要分析的内容也越来越多,其中的一个挑战就是数据分析平台的能力会陷入瓶颈。所以,融云首先会不断升级通信质量数据分析平台,去应对更多数据量的分析;其次,随着数据越来越多,除了平台处理之外,很多数据的分析是由人来处理的,这部分的成本会随着数据量的增加而增加,所以后续会引入机器学习的方法,比如模式识别,自动挖掘问题和分析问题,通过新技术减少人力成本,同时提升平台的效率。
2019 全球互联网通信云大会已开启报名通道,本次大会分为高峰论坛和“新通信技术”、“AI 和云计算”、“架构演进与性能优化”三个技术分论坛,聚集了阿里、AWS、Twilio、百度、京东等行业顶级技术大咖,围绕 5G、通信、AI、AR/VR、全球网络链路优化等前沿技术和热门话题,针对社交、直播、在线教育、电商等热门行业,为通信云领域的开发者带来精彩的技术分享。
点击阅读原文,查看更多大会日程。