融云 CTO 岑裕:出海技术前沿探索和排「坑」实践

在本文中,你将看到以下内容:

  • 全球通信网络在接入点、链路加速、服务商、协议等层面的动态演进;

  • 进入到具体市场,禁运国、跨国拦截、区域一致性差等细节“坑点”如何应对;

  • 融云如何从技术侧帮助开发者应对本地化用户体验和业务合规的挑战。

具备全球化视野和能力的新一代创业者,让中国互联网产品发展与全球市场晴雨表同步。关注【融云全球互联网通信云】了解更多

而跟随社交泛娱乐出海热潮蜂拥而至的人和资源,加快了产业在全球市场的成长,也抬高了出海赛道的门槛。

过去相对粗放的出海方式,正在迎来变革时刻,需要对业务做更精细化的运营。具体到各个市场中,通信网络的最后一公里体验本地化用户需求的满足是关键。

在“纵浪潜海 · 2023 融云社交泛娱乐出海赋能会”上,融云 CTO 岑裕以《出海技术前沿探索与排“坑”实践》为主题,分享了融云在上述两方面的持续探索和曲折前进。

 


全球通信网络 最后一公里体验的曲折前进

社交泛娱乐出海的旅程中充满了坑点和痛点,最先要面对的就是各类细节繁琐和意想不到的通信网络问题。

根据网速分析公司 SpeedTest 的数据,2023 年 1 月,全球平均固定互联网连接速度达 76.34Mbps,全球平均移动网络速度达 37.98Mbps。

在其调查的 138 个国家中,东南亚地区的老挝、缅甸、菲律宾、柬埔寨、印尼的移动网速均不达平均值,如下图示。

 移动网速最慢的国家(如下图示)中,有 9 个国家低于 10Mbps。

 

基础网络状况千差万别之外,近年来,全球通信网络的各个层面还在发生着动态演进,也都会影响业务进入当地市场后的“最后一公里体验”。这主要表现在以下四点:

接入点分配,海外从 SmartDNS 转向 AnyCast。

链路加速,在技术上从 CDN、AnyCast 到 SD-WAN 的迭代,也有一些地区只能使用边缘节点接入。

服务商,AWS、Google、阿里云、CloudFlare、Zenlayer 等各服务商在不同国家的策略和表现不尽相同,各有优势和短板,融合使用多家服务成为基本操作。

协议,出于对加密要求的进一步提升,HTTPS、UDP 等协议兴起。

以上技术迭代,不同地区服务商的迭代进展和支持程度不同,所以在面对全球业务时需要综合使用。

而进入到具体执行层面,还会有更多难以把控的细节“坑点”,比如禁运国、跨国拦截、区域一致性差、DNS 干扰、SSL 加密污染、UDP 拦截、特征包识别、弱网等。

这其中,有一些是常见难题。以跨国拦截为例,我们在地图上看到两个距离相近的国家,会下意识认为它们的连接质量比较好。但实际上,由于地缘政治等原因,物理距离近不等于网络连接好。不同国家、不同运营商,需要针对性实施不同的策略。

还有一些坑点不太常见,但十分棘手。比如在有些地区,当 App 达到一定规模和影响力后,可能会对其流量进行限制。

这些都将极度影响用户体验,出海企业需要投入大量资源进行基础设施的优化。好在,在过去几年出海浪潮的持续拍打之下,相关技术和解决方案也在打磨中日趋完善、成熟。

融云从 2016 年便伴随中国开发者的出海步伐开启全球化布局,在重点地区积累了丰富的服务经验,从东南亚到中东、日韩、拉美和欧美,都有爆款应用基于融云的底层能力虹吸了大量用户。

 

融云在全球通信网络建设上的积累不可一蹴而就,也是其作为专业出海通信服务商的核心优势之一。针对以上问题,融云通过整体方案解决最后一公里的通信难题

