写了这么多直播云的文章,仍然让我有一种盲人摸象的感觉,从每一个局部去了解直播,学习直播云,常会让人有种“懂直播”的错觉,其实这个领域何其大,即便是身在其中的技术专家又何尝敢说懂得直播云的全局。
就像如今,随着直播行业的火热,涌现出提供各种云服务、优化服务和应用服务的直播云公司。它们看起来提供的服务都非常类似,比如应用端的美颜和连麦,再比如服务器端的防卡顿和秒开等等。眼花缭乱的直播云服务,也让用户在选择时产生了视觉疲劳,局部的优势,能代表直播云全局的质量掌控吗?
我在《同量不同质的直播云 将进入“稳中求胜”期》中说,“各家的技术路线,也逐渐趋同。所以,直播云下一阶段的比拼势必从功能点多寡的粗放式比拼,过渡到技术细节的比拼和服务稳定性的比拼。”
事实上,进一步的看,直播云的优化确实存在一个局部和全局的关系,这也在一定程度上决定了直播云的品质。
一盘棋 局部优化常失去全局的掌控
以我们熟悉的围棋为例,每一次的对弈,都在棋盘的局部发生。但决定最后的胜负则是要看全局。所以,每一次落子,都要兼顾到全局,才能做到不因小失大,并取得最后的胜利。
有趣的是,技术经常存在这样的“阴影”。叶夫根尼·莫罗佐夫在《技术至死 : 数字化生存的阴暗面》一书中说,“技术带来了局部优化的困境。大量简单的激励机制被用于解决局部问题,但遮蔽了全局问题。”
所以,在很多的直播云服务,采取的方式多数是“头疼医头,脚疼医脚”。比如,其他公司上线了新的应用,就通过开放的源代码迅速上线一个类似的,再比如直播平台遇到网络环境出现问题时,会采取简单粗暴的方式,增加带宽,增加带宽,不断的增加带宽。
事实上,在直播云的实施过程中,必须要照顾到用户对整个系统的随时感知,对于用户而言,云服务商的底层技术细节是无需关心的,但是对整个网络环境和云服务状态和性能的变化,要有一个清晰的认知。
这就需要建立起一个实时、全面、有效的监控机制,能够让用户可以随时对云服务的质量形成全局的认识,而不是仅仅局限在某些性能的指标上,或是对应用的追逐上。
这正是金山云今天所倡导的理念,就是通过一个全局性的质量监控方式,增加用户对质量的感官力,但是会比用户更早的感知故障。据此,来给用户提供详细的可信的故障定位信息,就可以减少用户在SLA方面的投入和担忧。
这么做的好处在于,第一对全局服务的质量有一个清晰的认知,不会因为某一项指标的缺失失去对全局的判断。第二,这个系统是基于实时的,甚至是预判的,不会让用户因为对故障的处理不当,导致直播体验受损。第三,基于智能化的设计,某些技术细节,机器比人工还要可靠。
如何做到实时全面的质量监控体系?
那么,实时全面的质量监控,是怎么做到的?金山云为此梳理了一套完整的方法论,对整个直播云的全面监控,都有一定的借鉴意义。
首先,要明确多指标的数据监控,从网络的角度,每一个部分的质量都等于是局部质量,而全局优化的基础,必然是对每一个环境都进行质量监控,才称得上是全局的监控。
比如,第一,链路质量,监控每个地区到各个节点的链路的rtt 、丢包率;第二,业务质量,监控用户的实际业务质量,包括慢速率、慢处理率、错误率、首包时间、命中率、回源率、劫持率等;第三,节点质量:监控每个节点的节点质量,cpu、io、memory、带宽使用率、回源带宽等;第四,应用质量:监控系统架构中软件层质量,响应时间、连接数、链接复用率等。
其次,要从多个维度来进行数据监控。这同样是一个局部和全局的平衡问题,一些云服务商只关注CDN,或是只关注于用户维度的监控,这都是不全面的。
全面的维度应该包括:第一,整体用户纬度,比如监控整体架构的可用性,及时发现系统故障;第二,用户域名纬度,细分用户域名级别的总体SLA。第三,用户域名运营商纬度,细分用户域名级别每条ISP的服务质量,清晰定位到地区和ISP;第四,服务节点纬度,细分覆盖某一个ISP的实际使用节点的SLA,最终定位出节点故障、线路故障、回源故障。
第三,从质量监控的角度,还应该建立全链路的数据监控体系。它包括:第一,用户到边缘,监控用户到边缘节点的服务质量;第二,边缘到上层,监控边缘节点到上层节点的质量;第三,上层到源站,监控上层节点到用户源站的服务质量;第四,各个层级的应用软件,监控各个应用软件的服务质量。
从这三个层面的结合来看,前面提到的多指标的数据监控,是定义了直播云的质量体系,多维度的数据监控定义了监控的维度。全链路的数据监控体系,则是划定了全面监控的边界。
金山云正是从这一套方法论中找到了直播云质量优化的全局观。
事实上,金山直播云一直是以大局观著称的云服务商。质量优化的全局观只是金山直播云大局观的一个缩影。从SDK和应用功能的丰富度上,金山云就一直是领先的,在服务的稳定和质量的优化上,每一个细节金山云都尽力做到尽善尽美,这其实都是以全局作为发展理念的体现。