专栏名称: InfoQ
有内容的技术社区媒体。
51好读  ›  专栏  ›  InfoQ

从eBay到Apache顶级开源项目再到创业,我是怎么样做开源并创业的?丨大咖说回放

InfoQ  · 公众号  · 科技媒体  · 2016-10-16 09:01

正文

大咖说是InfoQ推出的视频直播节目,每周四晚八点半和您见面!

回复:麒麟,获得直播完整版视频。

回复:InfoQ,加入大咖说直播群,不错过下次直播

本视频时长53分,建议在Wifi环境下观看。


引言

Apache Kylin,这个月正好开源两周年,从2014年10月到现在,Kylin项目和社区的发展非常迅速,赢得了众多用户、开发者的认可,吸引了众多的贡献者。从最初的几个人,发展成了今天几百人的活跃社区,全球超过100家公司使用其作为大数据分析平台核心。

从eBay内部立项,到开源并加入Apache、毕业成为顶级项目,再到出来创业成立Kyligence公司并顺利拿到几百万美元的天使投资,这一路不易,吃过很多苦有过很多故事,希望通过这次分享,将一些这方面的内容讲给各位朋友们,了解如何寻找开源技术的方向,如何成长,如何参与国际社区,以及如何营销开源项目,获得融资等话题。

孵化:如何寻找开源项目切入点和方向?

Apache Kylin,是一个开源的分布式分析引擎,在Hadoop之上提供标准SQL接口及多维分析(OLAP)能力,为超大规模数据集提供亚秒级的交互式查询能力。

Kylin在2014年10月开源,于2014年11月加入Apache软件基金会成为孵化器项目,并在2015年11月顺利毕业成为Apache顶级项目,蝉联两届InfoWorld评选的最佳开源大数据工具奖,今年更是和Google Tensor Flow一起获得该奖项,足见社区和业界对Kylin项目的认可。

故事一,Kylin是如何来的?

大家可能都知道,eBay是传统数据仓库Teradata全球最大的用户之一,同时也是商业智能公司MicroStrategy全球最大的用户之一。在Teradata上存储着几个PB的数据,eBay的运营、决策、产品优化等诸多活动都依赖数据平台的分析能力。

但随着业务的发展和大规模数据的产生,传统技术架构在性能、存储、成本等方面遇到了极大的挑战。而同时,在Hadoop集群上则存储着超过100多PB的数据,但存储成本大大低于传统EDW。而那个时候,Hadoop生态非常缺乏一套完善的交互式分析框架,缺乏支撑传统数据集市、数据仓库分析的多维分析技术。

在2013年9月,我们来自eBay中国研发中心的团队,启动了BI on Hadoop的预研,在2013年10月的时候,第一个POC完成,从技术方向上验证了想法,这是Kylin最初的版本,从此开启了麒麟的大数据之旅。

寻找开源项目方向,甚至创业方向,在业务和技术的痛点处下手,着眼行业和技术的发展趋势,并且寻找有着刚需的早期用户,相对容易成功。这也是技术工程师很多时候的一个短板,我们习惯于从自身的需求出发,以技术的思维,以技术是否fancy来看待。

就如同Kylin本身,其实是非常经典的利用空间换时间的预计算架构,但早期,包括来自eBay的内部外部技术工程师、架构师等都不看好这个方式,但最终我们证明了在超大规模数据集上,O(1)的查询算法复杂度有效的解决了分析师、最终用户的痛点,使得他们的查询可以在秒级甚至亚秒级返回。这也是目前那么多公司和团队使用Kylin的原因:解决业务用户的需求和痛点才是王道。

故事二,坚持你的判断,并为此冒险

我想分享第二个故事,是我们架构师和我去美国汇报拍桌子的故事。当时我们做了一些初步的开发后即进行了相当大规模的测试,从各种数据表明,这是一个正确的方向,只是,需要更长的时间和路。

