云CDN,是一种依托强大云计算平台而构建的先进的流量分配网络,可有效解决 Internet网络拥挤的状况,提高用户访问网站等应用服务的响应速度,使内容传输的更快速更稳定,同时提高服务可用性,并改善互联网上的服务质量。如今,CDN已经成为目前构成互联网基础的环节之一。移动互联网也让它的角色变得更为重要。它所带来的加速效果,在今天以速度构成的用户体验中,可以说直接影响着企业的用户认同度,速度慢则会导致用户的流失。而在对UPYUN(又拍云)来说,CDN能做的远不止加速这么简单。CDN与云的结合使得CDN能够提供更加丰富的服务,它为企业带来的功能也更具价值,UPYUN把这种全新的服务定义为新一代的CDN加速服务。
2010年之前,中国移动的网络基础设施还未大规模兴起,中国联通和中国电信的节点基本上可以覆盖到全国的用户,区区的60个节点基本上就可以做到全国覆盖了。从2010年开始,中国移动的网络基础设施开始实现大规模覆盖,用户数量有了大规模的增长,因此网络加速需求开始呈现逐年旺盛的态势。然而传统的CDN服务2000年诞生开始,直到2010年,技术并没有得到很大的提升。由于当时CDN服务无法满足UPYUN大部分的工作需求,因此UPYUN开始思考并着手构建自己的云CDN服务。在2015年之前,UPYUN对外宣称的品牌形象始终停留在提供“存储”服务的阶段,一直到2015年,UPYUN才将自己对外的品牌形象设为“云服务”,其主打产品为“云CDN”服务。UPYUN的云CDN系统早在2010年就开始研发,一直到2015年,总共经历了4年的研发周期。在这四年期间,基本上每年都会有一次技术上的迭代。
2010年,UPYUN的云CDN节点数量只有35个,处于刚刚起步的阶段,基本和业内持平。前端的边缘节点使用LVS来进行负载均衡,下面每一个节点布设5-10台服务器,服务器应用系统采用Nginx和ATS系统。由于对于一个CDN系统来说,无法避免的两个功能是流量统计和内容规则的推送与配置,因此早在2010年开始UPYUN就针对Nginx系统进行了大量的设计开发:使用C Modules去做业务功能的插入。
图1.2010年,UPYUN云CDN架构(源自UPYUN 黄慧攀)
从整体架构的角度来看,从2010年起,UPYUN就开始使用三层架构:
1. 边缘层,包括40个节点左右。
2. 中转层,包括4个节点。中转层不仅使得前端用户在回源时便于寻找更优的路线到达源站进行内容的拉取;同时还便于合并节点与路线,无需每个边缘节点都直接回归源站,从而避免源站的带宽堵塞;并且随着节点规模增大,中转节点可帮助源站分担压力,利于源站压力的缩减。
3. 数据中心层,该层使用Nginx和ATS应用系统,并向下连接UPYUN云存储系统。因此,整个的数据缓存有三层:数据中心缓存,中转层缓存以及边缘层缓存。
2013年,UPYUN由原来的C Modules改为使用Lua来开发业务模块,并在系统中引入Redis集群来开发整个公网的Push推送规则,所有的用户规则配置都集中在用户中心里面,并通过Redis将所有规则推送至边缘层,边缘层的每个节点只需到Redis中心获取域名的访问规则即可,无需通过Nginx与数据中心进行任何交互。
图2.2013年,UPYUN云CDN架构(源自UPYUN 黄慧攀)
2013年,UPYUN的主要工作都放在了原有的系统完全改进:即用Lua Modules去改写整个C Modules。这件事成功地使得UPYUN面对大量客户化定制需求时,能将原有一个月的开发调试周期缩短为只有一周,系统部署也变得简单灵活了。
2013年,UPYUN不仅在软件方面有一个大的飞跃,在硬件方面也由原有的40个边缘节点增加为60个节点,中转节点也由原有的4个增加为8个,数据中心由原有的1个变为了2个。
2014年对于UPYUN来说是业务大规模拓展与增强的一年。其中主要增强的是整个系统中的中转节点这一层。由于在第一代云CDN系统和第二代云CDN系统中,所需面对的只有云存储系统一个,但在2014年,UPYUN开始尝试向外延更更多的云CDN服务,这势必需要连接到客户的源上,并进一步连接到原系统的Lua上去,所以UPYUN研发团队在中转层中多添加了一层”Nginx + Lua Modules”逻辑控制,这样做的目的主要是为了判断其域名对应的是客户的源还是UPYUN的数据中心。当然在其中还会涉及很多功能细节:例如多源站可以支持热备、云群负载以及多个线路的优化等功能。其中多线路优化是指支持判断不同的边缘节点以及所连接的中转节点之间究竟是什么线路,客户源站是什么类型的运营商(电信、联通还是移动),甚至可以将客户源站配置为海外源站。总而言之,UPYUN会根据客户源站的情况进行特殊路由的设置,只需用户进行自主选择即可,该功能将于2015年12月对外发布。
图3.2014年,UPYUN云CDN架构(源自UPYUN 黄慧攀)
2014年也是UPYUN的云CDN在基础设施上爆发的年份。截止于2014年,云CDN的边缘节点达到了130个,中转节点达到了16个,这130个边缘节点所能够提供的带宽能够达到1T,即物理服务器的网络处理能力可以达到1T的带宽。
2015 年,国际化推进阶段:
2015年,整个UPYUN云CDN的基础研发已经达到了稳定成熟的状态,并逐步开始进行国际化推进。一方面,UPYUN公司将工作重心放在了大客户的定制开发和客户对接的工作上来;另一方面, UPYUN正式开始为国际网络加速进行铺设。首先第一站就打通了从香港到浙江的光纤链路,并成功地针对中国内地的客户进行网络加速。例如在2015年11月由UPYUN承办的两场香港演唱会的大陆直播网络加速服务,首先需要考虑的就是如何把香港的内容快速地推送到内地,目前可以做到仅仅30毫秒的延迟就能将香港的内容推送到浙江的用户源站。
图4 .2015 年,UPYUN云CDN架构(源自UPYUN 黄慧攀)
随着香港的光纤链路的成功建立,接下来UPYUN又着手建立欧美的核心节点,一个节点位于美国的洛杉矶,另一个位于法国,这三个国际节点的落地基本形成了UPYUN云CDN的国际加速骨干网络。与此同时,UPYUN还准备于2016年在三个国际节点的基础上完成节点星形网络的扩张。迄今为止台湾和新加坡节点建设均已取得不小的进展,而这两个地区正是以香港核心节点为基础的;美国也铺设了3个边缘节点,这3个边缘节点将首先通过美国骨干节点,再与中国大陆取得通信;欧洲节点扩张工作也将于明年初启动。迄今为止,UPYUN已经拥有7个国际加速节点,3个国际骨干节点。
2016 年,第二次爆发阶段:
2016年, UPYUN将此定义为第二次爆发阶段。在这一年,UPYUN将会持续进行软件层面建设,其中一个比较大的目标就是建立专属的DNS调度系统。由于现阶段的DNS的主要目的为智能地区调度,该智能调度的技术架构需要进行一个二次铺点的计划——即在同一个省份或线路中会布设多个机房提供服务,为了兼顾到高效率的负载均衡控制,UPYUN计划于明年开发专属的DNS系统。
图5 .2016 年,UPYUN云CDN展望(源自UPYUN 黄慧攀)
关于DDoS/CC/WAF等安全防护方面,UPYUN也将会做更大的技术投入和资源投入。UPYUN的CTO黄慧攀称,一旦用户受到了大规模的攻击,UPYUN会有专人前去与客户进行沟通,并在10到20分钟内排查具体原因,受到攻击的体量,帮助客户判断是否持续保障服务还是暂停服务。
从2010年到2015年,短短几年间,UPYUN的云CDN产品经历了从无到有、从小到大、直到迈向国际化舞台的过程,离不开技术在背后的强力支撑,以及整个团队不断总结、思考的态度以及探索的精神。UPYUN云CDN的技术架构演进之路,对于当今不断创新、不断转型的互联网行业也是很好的启示。