☑ 多链路,考虑到投入大小的问题,服务商无法在所有地区保持优势,一般是在不同区域拥有相对优势,这让融合多家服务能力进行统一调度成为基本要求。融云使用多家头部服务商,打造庞大、无拥塞的全球网络。在全球各个地方都有就近接入点,支持动态选择和下发,让用户更快接入服务。

☑ 多协议,支持 TCP、UDP、HTTP、QUIC 等多种协议,以多协议组合来解决跨国拦截的问题,提升在各个地区的服务一致性。

☑ 智能竞速,多链路多协议动态分配,探测回落,并通过本地网络记忆等手段来实现智能竞速,不仅要连得快,还要质量好。

☑ 动态混淆,通过动态混淆对内容进行加密传输,应对因 App 规模发展到一定程度而带来的流量限制等问题。

此外,结合智能心跳、网络记忆多地区统一调度,对服务进行整体优化和全面升级。

开发者通过 SDK 即可与融云服务建立连接,服务架构简洁明了,而背后支撑该架构那些纷繁复杂的协议、策略则被封装隐藏,无需开发者费心。

 

经过一系列优化升级后的融云 SD-CAN V4,全球 P99 连接时长降低了 30%。也就是说,99% 的长尾用户通过多链路、多协议、智能竞速等整体方案实现了连接用时降低 30% 的效果。

 


技术助力本地化 体验与合规

面对新的市场环境和有着不同习惯的海外用户,在战略决策背后,业务全球化更关乎的是一系列执行上的本地化问题。

尤其是热门地区和热门品类的竞争加剧,从岁月静好到“卷生卷死”,胜负手就是对本地用户的理解和需求满足。

融云围绕本地用户体验进行了系列优化,完成了服务品质的一次跃升。

以应用必备的推送能力为例,当语境放至全球市场,基于市场环境和用户群体的差异化,这个功能也生发出了不少坑点。

Android 多厂商推送,国内的小米、OPPO、vivo 等终端在很多海外地区也占据不低的市场份额,应用出海需要在安卓端接入 FCM 推送之外,也要考虑手机厂家推送。并且,不同厂家在国内和海外的推送方式还有一定差异性。

iOS Push Extension,允许应用在接收到推送时立即从服务器拉取消息,而不需要等待应用启动。也就是说,当用户收到一条推送通知,点击进去后即使恰巧遇到进入电梯等情况,也不会因断网而无法查看该消息。

 

Push Extension 的消息拉取是一个单独的进程,需要解决多个进程访问单个 SQLite 数据库文件的问题。并且,不同机型占用内存不同,高端机型 24M / 低端机型 12M,内存非常小的情况下,能够执行的扩展任务不能太复杂。

iOS CallKit,是苹果 iOS10 发布的框架,提供了统一的语音通话 UI 及与该 UI 交互的 API。结合 VoIP Push,使音视频通话类 App 拥有与手机系统一样的来电体验——直接显示在锁屏界面,且通话过程中的音视频权限和运营商电话一样,不会被其他应用打断。

在使用 VoIP Push 时,也有一些细节需要注意。比如,苹果规定客户端收到 VoIP Push 必须弹出通知,否则进程会强制崩溃,所以服务端为保证推送时效而一般会采取的多通道竞速策略就无法实施,需要对保证快速触达的技术模型进行调整。

针对于此,融云对推送能力进行了十分细腻的系列优化。

首先,对全平台推送通道进行优化,覆盖 FCM、APNs 等系统通道及小米、华为、OPPO、vivo 等多数手机厂商,并通过增强兼容性、对设备型号和操作系统版本针对性优化、不同厂商通道优化三大手段提升推送触达率。

其次,支持标签推送,并提供推送多语言模板,让推送更精准,提升用户使用体验。

再次,采用 iOS Push Extension 来保证更好的用户体验,将其作为单独的客户端类型来进行处理和封装。

而 iOS CallKit 和 VoIP Push 的诸多复杂、适配、不便之处,融云也已经在 1V1 音视频通话 SDK 中对所有技术细节进行了妥善处理,开发者集成即可便捷地拥有相应能力,无需自行处理。