在2014年初,我们架构师去美国总部汇报,在和当时整个Hadoop平台的高级架构师开会的时候,对方毫无理由的直接说你们这个不能成功的,你们这个做不到等云云,但多“请教”一下为什么的时候,却一点儿也说不出个所以然来,我们架构师,Kylin的创始人之一,直接合上电脑拍着桌子叫他shut up!被我们直接用各种数据和技术架构吊打了一番后变成极其诚恳。

后来一次,我去总部汇报的时候,这个家伙又抓着我说你们这个怎么这么不work,当时,我故作惊讶的说,是哇,但那个谁谁谁的项目已经上线了,10+B以上的数据查询性能都在秒级... 话没说完他已经开始扯其他的了...从此,对我们刮目相看。

在技术创新的路上,很多时候会遇到阻力,会遇到高阶技术人员的非难,如果你相信你自己,相信你的团队,相信未来,那必须坚持,虽然也许会失败,但不坚持,不冒险,一定没有Kylin的今天!

故事三,说服你的老板,找到你的早期用户

一个新的技术和项目,总不是那么容易成长,在公司内部,获得管理层的支持,获得早期用户的认可是极其关键的。在获得来自中国管理团队的支持下,我们的研发取得了非常不错的成绩,同时各项测试和POC符合预期。

在2013年底,当时eBay的高级副总裁来中国出差,我们分组向他汇报,在会上,他非常高兴中国团队能够领导并研发新的技术,在我介绍到未来技术成熟后准备开源的时候,他直接打断我,问我:为什么不从第一天就开源?并分享了公司在开源方面的投入和方向,并让我们要open source from day one。

这也是Kylin为什么能够在eBay内部生产环境上线后第二天就push代码到Github上的原因。今天,开源创新为eBay获得非常高的行业认可,去年Kylin获得InfoWorld最佳开源大数据工具奖的时候,有位高级副总裁的评价就是“这让eBay又回到了技术公司的行列”。

技术,不能仅仅只是一种技术,必须找到合适的早期用户,在Kylin的开发过程中,曾经的一个Pilot用户突然说不需要你们这个技术了,由于公司的组织架构调整和业务变化,这非常突然。幸运的是我们很快就找到了更多的早期客户,并在他们的支持下,紧密配合,一起完成了相关的项目,并证明了,新的技术可以满足相关的需求,甚至做到以往所做不到的分析。

成长:普通程序员,如何学英语?

如何和老外沟通,有什么技巧?

在Kylin成为Apache 项目后,我们受邀在世界各地做过多次分享,包括伦敦,旧金山,硅谷等,同时,在Apache社区里,所有的交流和沟通,也全部是英语。在做直播前,InfoQ的编辑希望我能分享一下作为一名程序员,如何提高英语,如何与老外沟通,如何在社区成长,这里,我也分享三个故事。

故事四,你的态度决定了别人如何对你

英语,是我们参与国际开源社区的一大挑战,往往,我们读英文文档毫不费力,但进一步,去沟通,去交流,却有着很大的挑战,而作为技术工程师,我们缺乏很好的渠道去锻炼自己的英语能力。参与开源项目,则是最好的一种方式。而在这个过程中,收获往往超过技术和语言本身。

今年5月份,我去加拿大温哥华参加ApacheCon会议,和ASF的官员交流的时候,他们都提到了有中国团队和工程师在其他项目中和西方人交流的时候的用词,态度非常的不好,甚至用“粗鲁”来形容。

他们提到的项目,我也曾经看过一些讨论,确实值得我们深思,这也导致了国人团队的提案迟迟无法获得通过的原因!一方面,英语表达已经吃亏了,而又不谦虚,或者仅仅只是自己不注意,导致了沟通上的鸿沟,这最终受伤的还是我们自己。

如今,Google翻译等已经非常成熟的时候,多花一些时间来准备和整理自己的表达,会逐渐获得社区的尊重,态度,远超语法、用词等。  

故事五,请刷脸,不仅仅刷Code

