刘智聪,迅雷首席工程师,1984年出生,从小自学编程,毕业于南昌大学化学系,加入迅雷后设计开发了多款迅雷核心产品,是多个领域的技术专家,也是BOLT 界面引擎的发明人。下面是对他的专访全文,内容涵盖迅雷现在和未来的技术方向,以及刘智聪本人对未来技术的看法:
行业里最好的P2P团队和客户端团队
CSDN:能否先给大家介绍一下迅雷技术团队构成?
刘:迅雷的技术团队结构更趋向于扁平化而非树形。目前技术团队分为两大部分,一部分是事业部,这和传统互联网公司基本一致,每个产品都会一个技术团队。另一部分是有迅雷特色的基础技术研发,负责推动迅雷的技术发展和创新,这部分人在迅雷的时间长,级别高,但基本都不需从事管理工作。
CSDN:能否说说迅雷的特色团队?
刘: 迅雷有顶尖的P2P团队。P2P本来就是一个很少有公司涉足的领域,有机会做到上亿节点的网络公司更少,许多人讨论过的问题,我们的团队都见过。
我也有很强的分布式存储团队。现在行业讲的很多的云存储,其实迅雷很早以前就在做,当时不叫云,叫分布式存储,它最开始得益于Google那篇著名的GFS论文,但后来发现Google那套东西不完全适合迅雷,迅雷业务重流量,所以我们进行了很大的调整并在此基础上进行发展和创新,成为现在迅雷离线下载后台的核心技术。
另外,迅雷有整个行业里最好的客户端团队。当然这点没有什么值得骄傲的,因为迅雷本身就是一家做客户端起家的公司。行业里做客户端最出名的也就三家,分别是迅雷、腾讯和360,360是2008年左右才发展起来的。因为圈子比较小,相关团队后面都有过交流,其实使用的技术与大家能通过网络学到的东西差别很大。而迅雷是这3家里总结并升华得最好的,咱们有不少独门秘笈。不过由于现在Windows客户端开发不再是热点领域了,缺少新鲜血液,这个行业积累的技术其实很难传承下去。
迅雷是一家技术驱动的公司
CSDN:能否说说迅雷的技术文化?
刘:迅雷的技术文化就是典型的工程师文化,追求技术创新。刚刚提到的技术研发团队基本上代表了迅雷的技术文化。每个公司都有自己的风格,有些公司是产品创新型公司,比如腾讯,做微创新做得很好,这绝对是一种强大的能力,还有些是数据驱动型公司,而迅雷则是一家典型的技术推动型公司,我们真正做成的产品背后都是靠技术创新在驱动,这种性质导致迅雷必须坚持在基础技术创新上做投入。
另外,迅雷不论前端后端,各个部门都在用同一套框架,比如客户端使用 BOLT引擎。内部统一框架的好处非常大,有什么Bug都能很快向得到响应,可以说能做到这点的国内公司非常少。很多程序员,他们写代码总觉得别人的烂,自己的好,但是在我们这里,如果使用同一套框架,出了问题大家先不说代码的好坏,而是先解决问题。我们创始人是工程师出身,他自己非常推崇这一点。
CSDN:在你看来,迅雷最核心的技术是什么?
刘:P2P,迅雷一直致力于让整个网络更有效率。举个简单的例子我们一直在研究P2P上传的数据是什么?我们常说,百度是最理解二进制文本文件的公司,那么迅雷算是行业里最理解二进制的一家公司。迅雷有很先进的P2P内容识别技术,不过迅雷的技术会一不小心踩到所谓的灰色地带,这种事已经发生过很多次,有时候做了一个很好的产品无法上线,吃一堑长一智,久而久之,迅雷的研发团队个个都成了法务专家。
CSDN:迅雷有什么产品是因为法律问题而无法存活的?
刘:最著名的就是狗狗搜索。迅雷在2007年的时候是下载领域的老大,彻底击败了BT。我们2007年做了几件事情,一是推出迅雷看看,那时候迅雷是国内唯一一家能提供高清在线视频播放的公司,播放后面的技术就是P2P。二是推出狗狗搜索,你可以在上面找资源,当时狗狗搜索的量非常大,基本上达到了百度的三分之一,但因为存在法务上的风险最终放弃了。所以现在大家都注重技术和产品的法律前瞻意识。
迅雷的现在:分离资源寻找与资源下载
CSDN:在大家的印象中,迅雷就是下载的代名词,但互联网变化风云莫测,而且迅雷已经称霸下载市场多年,迅雷下载未来会怎么发展?
刘:我们今天的一个想法是你可以在任何一个地方去找资源,除了搜索之外,还可以有朋友之间的分享。但用户肯定不会随身携带电脑,而且用户一般不会在手机上下载资源。所以迅雷就想将两者分离,用手机找资源,然后遥控其他终端进行下载,下载端可以是电脑、电视,或者路由器,最适合的是路由器,因为你不可能一直开着电脑或者电视,但是大多数人的家中,路由器是不会关闭的,可以在任何时候遥控下载。这样回到家后想要的资源已经下载完成了。
迅雷的未来:建立下一代P2P网络
CSDN:上面说的都是最近事情,很多人感兴趣,迅雷未来会做什么?
刘:迅雷的未来想做这么一件事情:提高整个网络数据传输的效率,通俗了讲就是泛加速。迅雷下载实际上是一种比较特殊的数据传输行为,频度不高,但数据传输在网路里每时每刻都在发生,包括浏览网页,看视频、看图片、玩游戏等等都无需下载的操作。做泛加速的目的,不希望仅仅把加速局限于下载,而是扩展到数据传输。
CSDN:如何做到
刘:这就需要考虑网络的核心问题,你可以把中国的互联网想象成公路网,如何提高运输效率?有一个公式是D*L,D就是数据,你没法减少网络对数据的需求总量,网络负载就只有这么大。提高效率的重任就落在了L上,L过去是从原始服务器到用户终端的距离,如果缩短了L就可以提高效率了。
如何缩短?这个可以跟物流公司学,有一句话叫“物流不流”,比如在深圳买北京的东西,如果在广州仓库有一模一样的货,那么它会从广州直接发货而不是从北京,这就叫物流不流。但P2P数据传输有个问题,它在传输过程中,只有两端知道传输的是什么数据,中间的节点不知道。
迅雷要做的事情就是通过对数据贴标签的方法来识别“一模一样的货物”,再通过在建数据缓存节点的方法来让数据离用户更近,而在路由节点上建缓存的过程其实是将TCP/IP网络改造变成一个有Cache的网络。为了要提高Cache的命中率,我们会预测数据是不是非常热门,如果是,那么就更容易被缓存。
改进网络效率的另一个方法是更好的调整整个网络的路由。最近相当流行的SDN技术解决的还是机房内的问题,但如果我们把SDN的思想运用到全网,这就像是支持路况信息的导航路线规划。我们要做的就是,在网络繁忙的时候能够让一些数据的中转,就是路由器的转发表,不再去往主干光纤转,而是往一些可能平时比较偏门,大家觉得不愿意走的小路上去。
而通过软路由,我们能做一个覆盖一、两亿结点的SDN网络来。要做这件事情,并能够时时分析出一些东西来,需要非常好的大数据处理能力,所以我们也开始在这一块加大投入,支撑智能选路。
第三个就是,希望SDN网络除了能做到分流之外,还能修改网络的物理拓扑,现在的情况是,有线路由器的拓扑结构必须要拔线才能改变,比如说AB两个路由连着C,然后C连D,D再连着E和F,它是一个蝴蝶型的结构,在有线情况下,是没有办法通过软件去修改的,你只有通过拔线,但是未来我们要动态的去修改这条路的关系,比如说这两个路本来是相交的,我们把它改成平行,能不能做到这一点?这个可能我们不但要自己做这方面的技术研究,而且我们还需要跟硬件厂商在一起,做一个开放的标准,比如所有的无线路由器,都需要支持我们一个这样的软件控制接口,能够去修改它的连接方式。
CSDN:现在这份工作进展到哪一步了?
刘:面向系统的第一个目标及第二个目标的最主要的相关协议和规则我们已经在设计了,不是什么特别复杂的东西。在迅雷验证这些技术靠谱后我们希望把它公开出来,大家共同建立这个网络。时间上希望这套方案能在2014年完成技术验证,毕竟迅雷已经为互联网上20%左右的数据贴好了标签。
CSDN:有人说迅雷在移动互联网转身太慢,你怎么看?
刘:每家公司都有自己的基因,迅雷在移动互联网发力并不晚,我们在塞班时代就已经开始做手雷了,但现在一直不温不火,主要还是下载在移动互联网上确实不算是一个主流的事情。但是一家公司的基因不是说改就改了,我们不会去做社交,或者电子商务, 我们一直在找公司的基因与移动互联网的结合点,并会坚持下去。
希望BOLT未来能与HTML5抗衡
CSDN:能否说说BOLT引擎?它如何与你们现在所做的东西结合?
刘: 我现在的愿望是BOLT能取代HTML5,其实BOLT跨平台的方案比HTML5更彻底,性能更好,但它不是关系迅雷生死存亡的东西,目前在这上面投入精力比较少。BOLT这个东西,解决的问题涉及面太广了,未来还有更广泛的应用,它的舞台会更大,影响会超过中国的范围。我希望在解决了迅雷的核心问题之后再回到BOLT这件事情上来。目前这个系统还处于早期阶段,要像HTML5一样过渡到行业标准,必然要解决开源、标准化、工具支持等等一系列问题。现在使用BOLT的开发者,在国内公司大概有170多家,独立开发者也有一些,加起来大概有三四百来人。
只有具有强烈爱好的人才能真正做一些很难的事情
CSDN:你给人的感觉简单直爽,迅雷在招聘上喜欢哪种人才?不喜欢哪种人才?
刘:人一定要有独立判断能力,国内不论普通人还是一些大佬,跟风都特别严重,如果出现什么新的技术,他们的第一反应就是抱发明者大腿,抱大腿有一个好处,如果这项技术起来了,你会成为行业里的第一批专家,可以垄断一些话语权、出书。国内有很多高手去干这件事情,对此我非常伤心。
他们缺少独立的判断能力,大家说HTML5好的时候,我偶尔在技术群里说一两句类似HTML5解决有些问题的方式非常烂,它的包袱太重,以至于没有办法达到更好的性能和轻量化的时候,会被板砖砸死。前段时间Google出了一种GO语言,这个东西别的不说在语法上太丑了,完全不能接受这么丑陋的东西,我偶尔表达一下意思也被一堆人骂老古董。
我喜欢具有独立判断能力的人,绝不是为了反对而反对,我希望的独立判断能力是,你判断的背后是你的价值观和原则,你有你自己的标准。比如说HTML5不好,但不能全部否决,它也有好的部分,里边的CSS我就很喜欢,在我的引擎里,中后期也开始引入类似的东西,但更加单纯一些。
其次要有激情,有自己的爱好。很多硕士面试的时候半天说不出自己有什么爱好,这是个非常严重的问题。我一直相信只有强烈的爱好才能推动你去做一些非常难的事情,你才能真正看到一些背后别人看不到的东西,可能因为应试教育,许多中国人缺少这一点。
最后一点就是与天赋有关了,这个可遇不可求,你要有洞察能力,有一眼看穿本质的能力,如果有这种人,恨不得立马拉进团队。