除了用户体验的本地化适配,融云还在技术侧帮助开发者面对本地化合规方面的挑战。

☑ 二进制包无中文,一些地区会根据二进制包中是否有中文来简单粗暴地对 App 进行识别,甚至可能导致 App 直接被下架,融云出海解决方案的 SDK 二进制包中均不含中文。

☑ 支持独立的域名和证书,保障业务本地运营的稳定性;针对具体的业务运营,支持定制专门的边缘点入口和加速链路。

 特定区域网络优化,支持开发者进军一些目前相对空白的市场,针对当地的基建状况进行特定地区网络优化。


产业总是在竞争中实现螺旋上升,唯有对技术和产品持续精进,成为一个不断进化的生命体,才能永不落伍地满足业务的迭代需求。

融云,将会继续坚定地走在更专业的出海通信服务商的前进之路上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/14968.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Hive与HBase的区别及应用场景

目录: 零、前言一、定义二、区别三、应用场景 零、前言 在学大数据分析的过程中,Hive和HBase是两个非常重要的内容,对于初学者而言容易混淆。所以比较两者区别,能够帮助我们对这两个组件有一个清晰的认识和定位。那么,…

一篇文章看懂MySQL的多表连接(包含左/右/全外连接)

MySQL的多表查询 这是第二次学习多表查询,关于左右连接还是不是很熟悉,因此重新看一下。小目标:一篇文章看懂多表查询!! 这篇博客是跟着宋红康老师学习的,点击此处查看视频,关于数据库我放在了…

大神们分享STM32的学习方法

单片机用处这么广,尤其是STM32生态这么火!如何快速上手学习呢? 第一:你要考虑的是,要用STM32实现什么 为什么使用STM32而不是8051? 是因为51的频率太低,无法满足计算需求?是51的管脚太少,无法…

云HIS(二级医院,乡镇医院,民营医院,标准化HIS医院信息管理系统源码)

传统 HIS(基于医院信息系统) 和云 HIS(基于云计算的医院信息系统)各有优缺点,选择哪种系统需要根据具体情况进行权衡。 传统 HIS 系统通常由医院自行开发和维护,适用于医院内部信息化程度较高、数据安全性…

【软件测试】第1章 软件测试概述

系列文章目录 文章目录 系列文章目录前言第1章 软件测试概述1.1 软件、软件危机和软件工程1.1.1 基本概念1.1.2 软件工程的目标及其一般开发过程1.1.3 软件过程模型 1.2 软件缺陷与软件故障1.2.1 基本概念1.2.2 典型案例 1.3 软件测试的概念1.3.1 软件测试的定义1.3.2 软件测试…

计算机程序安装及使用须知_kaic

安装及使用须知 1 数据库建模程序的使用 本文件夹中的“PowerDesigner建模”目录下包含三个可运行文件TMS1.cdm,TMS.cdm,TMS.pdm分别为TMS系统的实体关系简图、实体关系图和数据库模型,使用PowerDesigner集成开发环境打开任意一个文件即可运…

Linux系统与shell编程第一节课

目录 1.1 Linux发展历史 1.2 什么是linux? 1.3 Linux的发行版 Host-Only(仅主机模式) windows开发 linux服务 区块链, 特点:稳定,安全,可移植性,低资源消耗,开源软…

2023年第十二届数据技术嘉年华(DTC)资料分享

第十二届数据技术嘉年华(DTC 2023)已于4月8日在北京圆满落幕,大会围绕“开源融合数智化——引领数据技术发展,释放数据要素价值”这一主题,共设置有1场主论坛,12场专题论坛,68场主题演讲&#x…

【基础】Kafka -- 日志存储

Kafka -- 日志存储 日志文件目录日志索引偏移量索引时间戳索引 日志清理日志删除基于时间基于日志大小基于日志起始偏移量 日志压缩 日志文件目录 Kafka 中的消息以主题为单位进行基本归类,而每个主题又可以划分为一个或者多个分区。在不考虑多副本的情况下&#x…