去年年底,参加北京的一场技术活动,晚上去微软的研发中心参观。席间,很多朋友聚在一起聊天,并讨论相关的开源项目和社区等。有位来自阿里的朋友问到:我一直在某个社区里,这三四年提交了很多patch,对改进该项目做出了非常大的贡献,那如何成为该项目的committer呢?

当时,我们问提交了这么多patch,知道帮你review的是谁吗?知道他是哪个公司的吗?参与社区的讨论了么?回答说都不知道,一般就找到问题,开JIRA,提交patch,看review结果再修改…

从技术上,已经做得很好了,但希望进入社区主流,希望别人认可你,需要更多的去刷脸,而不是仅仅刷Code!这在很多新的热门项目中尤为明显,很多人抱怨社区不接受patch,问题是你用什么形式提交?是否去积极交流和影响,是否能够准确的表达出相关code的作用、影响等?show me the code没错,但能把这个code讲清楚,和别人争论并赢得认可,这其实比代码要重要的多。

最近看到新闻那位朋友已经成为该项目最新的committer,非常的欣慰,也期待更多的朋友能够参与到各大开源项目中,成为核心的committer。

加速:Apache项目是怎样从孵化到顶级项目的?

需要打点人际关系吗?

故事六,赢得尊重

今天,我们作为Apache顶级项目成为了Apache 基金会经常提到的Born in China TLP (Top Level Project),在技术社区也有了一席之地 。但在项目之处,其实并没有那么容易。这里分享一个最初的故事。

当最初我们提交到Apache孵化器项目后,有资深的社区活跃者就说:欢迎来自中国的项目,但是,我们对你们能否毕业持怀疑态度。提到之前也有一些来自中国的项目做过尝试,但最终都失败了。而且非常直白的说对我们的English能力,是否能接受西方文化的开源方式等持怀疑态度。

这在当时给我们带来了非常大的负面影响。甚至在一开始的时候,在一些朋友用中文问问题的时候,各种指责,挑刺等都有。

外企多年的工作经验对我们带来了很多的帮助,在构建整个Kylin社区的过程中,虽然所有的开发者都是中国人,但是所有的交流、文档、讨论都是以英语为主。

同时,后来加入社区的华人朋友,我们也极力让大家使用英语,甚至在一开始,有朋友使用中文问问题,我们都在解答的同时,要求每一个核心贡献者将问题都翻译成为英文。虽然很辛苦,但最终的收获非常的好。今天,Kylin社区虽然还是以华人为主,但所有的讨论都是以英文,毫无障碍的进行着。

特别是我们最终毕业投票的时候,很多社区有影响力的朋友都出来说经过长时间的观察,认为Kylin社区是完全符合The Apache Way的方式进行,也非常赞赏我们在社区以开放的态度进行的各项讨论和决策。最终Kylin社区赢得了整个社区的尊重。

故事七,尊重规则

任何社区,都是有其运作方式,也有其规则的。作为东方人,我们需要的是更多的学习西方社区的特点和方式,努力适应之,影响之,通过长期的努力来让更多的人认可我们来自东方的项目和贡献。

在Apache Kylin毕业的时候有一个小插曲,当时,毕业投票在邮件列表里被一致的认可,收获了无数的+1(赞成)投票,并且如前所说获得很多大佬的赞赏和认可,这让我们当时非常的激动。

但突然在某个凌晨睡觉前,我刷邮件列表的时候发现有人投了一票-1(反对)票,理由是最新的发布版本中包含了Google Font字体文件。由于你懂的原因,我们必须将该文件打包进源码并发布,否则国内用户就无法获得该字体文件。于是我回复和解释了很多,并且找出了Google,以及Adobe关于该字体文件的相关License说明等以证明这是符合相关许可的。

但对方就是不同意,即使我们的导师,ASF的相关官员进行劝说都不行,当时我们是非常的生气,觉得对方在无理取闹,甚至我们导师都说对方是吹毛求疵,完全可以直接毕业。但,作为社区的规则,毕业必须获得所有的赞成投票,不能有反对票。当时感觉是非常的糟糕,很是不服气,甚至开始有脾气要去吵架。

