本期名人堂我们有幸邀请到了Alluxio创始成员兼开源社区副总裁范斌先生。范斌先生讲述了自己的求学、工作、加入开源社区的经历,以及对未来十年数据编排发展的展望,和对开发贡献者的一些建议。
1.范斌老师您好,很荣幸有机会采访到您,请先介绍一下您自己?
大家好,我是Alluxio的创始工程师以及开源社区副总裁(VP of Open Source)。我本科毕业于中科大计算机系,随后分别在香港中文大学计算机科学工程系和卡内基梅隆大学计算机系取得硕士和博士学位。博士期间我在分布式系统算法和系统实现等方向发表多篇包括SIGCOMM, SOSP, NSDI等国际会议论文,包括提出了Cuckoo Filter算法。加入Alluxio前, 我在Google从事下一代大规模分布式存储系统的研究与开发。
2.您从大学本科到博士都是学的计算机专业,而且横跨了大陆、香港和美国三地,为什么会这么着迷于计算机呢?
我算是从很小的时候就开始接触计算机了。小学三年级的时候,我参加了学校组织的计算机兴趣班,系统地学习了BASIC语言编程。我至今仍记得在老师指导下,编写的个BASIC程序“打印花布”,实现在电脑屏幕上反复输出同一个符号“#”,如同在一匹布上打印出好看的花纹。当时我一下子就被这个程序迷住了,觉得编写计算机程序,按照自己的想法去做这样或那样有趣的事情实在太好玩了。这就是我入门的经历,从此就非常专心地开始学习计算机程序设计。
小时候我只是觉得计算机是一个有意思的玩具,可以打游戏也可以编写游戏。念完大学、读完博士以后,非常深刻地认识到这是一个非常了不起的行业,它深刻的改变了整个人类社会的运行方式,所以我很自豪一直投身在计算机科学行业当中。
3.在CS领域TOP4的卡内基梅隆大学计算机系攻读计算机博士是什么体验?对加入Alluxio开源项目和创业公司有什么影响?
我在207年进入了卡内基梅隆大学攻读计算机博士学位,方向是分布式系统,主要是分布式网络系统和分布式存储系统等课题。这一期间,我非常有幸能和很多的专家、学者以及的同学一起共事,这个宝贵的经历使得我的专业水平以及对领域的认识都得到了相当大的提升。特别是让我近距离观察到的学者是如何认识问题、研究问题和解决问题的。我们当时具体解决了什么问题可能相对没有那么重要,而关键是收获了一套方法论,这样后面再做很多类似的事情都会非常得心应手,可以说这是我在整个博士阶段大的收益之一。
因为同样做的是计算机分布式系统的一些研究,所以我去加州大学伯克利分校访问的时候,认识了当时正在那里攻读博士学位的李浩源博士。当时他的博士项目就是Tachyon,后来改名叫做Alluxio。也是因为这样的机缘,后来我就选择从Google离职加入这家创业公司。
4.您博士毕业后即进入谷歌并在核心存储基础设施团队负责构建分布存储系统的开发,这段经历有什么样的收获?
我在攻读博士期间学习和养成了一套好的方法来研究和解决一些系统难题,但真正的工程实践能力还没有得到好的锻炼。这是因为这一时期作为一个博士生我专注目标是发表好的论文。而为这些论文写的代码也就是俗称的研究代码(research code),追求的是把一些好的想法快速实现原型,展现给同行看,但并不要求达到生产标准(production ready)。这是从学校里做系统研究的一个常见问题。你也可以理解为学术界和工业界的分工是不一样的。
我在加入谷歌工作的两年里大的收获是拓宽了视野以及培养了良好的工程习惯。我一直觉得Google就像是计算机江湖里的少林寺,整个大数据以及AI领域里的各种各样的技术,其实很大一部分早都是发源于Google的。在这样的平台,你可以见证很多技术的发展脉络,并提前五到十年看到下一个时代的技术趋势。这个对于开阔我的眼界是非常有帮助的。
5.作为Alluxio早的初创者,为什么会选择加入Alluxio?有哪些吸引你的地方?对比谷歌这样的大厂光环,你怎么看待加入startup公司能够带给你的收获?
其实我在卡内基梅隆大学念博士的时候就立下了一个决心,会去参与一个初创公司。我一直就没有什么大厂情节,始终觉得在小公司尤其是初创公司里面做事会更有趣,节奏更快,更有挑战性。对我来说, 我只是一直在等一个合适的机会,能够找到一个我喜欢并愿意为之付出的团队和项目。
6.Alluxio起源于开源项目,目前逐渐商业化,在越来越多的行业被客户认可并使用,是否可以举几个典型例子,Alluxio如何给客户带来巨大价值?
这是一个非常好的问题,我在不同的客户环境下会看到大家使用Alluxio的不同方法。不过总体而言,大部分用例都是通过更快的把数据呈现给计算,帮助客户更高效地管理、使用数据,使他们能够更快的从数据之中挖掘价值。举个例子,比如说在中国联通这样的场景下,通过使用Alluxio可以使他们对于类似Spark这样的任务环境有更好的数据管理效果,以及更好的数据输出速度。这样就可以使中国联通大数据平台上的工程师更有效率地完成他们的工作内容,同时更快速的去迭代算法的开发以及一些不同业务逻辑的开发。这带来的是生产效率的巨大提升。再比如新加坡的星展银行,东南亚大的银行之一,他们有一些关键的业务跑在Alluxio之上。以上例子都表明了我们所提供的这套数据服务对我们广大用户的巨大价值。如果这套服务出了问题,不工作了,那给相关企业带来的麻烦也是巨大甚至是致命的。正因如此,我感觉我们的工作责任重大,同时也对我们的成就非常自豪。
7.展望未来十年,您觉得数据编排将在整个大数据领域扮演什么样的角色?
我觉得数据编排会成为一个默认的数据层。无论什么时候,不论你是想获取数据,还是想要做大量的数据处理和计算,你都会习惯于从数据编排这层提取数据。它会成为一个大家默认的数据层,也会成为工业界里面的一层工业标准。有了这层标准之后,提供计算的厂商和用户都可以轻松自如地做他们想要做的事情,而不用去关心具体的数据是怎么获得的,或者它是在一个什么样的服务里边怎样设置的。届时,这种相对底层或是比较繁琐的事情就交给数据编排层去处理了,我觉得这会是生产力的一个巨大的进步,会让社会的生产效率达到一个更高的层面。
8.作为Alluxio开源社区的PMC Co-chair对开源社区发展有何期望?有哪些想对开发贡献小伙伴们说的话,您有什么tips可以让大家快速的玩转开源社区吗?
好的,首先非常欢迎大家加入Alluxio开源社区。我在读博士的时候就已经做了一些项目,然后开源了出来,但当时并没有意识到这其实只是开源的程序,一个源代码并不是真正的开源社区。开源社区是人和人之间的组织,社区内的人和人之间会有很多活动和联系,而开源某个项目仅仅是把你的代码放到Github上或者是类似的服务上托管出去,和真正去做开源社区有很大的不同。
我作为Alluxio开源社区的co-chair,我的任务是如何把这个社区里的用户、代码修改的贡献者以及有能力去做整个项目演进的开发者很好的组织起来,使大家都能各取所需,并在项目中充分发挥自己的作用。在这个过程中会有很多非常的朋友参与进来,而我们在结交新朋友的同时自己也会学习到很多宝贵的经验。
如果说要给开发者一些tips的话,我觉得是尽可能多的参加社区活动,了解社区里面的人都在做什么事情,提前思考自己期望得到哪些方面的指导,然后多跟社区里的人做分享交流。这样做会比自己盲目摸索的效率高很多。
我们社区成员主要集中在Slack channel和微信群中,如果大家对这方面有兴趣的话,欢迎直接加入我们的Slack channel或者联系微信小助手,和我们的contributor或maintainer做一个沟通,相信会有事半功倍的效果。