【MySQL】插入文件路径,反斜杠消失

系列文章 C#底层库–MySQL脚本自动构建类(insert、update语句生成) 本文链接:https://blog.csdn.net/youcheng_ge/article/details/129179216 C#底层库–MySQL数据库访问操作辅助类(推荐阅读) 本文链接:h…

如何优雅的写个try catch的方式!

软件开发过程中,不可避免的是需要处理各种异常,就我自己来说,至少有一半以上的时间都是在处理各种异常情况,所以代码中就会出现大量的try {...} catch {...} finally {...} 代码块,不仅有大量的冗余代码,而…

07 【Sass语法介绍-控制指令】

1.前言 Sass 为我们提供了很多控制指令,使得我们可以更高效的来控制样式的输出,或者在函数中进行逻辑控制。本节内容我们就来讲解什么是 Sass 控制指令?它能用来做什么?它将使你更方便的编写 Sass 。 2.什么是 Sass 控制指令 控…

Dockere-Compose迁移Gitea部署

Dockere-Compose迁移Gitea部署 ps: 江湖不是打打杀杀,江湖是人情事故。 解释: Gitea:类似于Git的代码版本管理工具。Docker:Docker-Compose: Docker命令: 查看镜像:docker images 删除镜像…

2023年江苏专转本成绩查询步骤

2023年江苏专转本成绩查询时间 2023年江苏专转本成绩查询时间预计在5月初,参加考试的考生,可以关注考试院发布的消息。江苏专转本考生可在规定时间内在省教育考试院网,在查询中心页面中输入准考证号和身份证号进行查询,或者拨…

【u盘提示:驱动器未格式化】如何解决?

u盘虽然使用很方便,可随时拷贝资料到任何有电脑的地方,但它的问题也是比较多的,其中u盘提示驱动器未格式化故障最让人心虚,因为已经无法打开u盘了,里面的资料怎么办,很重要的怎么办,所以今天就教…

LSSANet:一种用于肺结节检测的长、短切片感知网络

文章目录 LSSANet: A Long Short Slice-Aware Network for Pulmonary Nodule Detection摘要方法Long Short Slice GroupingLong Short Slice-Aware Network 实验结果 LSSANet: A Long Short Slice-Aware Network for Pulmonary Nodule Detection 摘要 提出了一个长短片感知网…

《Spring MVC》 第六章 MVC类型转换器、格式化器

前言 介绍MVC类型转换器、格式化器 1、使用场景 <form th:action"{/user/register}" method"post">用户名&#xff1a;<input type"text" name"userName"/><br/>密码&#xff1a;<input type"password&q…

【Access】win 10 / win 11:Access 下载、安装、使用教程(「管理信息系统」实践专用软件)

目录 一、前言 二、卸载 Office 三、下载 Office Tool Plus 四、安装 Office&#xff08;内含 Access&#xff09; &#xff08;1&#xff09;启动 Office Tool Plus &#xff08;2&#xff09;部署 &#xff08;3&#xff09;安装 Office&#xff08;内含 Access&#…

【Arduino SD卡和数据记录教程】

【Arduino SD卡和数据记录教程】 1. 前言2. 工作原理3. Arduino SD 卡模块代码4. Arduino SD卡数据记录1. 前言 在本Arduino教程中,我们将学习如何将SD卡模块与Arduino板一起使用。此外,结合DS3231实时时钟模块,我们将制作一个数据记录示例,将温度传感器的数据存储到SD卡中…

Vue3技术7之toRaw与markRaw、customRef、provide与inject、响应式数据的判断、组合式API的优势分析

Vue3技术7 toRaw与markRawtoRawApp.vueDemo.vue markRawDemo.vue 总结 customRefApp.vue总结 provide与inject目录结构App.vueChild.vueSon.vue总结 响应式数据的判断App.vue总结 组合式API的优势配置式的API存在的问题组合式API的优势 toRaw与markRaw toRaw App.vue <te…