但规则就是规则,吵架和抱怨毫无意义,于是我们决定紧急发布一个版本,去掉相关的文件,在最短时间内重新发布了版本,并重新邀请对方进行测试和评估,最终获得了认可,改投了赞成票,Kylin也得以顺利毕业成为顶级项目。

在开源社区中,特别是Apache社区中,有着来自世界各地的贡献者,有着完全不同的的文化和背景,要获得社区的认可,必须先尊重社区的规则。而今天,我本人也被提名成为Apache会员(ASF Member),作为少数来自中国的代表参与整个基金会的相关讨论和决策。

故事八,有人的地方,就有江湖

经常有朋友问到,在基金会,你们是否要打点人际关系?是否需要找人?这,让我有时候很不知所措。我们还是在过多的用着自己的思维和文化来看待相关的开源社区,这其实在以西方文化为主的开源社区中并不work。过于功利性,想通过“关系”走捷径,这最终只能让别人更看不起我们。

那,开源社区就没有圈子吗,也不是。有人的地方,就有江湖。只是你的江湖地位,是需要靠你的贡献来赢得,而且是实实在在的贡献,而不是靠钱或者别的方式去获取。

举个例子,今年年初有个项目一经提交就直接成为了顶级项目,很多朋友都问我问什么,感觉很奇怪。但仔细看相关的贡献者,你可以看到都是社区的资深人士,曾经或者正在贡献着相关的重要项目,也深谙社区的运作方式,所以直接作为顶级项目,在众多大佬的加持下,自然不是问题。而孵化,本质是让新来的项目和贡献者学习符合社区定义的运作方式,以符合社区的规则。  

创业:如何对开源进行营销?

如何融资,并进行准确的市场定位?

故事九,早期用户,你的黄金搭档

开源项目,开源容易使用难,被广泛使用则更难。而第一个障碍则是如何让新来的有兴趣的朋友能够更快更方便的安装好使用起来。在Kylin开源后,2014年底的时候,当时的安装文档、脚本等都不完善,但在我们自己的环境中可以很好的使用,所以一开始有人报告相关的安装、编译、兼容性等问题的时候都没怎么在意。

后来,随着项目的推广,越来越多的人使用起来,也开始暴露越来越多的问题,特别是很多人报告连编译和安装都成了问题,一段时间,几乎整个邮件列表里都在讨论编译的坑,适配的坑,不完善的脚本等等等等。

后来,我们意识到这会极大的影响到用户体验,会让用户被阻碍在真正使用Kylin技术之前,最终会影响到后续的使用,甚至口碑。所以,我们当即作了一个决定,在当年春节前,我们要完成新用户的一键安装(确保一条命令行将Kylin服务正确启动),完善相关的文档,示例等。

经过一个多月的努力,终于在春节休假前的几天,完成了二进制包、安装脚本、文档以及其它辅助工具等开发。从而使得社区更加容易的安装和使用Kylin 。一个非常明显的改变就是春节后,邮件列表里基本没有再怎么问安装和编译的问题,开始更多问使用、设计、调优甚至代码实现等问题,从而促进了整个Kylin社区的健康发展。

早期客户,在尝试你的开源项目的时候其实是抱着极大的风险的,作为社区的作者,我们应当尽力去帮助他们,让他们更加方便,放心的使用你的项目,一方面,可以更好的促进相关技术的发展,而另一方面,也是营销开源项目的绝佳方式。

Kylin一经开源,就有来自百度、美团、网易等朋友跟进,并且最终都获得了不错的使用效果,今天,你可以从互联网上找到相关的案例分享。用户案例,实际的使用效果,这,是最好的开源项目营销方式。     

故事十,技术创业,融资没那么简单

开源项目,开源容易创业难,被投资认可并拿到资金更难。包括我们,最近有很多项目,自己开源,或者基于国外开源项目的商业化,都在尝试着融资,尝试着商业化。但需要指出技术创业,并没那么容易。

