叔度谈CDN系统和开源

个人简介 朱照远,2009年加入淘宝网,花名叔度,现在是阿里云-核心系统部-Web平台团队负责人,负责阿里巴巴Web服务器、CDN等系统的研发。他是开源Web服务器项目Tengine的发起人。他的研究方向包括高性能服务器开发、大型网站的架构和性能优化、云计算技术等领域。

全球架构师峰会(International Architect Summit,下简称ArchSummit)是由InfoQ中文站主办的一次全球性架构师峰会。ArchSummit专门针对架构师人群,讲述与架构和架构师相关的各方面趋势、技术和案例。这也是继QCon之后,InfoQ中文站主办的又一次高端技术盛会。

   

1. 大家好,我是InfoQ的阿明,非常感谢网友继续关注我们的视频节目。在架构师大会现场我非常高兴邀请到了来自于阿里云的叔度老师,请叔度老师给网友先自我介绍一下。

叔度:大家好,我本名叫朱照远,花名叫叔度,2009年加入阿里巴巴,一开始是加入淘宝,我现在是在阿里云的核心系统部Web平台组,负责的主要方向有阿里巴巴的Web服务器的开发,以及阿里云的CDN的开发。我感兴趣的方向一个是高性能网络服务器,另外还有云计算,还有一些网络协议的优化,等等。

   

2. 叔度老师,据我所知,您也是加入阿里云开源项目团队的委员会最早的成员之一,目前来说,开源这个话题大家都谈的比较多,对于用户来说,哪些可以开源,哪些不能开源,这些认识我觉得还是需要梳理一下。想请教你一下,你觉得有哪些开源的话题是阿里非常关注的?也是阿里正在做的?当然我也知道你之前也是Web服务器项目的发起人,这些话题网友也非常关注,想请你先跟我们分享一下这些情况。

叔度:开源其实在中国可以分成两个大的方向,一个是个人项目的开源,另外一个是企业项目的开源。目前来看个人项目的开源已经走得比较不错,也涌现出了一些项目,当然跟国外非常优秀的项目的相比还是有些差距。另一个方向,我今天想重点谈的就是企业的开源,企业开源其实现在应该说国内也是刚刚起步不久,其中有一些典型的企业,比如像阿里、华为等一些做得不错,其实还有更多的企业我觉得它们是在犹豫,就是不知道怎么去参与开源,因为一方面不知道开源带来什么好处,另外一方面也不知道开源对它来说可能会失去什么。所以有一天我在微博上就发了一句,如果一个企业你不知道什么不能开源,那就不要开源,如果你知道什么不可以开源,那你就可以踊跃地参与开源,因为开源技术其实对一些底层,尤其是对很多公司来说,比如说像阿里这样的企业来说,我们的核心竞争力当然包括技术,但是技术不是我们最最核心力的东西,我们最最核心力的东西是数据。数据这块我们是不会开源的,因为这关系到很多用户的隐私,还有类似一些交易数据、用户信息等。但是对于一些底层的,比如我们开源出来对社会有价值,对其他的IT企业有帮助的,比如像内核的,Linux内核,还有外部服务器,包括MySQL、Java虚拟数据库等一些软件开源出来,其实对整个IT业界是有帮助的,我们开源出来会和整个业界一起来促进创新,一起来把技术提上来,而且也可以回馈一些社区,所以这种我觉得是可以开源的。知道什么不可以开源,你就可以踊跃地去参与开源,我觉得现在国内的一些企业是比较顾忌,觉得开源它可能失去很多东西,但是我觉得完全不必要,只要想明白了什么是你的核心竞争力,只要你的核心竞争力不开源出去,是可以踊跃参与开源的。因为开源可以带来很多好处,首先最基本的,开源是有游戏规则的,它的游戏规则就是License,假如GPL的License。根据这个游戏规则,你在GPL协议的软件上进行了修改,那你就需要把它反馈给社区,如果这个游戏规则不遵守,至少很多工程师会觉得你这个企业为什么会这样,这是最基本的游戏规则。当然像BSD、Apache这些协议来说,它们的规定就不是那么严,所以你可以自己修改了,然后自己保留在企业内部。我刚才说的是已经使用外面的开源,另外一方面就是企业自身自研软件想要开源出去,其实开源出去之后,假如说这个社区很活跃,别人用得上,别人可以给你提bug,甚至提patch,至少也可以提一些使用的建议,发现的一些问题等,那对你开源出去的软件是有帮助的。另外,对于企业开源,你把技术开源出去,比如对于阿里来说,我们的收获也挺多的。比如说工程师,因为我自己是一个工程师,对我来说,假如把我自己做的东西放出去,可以让更多业界的同仁来一起使用的话,我的成就感会更大,而且用户对我的鼓励,我也觉得很开心。而且很多用户可能会改变原来软件设想,不只在A场景用,在场景B也可以使用,会带给你一些惊喜,更不要说提patch这些。

   

3. 刚才也提到你对CDN这方面也是专注时间比较长,我想知道像阿里最早像淘宝CDN,阿里也做CDN,为什么阿里的体系里面对CDN这么专注?有哪些价值?

叔度:其实阿里巴巴,当然包括淘宝,在底层技术的投入是非常大的,现在我们谈论起互联网,常常说BAT这三家公司,其实在很早以前,阿里巴巴的技术,比如可能在2007、2008年之前,那时候阿里巴巴的技术没人觉得它特别强,但是那时候马总就觉得,假如说一家公司要做大,那必须要在基础研发的技术上投入很多力量才可以。就拿CDN来说,一开始我们是使用商业的CDN,但是随着规模的增大,自研和租用这两种终究会出现一个交叉点,他们一开始像规模小的公司,租用是比较划算的,但是规模发展到一定的大的公司,比如像当年淘宝2008年那种规模,使用商用的,第一不能满足需求,第二费用太高,所以在这个场景下,我们就开始自研CDN,自研CDN通过一步一步扎实地做技术,包括使用开源的技术,包括使用自研的技术,不仅满足了整个阿里巴巴集团,包括淘宝、天猫、支付宝等这些企业对CDN的需求,而且我们现在发现还可以把阿里巴巴的云计算技术输出出来,对CDN来说,其实是云计算的一部分,输出出来也可以对整个业界服务。

   

4. 目前整个业界对CDN的讨论也算是一个热点,你觉得有哪些挑战?或者它的成熟度在哪些方面还存在一些问题?

叔度:其实CDN是一个相对来说已经成长很多年的行业,因为从1998年最早阿克曼在CDN这个行业开始以来,到现在也算是16年了,相对来说很多方向是成熟的,比如说静态文件的加速等等,这些方面是很成熟的。但是现在已经是移动互联网的时代,所以有一些新的挑战,比如说移动互联网的支持,如何去做好支持。另外一方面是现在的安全问题越来越严峻,特别是很多中小的网站,它们自己是第一没有技术实力去抗拒攻击,第二它也没有这个资源,因为如果要防攻击的话,需要有很大的带宽投入,以及很多机器成本的投入,当然还有最重要的技术的投入,很多中小企业是没有能力去负担的,所以这需要CDN厂商去解决这个问题。

你可能感兴趣的:(叔度谈CDN系统和开源)