边缘计算:一种通俗理解是将计算和存储等服务放在网络逻辑边缘节点上的一种分散式架构,通过将原本中心化的服务分散到边缘节点处理,让数据的运算和存储更接近数据来源,减少网络传输的数据量和访问延时。它不但侧重边缘节点,还强调节点之间的连接,因此就有了与网络加速的契合。
我们在许多城市运营商的机房(节点)提供计算和存储资源,并利用动态加速技术来优化节点之间的传输网络,并搭建了一个机房、服务器层面的边缘计算平台(UODN)。这种方式适用于数据源能够在各地存储或运算、且较为依赖网络传输的业务,例如网络音视频教育、医疗数据分析等。
在实现上,边缘计算平台与动态加速网络也依赖了路由、DNS 等一些基础服务,几个产品之间的关系如下图:
从上至下,边缘计算平台由分布在各个城市、运营商的节点组成,节点间物理网络可以互通。如果需要在网络进一步优化,则依赖动态加速网络,而动态加速网络的实现除了加速服务器本身以外,还需要路由服务、DNS 服务来提供路由和域名解析等数据。另外,路由和 DNS 也为 CDN、直播平台提供基础服务。
那么,边缘计算、动态加速、路由/DNS 这些关键服务又是如何实现的呢?首先,我们来看看边缘计算。
1 边缘计算
边缘计算的核心理念是将数据的存储、传输、计算和安全交给边缘节点来处理。边缘计算并非是让终端自己负责所有计算,而是在离终端更近的地方部署边缘平台,终端与之通信可以有多种形式,这样可以避免集中式云计算中心的网络延迟和传输带宽问题。
在边缘计算的实现上,我们提供了开放式分发节点 UODN,将计算节点分布在全国的上百个数据中心,通过虚拟化、Docker 等方式提供计算和存储资源,用户可以通过软件自定义内容分发服务。
计算、存储等资源分配上,建议将大量实时需要交互的计算如部分实施决策和自主协作过程在边缘节点实现,一些需要集中式处理的计算如大数据挖掘、大规模学习等则继续交由数据中心完成。
国内环境下,在边缘节点提供计算和存储,能够让数据能就近上传、访问,节点之间只传输核心的计算结果,即可减少非必要网络传输带来的延迟。然而,在跨国、跨运营商等弱网络环境下,链路质量差,节点之间的网络传输依然可能影响业务,因此我们需要融合动态加速网络优化传输。
2 动态加速
区别于 CDN,UCloud 动态加速网络并非依赖于缓存数据,而是通过对路由、协议等的优化来实现加速,因此在跨国、跨运营商这种质量差的网络中有比较好的表现。下图是 UCloud 动态加速网络的网络拓扑图, 由分布在各地的加速点组成。
其加速原理和实现过程,主要包括四点:
首先,接入方式设置了 HTTP(S)、TCP、UDP 三种模式:
将域名 CNAME 到加速平台后,加速点服务器就能接收到用户数据包,HTTP 通过域名(TCP/UDP 根据端口查找配置),服务器根据配置获取源站以及到源站和到路由的信息,并选择路由将数据转发往目标源站。
其次,加速网络内部统一使用私有协议 UTP 传输数据:
每个加速点有接入和中转双重身份,直接对接用户客户端或源站的定义为接入点,接入点收到的数据一般通过 UTP 协议发往中转点,中转点之间也通过 UTP 传输。UTP 是 UCloud 在 UDP 的基础上实现可信传输的协议,支持流量控制、拥塞控制、快速重传等,可以消除握手的时间,使传输控制更灵活。
然后,与边缘计算平台的融合,实现对用户透明的动态加速:
我们会为边缘计算节点提供加速 IP,用户程序使用 IP 地址即可使用加速网,不需要域名配置和修改程序。传输 TCP、UDP 数据时,内核模块会捕获并修改 TCP/IP 包,将数据包发送到加速网,同时在加速网注册,以此实现对用户透明的动态加速。
最后,如何达到更优的加速效果,主要有以下几点思路:
链路层/网络层:选择更优的链路,这里主要是基础设施的建设;
传输层:对传输协议进行优化如下:1)加速网络内部采用 UDP 实现可信传输,优化握手时间;2)调整拥塞控制,采用更灵活的发送策略例如 UTP;3)根据链路 MTU 大小进行切片发送,减少报文重组;
应用层:优化业务程序,尽量使用长连接传输,减少频繁建立短连接的时间和失败概率。
3 路由服务
路由是指从一个接口收到数据包后,根据数据包的目的地址进行定向并转发到另一个接口的过程。路由和域名解析服务主要提供对外接口,供给动态加速、CDN 使用。
路由计算方面,建议先重复测试任意节点之间分时段的网络质量数据,包括 ping 延时、丢包率、UDP 大小包丢包率等,然后计算出全部节点之间的最优、次优路径,最后根据历史数据预测最优路由。
这里,需要特别注意的是,时段不同、数据包大小不同,路由计算的结果可能不同。
总 结
本文主要讲解了边缘计算和动态加速网络的一些实现技术和优化方案,来帮助实现计算、存储、网络等资源的平衡。边缘计算方面,主要是提高边缘节点资源利用率,通过虚拟化技术让资源管理更有效;动态加速网络,则是通过优化路由、协议等方法,来优化两点之间的网络质量。
作者介绍:
梁旭:UCloud 研发工程师,先后负责 UCloud CDN、ODN、IDV 虚拟化产品的研发,熟悉边缘计算与动态加速等技术。
本文转载自公众号 UCloud 技术(ID:ucloud_tech)。
原文链接:
https://mp.weixin.qq.com/s/24N6NSC9PmINL6S--X5bBg
评论