UCloud软件定义CDN

现在是一个信息化的时代,在很早以前就有"地球村"的说法。但是地域的界限毕竟难以跨越。如何为跨地域、全国乃至于全球网络用户提供即时的网络应用服务,是企业用户一直希望解决的一个主要问题。

现在是一个信息化的时代,在很早以前就有"地球村"的说法。但是地域的界限毕竟难以跨越。如何为跨地域、全国乃至于全球网络用户提供即时的网络应用服务,是企业用户一直希望解决的一个主要问题。现阶段互联网服务提供商对这个问题是如何解决的?还存在着哪些方面的不足?我们请UCloud多媒体事业部研发总监曾凯源先生来给我们分析一下。

UCloud软件定义CDN

UCloud多媒体事业部研发总监曾凯源

软件定义为应用加速

现在我们随时随地都在享受互联网的服务。可是网民分布在全国各地甚至全世界各地,如何为用户提供最好、最优的用户体验,是现在构建互联网服务的人需要考虑的。

在没有CDN(ContentDeliveryNetwork,即内容分发网络)之前,为了解决用户体验问题,实际上花费的代价非常高昂。需要在全国各地甚至全世界各地物色机房、采购设备、还要把互联网程序开发完成后部署到这么多的机房上。此外,还需要解决机房之间,可能出现各种公网问题。在这么复杂的网络环境下,保障数据进行可靠的传输。

现在有了云和CDN之后,实际上云方面提供了BGP功能。就是一个IP我们可以服务于各个不同的运营商,每个运营商都有它的路由。解决了一部分每个运营商或者每个地域的用户,在访问互联网程序时的一些网络问题,但是这个解决是不彻底的。CDN可以把互联网服务中一些静态的文件,比如我们的图片、游戏下载、点播文件等静态文件,预先分发到用户最近的机房。但很多动态的、需进行信息交互的互联网应用服务,想要通过CDN进行网络加速时,就无能为力了。CDN无法处理的这些应用信息,只能再发到核心站点上去,由它来处理后再把信处反馈回来,实际上还是要走很长的路。

而UCloud提供的软件定义CDN,它具备了云的弹性和CDN的能力。不同于CDN只能分发互联网服务当中静态内容,软件定义CDN允许用户把互联网服务提交给UCloud,UCloud把它部署到全国各地或者城市各地的机房去。而这个部署的过程跟机房还有网络所有的问题,都不需要你关注,就是完整交给软件定义CDN这个平台解决。

容器化分布布署让应用更贴近用户

软件定义CDN,解决用户动态应用实时处理问题,但它是采用什么技术进行实现的?曾凯源又详细为我们进行了讲解。

首先是差异性的问题。在全国各地或者全世界各地的机房之间,都会有一些硬件配置或者物理环境的差异,因此很难进行统一部署。现在有比较好的解决方案是Docker。利用容器技术,UCloud把用户的互联网程序Docker化。只要准备一个Docker的运行环境,就可以解决环境差异的问题。用户将Docker化的互联网服务提交给UCloud,UCloud可以很快的进行分发和部署。

其次是可靠性方面的问题。万一数据中心机房出现故障,要切换到另一个机房继续提供服务时,传统方式是需要人工进行操作的,但UCloud的软件定义CDN是通过"虚拟网"的技术。例如,UCloud机房之间通讯IP使用是虚拟IP,但是这个IP可以随时从北京的机房飘到上海的机房,上海机房出问题的时候,我们的IP可以飘回北京机房。无论在任何地点都是同一个IP,是国内现在BGP技术做不到的。

第三是长距离传输问题。数百个互联网节点,全部采用专线传输的话,成本非常庞大。但可以采取一些手段,只在一些核心节点之间采用高质量的专线进行数据传输,子节点间通过多条其它链路进行链接。软件定义CDN会把所有能够用的传输的网络跟路径抽象起来,当其中一条路径发生问题的时候,进行快速的切换。在这种非常复杂多路径的现状中,UCloud也会建立一套自动学习的库,可以不断增加深度学习的范围,认知到每个路径,它的可靠性怎么样,它的延迟怎么样,它某一段时间可能会出现丢包或者网络不好。那么整个网络的情况,在不断累计库当中,就会得到非常好的解决。

把"互联网服务部署到离用户最近的机房",这需要具备大数据、远程传输的技术能力,还需要克服异地数据同步的问题。这方面UCloud是如何做到的呢?

传统数据库同步这种方式,其实现在来说,没有非常好的解决方案。最可靠的就是刚才说的多路径,或者更多时候,可能你数据库最终部署在三个地方。那么用户的成本可能是拉三条专线,这个成本在大多数时候还是可以接受的。

此外,用户的数据库可能是一些相对于低频的数据,比如用户登录密码,像微信一样,登录第一次输入密码之后,在系统上实际上保存了你的登录Session,后面的登录其实不用反复输入,这是低频的数据。低频数据与真正业务的高频处理逻辑是不一样的,只需要部署少量的数据节点就可以满足。然后你的高频服务和数据,可能每一个省份就近部署一个或者多个,跟具体的用户密度有关。

这样处理之后,实际上需要长距离、重量级的传输就会减少很多。比如北京用户,就存储在北京,或者我华北的用户存储在北京,华东的用户存储在上海。当然也会有上海的用户跑去北京旅游然后需要上网访问,这是更低频的一种场景。这时候使用刚才说的多种路径的方法,可以得到比较好的解决。

高频服务和数据经过CDN之后,可以分发到离用户最近的地方。在大部分的时候,其实用户不需要到你的数据库上做大量的数据操作,或者导致用户的数据库有大量的数据写入同步,这样的话,UCloud的软件定义CDN就让用户的整个互联网的服务会更加的轻量和健康。

来源:ZD至顶网存储频道

0赞

好文章,需要你的鼓励

2017

04/06

11:32

分享

点赞

邮件订阅
白皮书