写点什么

十年前只想混一个 Apache 邮箱装逼,十年后却成了顶级项目创始人

  • 2019-01-11
  • 本文字数:3921 字

    阅读完需:约 13 分钟

十年前只想混一个Apache邮箱装逼,十年后却成了顶级项目创始人

正式采访 Luke 之前,我们跟他进行了一次电话上的长谈。在那次长谈中,Luke 谈到了他对中国开源三个阶段的看法,谈到了浙大中控的经历对他的影响,谈到了他现在的人生只有工作和睡觉两件事。


那次长谈的最后,Luke 说,Kylin 对现在的他来说就意味着他的一切。


这是一个怎样的项目,可以承载一个人的一切?一个基于机器学习的智能数据仓库,一个由中国工程师推到全世界视野下的开源项目,一个可以一直待在 eBay 却出来创业的团队。


他是韩卿,Kyligence 的联合创始人和 CEO,Apache Kylin 的创始人和项目管理委员会主席。


00:00 / 00:00
    1.0x
    • 3.0x
    • 2.5x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.75x
    • 0.5x
    网页全屏
    全屏
    00:00


    Apache Kylin 项目简介:


    Apache Kylin 是一个开源的分布式分析引擎,提供 Hadoop/Spark 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由 eBay 开发并在 GitHub 开源。Kylin 项目一经开源,即获得了业界众多的称赞,并于 2014 年 11 月被邀请加入 Apache 软件基金会,成为 Apache 的一个孵化项目,2015 年 11 月,经过投票正式毕业成为第一个来自中国的 Apache 顶级开源项目。


    Q:Kylin 是中国第一个 Apache 顶级开源项目,为我们简单讲讲 Kylin 开源时候的情况?


    我们是 2014 年 10 月份开源的,11 月份的时候被接受成为 Apache 孵化器项目,因为 Apache 的项目都是需要经过一段时间的孵化才能毕业成为顶级项目的。当时我们刚刚贡献过去的时候,确实有很多西方人会用有色眼镜来看我们,因为之前有那么一两个来自中国的项目去过,最后都失败了。那么他们给我们的一些质疑在于是说,我欢迎你们来玩,但我觉得你们英语不够好,觉得你们对西方文化的理解不够,觉得你们会比较保守等等。



    举个例子,在最早的时候,我们可能会有中国用户跑过去用中文问问题,我们当时的导师会非常的焦虑,他会自己拿谷歌翻译,翻译完了之后说你们要用英文来回答,因为他担心我们会全变成中文了。他们会非常的在意我们是不是用真正的开放的方式去做这件事情。


    我们自己的做法是我们帮他翻译成英文,然后再用英文去回答。这是一个信任积累的过程。最后其实我们毕业的时候,那位导师给我们的评价是蛮高的,他在 Apache 官方博客里的评价说 Apache Kylin 代表了亚洲国家,尤其是中国在开源界的参与和贡献。


    互相建立信任的过程,重要的是我们怎么在社区里去运营这么一个项目。是不是用英语去讲这件事情?各种各样的决策和讨论是不是在邮件列表里?因为确实在其他项目发生过,中国人全在 QQ 群或者微信群里,邮件列表里面没有,这就造成很大的挑战,因为他们希望所有的讨论都应该搜索引擎可以搜索得到,所有这些东西都应该被记录下来,这对于整个项目的长足发展是最好的。


    Q:您个人其实没有海外留学的背景?


    Kylin 的创始团队和现在公司的管理层都没有。


    Q:那么您进入开源社区的时候有没有文化不适应?我们见到一些项目在这方面会有冲突。


    我觉得还好。因为一方面我们之前有在外企工作的经验,我们这个团队也比较 open,比较适应这样一个沟通。


    我觉得你首先需要尊重别人。不是说看我这边交易量有多大,所以我们的技术多厉害,这个文化就不对了。然后我们非常的坚持一定要用邮件列表去交流、去做决定。


    Q:有没有被质疑得比较严重的时刻?


    Kylin 这个项目启动的时候就是被质疑的。Kylin 的核心做法是用空间换时间这样一个方式来提升性能,这个方式当时在 eBay 内部是全新的一个项目,当时我们碰到蛮多的反对意见,说你们这样可能做不出来。我们当时的架构师跑到美国,去给一个非常资深的架构部高管讨论这个项目,对方就各种各样的质疑你,质疑到你感觉你都不相信自己。但是这非常的没理由,因为他不来看你的细节,所以导致当时我们架构师一拍桌子,合上电脑说,You shut up!


    后来我去美国出差的时候又遇到他,一见面他就跑过来说,Luke 你们这个做法是做不到的,因为他从自己的认知来质疑说这样一个技术是不 work 的。但我当时就跟他说,我们现在上面跑了几个应用,我们已经做到了把大量数据放进去之后,我们的性能比传统仓库还要好。


    后来碰到另外一个挑战,是公司内部改组。改组之后,我原来最早的用户就没有了,因为每个部门的优先级都变掉了,我们这部分事情就不是他们最重要的事情。



    一个项目没有用户在内部的时候,是非常具有挑战性的时候,因为如果没有用户,你可能会被解散掉。那么当时我们花力气找用户,其中有个用户跟我们关系不错,也很认可我们这样的一个方向,因为他们确实有痛点,但他们有一个要求,就是有一个技术问题你必须解决,不解决我们就不用。当时我们回来讨论的时候,我们架构师拍桌子说,为什么把这样一个用户给接回来?因为这个确实太难做到。但是这家伙蛮有意思的,回去之后找了很多论文,第二天早上回来跟我讲说,好像找到一个方法了。所以后来其实在这个上面,我们确实找到了一个非常不错的突破点。


    后来我们找到他们一个最终用户,是一个澳大利亚的分析师,因为分析师是拿数据来做决策,当时开电话会议的时候,他的抱怨蛮多的,他说我是一个分析师,为什么要打开一个终端,用各种命令行跳到一台机器上去,用一种他非常不熟悉的语言去做数据分析?对他来说大量的时间被浪费在这些技术操作上面,让他很痛苦。但是后来过了一段时间,项目上线后,可能有一两年之后,有一天我们发现系统上跑了一个很频繁的应用,找了半天发现是他。他说这个项目后来给他带来的影响还是很大的,还写了很长的一封感谢信。


    Q:是不是可以这么说,当时 Kylin 这个项目要存活的关键就在于能不能找到用户?


    对。任何项目都是一样的,你没有用户,就没法儿证明你的价值。所以我们也非常感谢我们早期的这些用户,因为他们确实给了我们极大的信任。


    Q:当时是什么促使你们坚持下去,而不是说,这个太难了我们不做了?


    可能有点不服气吧?他们觉得你做不出来,我们就一定要把它做出来。



    Q:那为什么在别人怀疑你们,甚至你自己都开始怀疑自己的时候,你们没有继续怀疑下去?


    有一句话叫做打不死的小强对吧?回过头来想想,还是团队。当你一个人的时候,你是很难坚持的,因为你一个人的时候很容易就打退堂鼓了。但你会发现,一个团队在的时候,你会发现信心就来了。互相看一看,不能随便就放弃了,互相之间会给打气。很多时候是靠大家互相激励才能够搞得定的。



    Q:让您感到最自豪的事情是什么?


    我觉得最自豪的事情就是有一个非常好的团队,有一帮非常不错的小伙伴。当时 2016 年底的时候,我不断在融我们的 A 轮,那时候我们需要新的资金进来,融资当时确实有比较冷的一个阶段。我们好多团队成员就跑过来说,你什么时候半薪你就说,甚至什么时候停薪你就说,大家都非常愿意投入在这个事情上。



    我觉得这是大家对这件事情的认知,我们能够把这件事情做得很深很远,这是团队的凝聚力所在。


    Q:您觉得为什么会有这样的凝聚力?


    我讲个笑话:十年前的时候,我们写程序用了非常多的 Apache 项目,对吧?我当时的想法是,我什么时候去哪个项目里混一个 Apache 的邮箱回来可以装逼?


    我觉得重要的是自豪感。我们做技术出身的人,对于我们做的技术,是不是能够影响多大,是不是能够影响到别人的生活、工作,这个才是不一样的地方。


    就我们今天来说,尤其是非常大量的用户,在非常大的场景上使用起来,这种自豪感是非常不一样的。举个例子,招商银行整个全行的分析平台,全部从 IBM 到了我们这样一个平台上,这在十年前是不可想象的一件事情,今天我们做到了。我们在美国也有客户,我们在西班牙也有客户,好像做得还是蛮有意思的,对吧?


    Q:您觉得 Kylin 这个项目对现在的您意味着什么?


    Kylin 对我来说意味着一切。第一方面是证明自我的价值,不仅是我,对大家的价值,这样的一个项目能够影响多深,影响多远。第二个是我们在探索一个开源商业的模式,我们可以看到几乎所有开源软件背后都是有商业公司在支持的,在美国可能比较流行,在中国其实实践的人并不多,我希望能够把这条路闯出来。另外一个是朋友圈,因为通过这样一个项目,能够接触非常多的人,以前你都不可能想象你能够认识,能够跟他们做朋友。


    Q:当时你们从 eBay 出来创立一家公司,是出于怎样的考虑?


    我们当时的考虑其实很简单,我们看到了好一点的开源软件,一个商业公司其实很有必要的,我觉得这是一个趋势。我们当时开源出来,整个业界的反响非常不错,能够看到非常多的潜力,所以如果我们想把这个事情做好,独立出来可能是一个最好的路。因为对于一个大公司来说,它不可能投入非常大的资源来做这么一个项目,我们当时在 eBay 的团队也就六七个人。但今天你可以看到,我们整个公司一百多人都扑在这个项目上。


    Q:但是以前会感觉很多巨头的开源项目会比较成功?


    我倒不这么认为。你要看它的生命力和持续力。我认为创业公司在后面支撑这些项目反而更成功。你靠巨头的支撑,其实有点像是在保姆下成长;靠创业公司运营的项目,其实是非常残酷的,因为你在市场上竞争,所以你能存活下来,你的生命力就一定是可以的。


    Q:您觉得 Kylin 现在成功了吗?


    我觉得远远不到。我觉得今天仅仅是一个开始,仅仅是我们做了一点点小小的成绩,能够让我们有一个非常不错的出发点。



    Q:您个人在工作之外有什么方式调节压力吗?


    我现在就只有工作和睡觉两件事情,但我比较喜欢看电影,尤其是一些科幻电影,星际旅行相关的一些题材,能够让你的想象力非常的大,能够让你的脑洞大开,能够让你想象科技未来的各种各样的可能性——不仅仅是好的方面,有很多是坏的方面,能够有很多人性的思考。


    我有段时间非常喜欢看一个连续剧叫做《太空堡垒卡拉狄加》,讲的是人类殖民地被机器人全部给攻陷了,就只剩下几艘船了,剩下没多少人了,整个的历程,综合了非常多的人性的思考、宗教的思考、各种各样社会形态的思考、对科技的未来的猜想,我觉得是非常有意思的,可以让你深入去思考科技到底能够到什么程度,技术到底能够走多远。


    2019-01-11 16:2911588
    用户头像
    二叉树视频 InfoQ旗下短视频品牌

    发布了 98 篇内容, 共 32.0 次阅读, 收获喜欢 184 次。

    关注

    评论 1 条评论

    发布
    用户头像
    Kylin确实是中国开源项目的代表,
    2019-01-12 15:50
    回复
    没有更多了
    发现更多内容

    不会还有程序员不知道跳槽季靠这1700道java面试题就能平淌大厂吧

    Geek_0c76c3

    Java 数据库 程序员 架构 面试

    喜迎华诞!10月月更伴随着国之盛庆向你走来!

    InfoQ写作社区官方

    热门活动 10月月更

    如何保障物联网平台的安全性与健壮性

    EMQ映云科技

    物联网 IoT emqx SSL/TLS 9月月更

    软件测试 | 测试开发 | TorchServe搭建codeBERT分类模型服务

    测吧(北京)科技有限公司

    测试

    软件测试 | 测试开发 | Aiomysql 与 Sqlalchemy 的使用

    测吧(北京)科技有限公司

    测试

    OBCP实验全面升级|官方为你送上备考攻略+福利

    OceanBase 数据库

    Ribbon都有哪些负载均衡的策略?

    想要飞的猪

    Ribbon

    软件测试 | 测试开发 | Android App 保活服务的配置与禁用

    测吧(北京)科技有限公司

    测试

    软件测试 | 测试开发 | ThinkPHP 接口开发过程

    测吧(北京)科技有限公司

    测试

    8万字208道Java经典面试题总结(附答案)

    Geek_0c76c3

    Java 数据库 开源 程序员 开发

    软件测试 | 测试开发 | 用模拟器实现视频流的音画分离

    测吧(北京)科技有限公司

    测试

    软件测试 | 测试开发 | Lambda表达式介绍和底层实现分析

    测吧(北京)科技有限公司

    测试

    系统集成行业如何进行降本增效

    Onegun

    小程序 小程序容器

    软件测试 | 测试开发 | Golang协程池的使用

    测吧(北京)科技有限公司

    测试

    阿里面试官内部题库!阿里发布2022年Java社招岗(正式版)面试题

    Geek_0c76c3

    Java 数据库 开源 程序员 架构

    hystrix熔断器的工作流程与它的舱壁模式

    想要飞的猪

    Hystrix hystrix名词概念

    软件测试 | 测试开发 | 基于NSQ搭建高可用分布式消息队列

    测吧(北京)科技有限公司

    测试

    IPQ5018, 802.11ax,wifi 6e,QCN9074//IPQ8072A IPQ8072 IPQ8074 IPQ8074A 4x4/8x8 2.4G & 5G 802.11ax //Wallys

    wallys-wifi6

    IPQ8072 ipq5018 IPQ8074

    软件测试 | 测试开发 | Vue3.0 如何写自定义指令

    测吧(北京)科技有限公司

    测试

    软件测试 | 测试开发 | code2vec 代码的连续分布式矢量表示

    测吧(北京)科技有限公司

    测试

    软件测试 | 测试开发 | UI遍历中页面定义和动作事件筛选方法

    测吧(北京)科技有限公司

    测试

    开发者有话说|谢谢当年那个埋下对科技热爱的种子那个少年

    宇宙之一粟

    个人成长 人生故事 9月月更

    105道Java面试题,认真思考对你面试很有价值

    Geek_0c76c3

    Java 数据库 开源 程序员 面试

    软件测试 | 测试开发 | 如何用 docker 搭建虚拟环境

    测吧(北京)科技有限公司

    测试

    软件测试 | 测试开发 | 分布式自增ID算法Snowflake简介

    测吧(北京)科技有限公司

    测试

    软件测试 | 测试开发 | Pandas数据分析及可视化应用实践

    测吧(北京)科技有限公司

    测试

    软件测试 | 测试开发 | kafka 从入门到了解

    测吧(北京)科技有限公司

    测试

    软件测试 | 测试开发 | 如何提高站内SEO

    测吧(北京)科技有限公司

    测试

    软件测试 | 测试开发 | GraphQl:让你的接口所得即所要

    测吧(北京)科技有限公司

    测试

    探究MYSQL之索引

    C++后台开发

    MySQL 中间件 后端开发 C++开发 数据库索引

    软件测试 | 测试开发 | 分布式锁的实现方案

    测吧(北京)科技有限公司

    测试

    十年前只想混一个Apache邮箱装逼,十年后却成了顶级项目创始人_技术管理_二叉树视频_InfoQ精选文章