UPYUN的云CDN技术架构演进之路

声明:本文首发于CSDN,禁止未经许可的任何形式转载,可咨询文末的责编。

传统 CDN 自 2000 年诞生起,一直到 2010 年还都处在同一个发展阶段,技术并没有得到很大的提升。其中很多还使用 Squid ,一般在全国有 30 – 40 个左右的节点。前几年,移动互联网还没有发展起来时,通过电信和联通节点基本上能覆盖全国的用户,最多 60 个节点就足够了。而从 2010 年开始,移动互联网开始普及,用户量逐年攀升,整个网络因而就有了加速的需求。

UPYUN 在当时不能满足这个需求,因此开始构建自己的云 CDN 系统,该系统在 2010 年开始研发,一直到 2015 年,总共经历四个迭代的周期。

2010 年,UPYUN CDN 的架构搭建

UPYUN的云CDN技术架构演进之路_第1张图片

2010年 UPYUN 由于刚刚起步,节点数量还不是很多,大约三四十个。当时的边缘节点用 LVS 去做负载均衡,下面每一个节点会布置 5 到 10 台服务器,这些服务器中装的应用系统主要是 ATS 和 Nginx 。

做系统无法回避两个问题:流量统计和加速规则的配送、配置。UPYUN 当时对 Nginx做了大量开发,比如用 C Modules 做插入。当时使用的是三层架构,从大的架构来看,边缘有 40 个节点左右。中转节点大概有四个,如果有更优的路线,它可以快速的去拉取内容。

UPYUN 的中转机房都是多切入。例如,有一个新疆的电信用户要访问浙江的电信数据中心,走哪条线路最快?是从新疆直接过来(到浙江),还是从新疆先到北京,再转到浙江更快呢?中转节点的一个好处就是可以合并, 40 多个边缘节点没必要每个都回到源区,这会导致源站的带宽卡顿,也会使得节点规模越来越大,对源站的要求更高。而有了中转节点,就可以把这层的压力大大的缩减。

第三层是杭州的数据中心,数据中心里有 LVS 和 ATS ,ATS 的下一层才是我们的云存储。总体的大架构到现在也没变,只不过是每一层里面的系统都变了。

2013 年, UPYUN 的系统调整

UPYUN的云CDN技术架构演进之路_第2张图片

UPYUN 所有用户配置规则集中在数据中心里面,通过 LVS 把规则推送到所有的边缘节点, LVS 上面去索取每一个域名的访问规则,不会跟数据中心做交互,直接到节点里面去获取数据就行了。

2013 年UPYUN最主要的工作,是将第一代的系统完全改写。幸亏这件事情当时就做了,不然到了今天接入大量的大客户就会束手束脚。因为大客户会有很多定制需求,如果用 C Modules 去满足,就得安排专人负责,还需要耗费至少一个月的时间去开发、调试等等,会很非常的麻烦。

现在,UPYUN 的开发周期为一周,这里面还包括测试。UPYUN 系统得到了部署,也因此变得非常的简单、灵活。如今可以做到每周发一版本,UPYUN 的 CDN 每周都在迭代,每个星期全网跑的业务都在升级。

到了 2013 年,UPYUN 的 CDN 节点从原来的 40 个变成了 60 个。中转节点也增加到了 8 个,数据中心从 1 个增加到了 2 个。

2014 年, UPYUN 的业务拓展

UPYUN的云CDN技术架构演进之路_第3张图片

2014 年 UPYUN 在原来的基础上得到了很大的增强。主要增强的是中转节点。

中转节点在第一、第二代面向客户时,都包含云存储。但是到了 2014 年,UPYUN 开始考虑单独向外提供云 CDN 服务,这个势必会牵扯到直接连接特殊的源站,当时的系统架构无法满足。所以 UPYUN 对于中转层做了一定的改造,如多加 Nginx 等。中间的部分,对比 2013 年的“ LVS 为第一层 ,下一层是 Nginx ,再下面是 ATS , ATS 直接连到数据中心”这种结构发生了变化:多了一层 Nginx 的逻辑控制。这个域名对应的是 UPYUN 的数据中心或是客户的源站。

这其中还有很多功能,都做得很细致。比如多源站、多 IP ,支持热备,支持负载,支持多个线路的优化等。无论客户源站是有电信、联通、移动还是同时都有,UPYUN 都可以支持。用户甚至可以配置海外的源站,这项功能 12 月份上线,底层已经有了应用。 UPYUN 会针对源站网络的情况做特殊的路由,用户只要选好就可以了。

2014 年也是 UPYUN 云 CDN 在基础规模上爆发增长的一年, 2014 年UPYUN的边缘节点达到了 130 个,中转节点达到了16 个,数据中心没有扩张,还是两个。130 多个边缘节点所能提供的带宽冗余是一个 T,物理服务器所能提供的网络处理能够达到 1 T 。

2015 年及未来, UPYUN 将大踏步前行

现状:国际化推进