在我们最初融资的过程中,见过N多的投资基金,讲述过无数遍的商业计划,有一次我被要求第二天去北京见合伙人,当天早上飞机去,下午被拒绝,晚上再飞回上海,当时是极其沮丧。

融资,更多的需要我们跳出技术的思维,更多从商业化的角度,从投资人的角度去看待你的技术和项目,去认真评估项目的商业价值和技术壁垒,甚至需要更多验证,才有机会拿到投资。

为什么我们能拿到投资?当时我们有着足够多的用户案例,并且在社区,在twitter,在linkedin等,都有很多人,特别是来自美国和欧洲的用户不断咨询商业支持及企业版,这给了我们,同时也给了投资人极大的信心。同时,我们也有着基于开源的清晰的商业化方向和模式,并有着Databricks,Cloudera等公司作为参考。

故事十一,技术都开源了,如何赚钱?

那么,既然技术都开源了,组建了创业公司,那如何赚钱呢?有个故事是某个国内一线的公司,一直在使用Kylin,一看到我们创业的新闻,非常焦虑的来“试探”我们的口风,关心是我们是否不再持续开源,或者只会把落后的淘汰版本开源。

其实,认真的开源-商业公司,都不会玩这样的模式。我们的研发工作,绝大部分依然在开源的Kylin中,这是我们商业版本的核心,而且会一直保持同步。开源的Kylin,我们会一如既往的按既定的Roadmap往前演进,也期待更多的社区需求。

那么,靠什么赚钱呢?我想分享一下我们正在做的实践,希望为各位有兴趣尝试开源-商业模式的朋友提供一些参考。一方面,如同Cloudera发行CDH一样,我们发行Kylin的企业版KAP,Kyligence Analytics Platform,为企业级用户提供更完善的企业级特性、兼容性及可管理性等。

同时,我们也为客户提供基于我们知识库的在线诊断和优化服务:KyBot。并且,也将进一步在云平台上提供相关的能力,大家可以看到上个月在微软Azure中国镜像市场发布的时候,我们是第一家提供大数据服务的供应商。

我们在开业伊始,就有美国的公司联系我们需求商业支持及企业级版本,最终成为我们的第一个客户,这,发生在公司成立三周内。今天,有众多国内外的客户和合作伙伴在和我们合作,并且已经赢得很多的付费客户。

商业化,并不轻松,我们只是刚刚开始,希望更多的朋友来一起帮助我们成长。

写在最后

作为本次直播分享的总结,本文希望将相关的一些故事分享给各位朋友,希望我们的经验,我们踩过的坑能够给大家带来一些参考和帮助,也期待更多的朋友参与和贡献到开源世界中。

故事十二,耐心和心态,以及不忘初心

最近,有很多朋友,来找我咨询如何加入Apache社区,如何成为committer,如何进行“开源”并最终创业等。特别是有朋友非常直接的提到如何将相关的项目“运作”到相关开源社区,并且商业化。

我和他聊了很多,他的项目有着不错的用户基础,但属于工具类,作为给工程师使用的方向, 商业价值其实并不大,因此建议他在现在工作的情况下,先不断的将该项目进行推广,获得越来越多的用户和案例。

开源,虽然可以成就商业模式,但更应该是顺势而为的事情。我们需要更多的耐心,以更好的心态,贡献到开源社区,赢得社区的认可,为用户带来真正的价值,当有越来越多的用户使用你的项目的时候,自然有商业价值和更宽广的未来,甚至给你带来远超你预期的结果。

开源,请不忘初心。

老司机简介

韩卿 | Luke HanKyligence 联合创始人&CEO,Apache Kylin 联合创始人&PMC Chair,ASF Member, 微软MVP,EGO会员,QCon明星讲师,QCon明星出品人。

延展阅读(点击标题):


喜欢我们的会点赞,爱我们的会分享!