到了今年, UPYUN 云 CDN 的系统研发基本成熟,现在更多做的是一些大客户定制化的需求开发以及对接。

另外还有一条路,是UPYUN运维部门做得最多的,也是今年的重要里程碑: 2015 年, UPYUN 正式开始对国际加速做铺设,第一站打通了从香港到浙江的光纤链路。如果你是 UPYUN 总部的同事,你可以在公司网络或者自己的电脑上铺上公司的 VPN ,观看一个 404 网站的高清视频。4K 的视频可以流畅到达浙江的网络里面。UPYUN所有的 E-Mail 都是谷歌系统的。

此外,上文提到过,UPYUN 支持客户配置在海外的源站。如果客户源站在海外,怎么做加速呢?如果还要过一道墙,这个内容是拉不过来的。UPYUN 在 11 月搞了两场香港演唱会在大陆的全网直播。这个光纤能够做到延时仅 30 多毫秒,就可以把这些内容拉到浙江。

在有了香港这么大的光纤之后,UPYUN 可以接力欧美的核心节点。一个是在美国的洛杉矶,一个是在法国那边。这两个节点之间也有光缆:连到美国是海缆,连到法国是路缆。三个骨干节点形成 UPYUN 云 CDN 未来国际加速的骨干网络。

2016 年UPYUN会在骨干的基础上做一个新型发散的铺点。边缘节点服务于骨干,进行开放式的铺设。比如现在有亚太地区、台湾节点,还有新加坡节点,它们都是依赖于香港的骨干节点。在美国,UPYUN也铺设了三个节点,这些边缘节点会通过骨干的光纤链路再回到UPYUN大的平台里。

相比之下,欧洲的客户需求要少一点,因此UPYUN 的策略是优先做好美国,欧洲节点 计划于 2016 年初启动。到现在,UPYUN 已经拥有七个国际的加速节点,三个主要的骨干节点。

未来:第二次爆发

UPYUN的云CDN技术架构演进之路_第4张图片

2016 年,UPYUN 将会有自己的 DNS 调度系统。现在的架构有赖于 DNS 做智能地区调度,这无法满足 UPYUN 的需求,因为公司接下来会有一个二次铺点的计划。这意味着 UPYUN 在一个省份、一个线路里面会有多个机房提供服务。但在这种情况下,没办法做到高效率的负载均衡。因此才会有 UPYUN DNS 的系统。

此外就是直播加速。从安全这方面来说,DDoS/CC/WAF 防护上都会做更大的技术、资源投入。比如 DDoS 防护,如果是一般大小攻击的话,UPYUN 可以默默帮你扛下来。但如果它达到了一定大的规模,UPYUN 就会马上派销售人员与客户沟通,从而做到 10 到 20 分钟里排查出具体原因、受到多少的攻击,并判定该攻击是否需要持续去保障这个服务,或者可以忽略,暂时选择终止服务。UPYUN 会与客户做好需求的沟通工作。

2016年,UPYUN 会更多地聚焦在视频加速与直播加速方面。这两方面的技术储备已经有一年多了:从 2014 年底开始,UPYUN 就在做这方面的技术储备。比如 UPYUN 的视频加速目前已经接入不少的 OTC 厂商。用户家里的电视机如果是联想的话,它走的 CDN 就有用 UPYUN 去做加速。另外还有一些电视的盒子,也是基于 UPYUN 的 CDN 去做内容分发。另外,UPYUN 明年还会在直播方面做大的拓展,因为 UPYUN 的网络已经具备了这个能力。

最后一点,是 UPYUN 的移动应用加速。大家只要使用移动SDK去做网络请求,你的网络性能就起码能够得到 20 % 到 30 % 的提升。而且不需要使用 UPYUN 的服务就可以做到,直接连接自己的服务器都即可,因为它是一个 HTTP 协议优化。

分享人:黄慧攀,UPYUN CTO。他是 aLiLua Web 开发框架的作者,有 14 年互联网从业经验,技术经验涵盖范围比较广,早期以前端 Web 开发为主,后期逐步转到底层研发方向。

本文整理自 UPYUN CTO 黄慧攀 日前在“UPYUN 架构与运维大会·北京站” 上的主题演讲。[UPYUN 架构与运维大会](https://www.upyun.com/archopsconf.html)是国内领先的新一代云 CDN 服务商 UPYUN 独家主办的大型技术会议。大会面向全国运维和架构从业者,邀请业内一线的架构师和运维专家进行纯干货分享,旨在推动各项运维技术、产品架构等在互联网和移动互联网的研发和应用。

(责编/钱曙光,关注架构和算法领域,寻求报道或者投稿请发邮件[email protected],交流探讨可加微信qshuguang2008,备注姓名+公司+职位)

「CSDN 高级架构师群」,内有诸多知名互联网公司的大牛架构师,欢迎架构师加微信qshuguang2008入群,备注姓名+公司+职位。

你可能感兴趣的:(UPYUN的云CDN技术架构演进之路)