转载

视频访谈: 黄东旭:创业不如写代码惬意

黄东旭: 其实我已经是QCon的常客,前几年InfoQ、QCon还有Archsummit都会来参加。但是以前都是作为参会者,这次是第一次以讲师的身份过来。给我最大的印象是你们一年比一年好。因为我之前参加社区的会比较多,明显QCon给我的感觉就是非常高大上。

黄东旭: 我很小就开始写程序,小学二三年级就开始用 basic来写程序了。一直以来非常喜欢open source、hacker的文化,其实我一直给自己的定位都是软件工程师,不管在什么职位上。从软件工程师开始到架构师,现在在PingCAP做CTO,一直以来我每天都有很多的时间写代码。可以这么说,我个人是一个很喜欢写程序的人。总体来说,我觉得在国内像我们PingCAP有这种hacker气质的公司并不是太多,我觉得我过去的经历和受到硅谷这边文化的影响,影响了PingCAP公司的性格,总体来说,我就是一个很喜欢写程序的人。

3.

黄东旭: 对,享受写代码这种造物的过程。

黄东旭: 我觉得在基础软件领域,开源是唯一正确的商业模式。因为开源是一个更好的软件分发方式,对于基础软件来说,你不应该闭源,如果你选择闭源的方式,你就需要构建很大的sales团队去touch你的客户,客户有痛点找不到需求,需要等着你的销售团队去找他们。但是如果你选择了开源,反过来是会让他们带着需求到社区找到你,你可以touch到更大的痛点或者是需求,甚至对于他们的特殊需求有一些自己的修改,还能反哺到社区里面。因为基础软件并不是像专业软件有太多的领域支持,只有当你的影响力和社区足够大的时候才能发挥更大的价值,不要重复造轮子。因为刚才也说了,我从小是受open source这种文化熏陶很久的人。基本上我做的所有的东西都会开源。包括之前在豌豆荚做的分布式缓存Codis也完全是开源的方式来做,一是个人喜好,二是商业上的一些想法。

黄东旭: 我先简单解释一下PingCAP这个名字的含义,CAP是分布式系统里面著名的定理,就是CA、CP、AP三个特性你只能满足两个,不能满足三个。自从谷歌把他们的Spanner和F1论文发布出来以后,业界说CAP理论好像可以达成了。但其实并没有达成,它是C,HA跟P,我们的野心不仅仅是想做一个数据库。目前来说OLTP分布式的管理型数据库,它在整个数据膨胀时代,单机的数据库是没有办法搞定的。但是我们可以通过这个切入点把分布式的solution在OLTP场景了里面落地,未来我们肯定会选择在上面接入其他的像search,像分布式文件存储,把整个上下游构建起来。你的产品如果跟你的公司完全绑定在一起,对未来是把自己的路限的太死,可能有这么一个打算。

黄东旭: 我们当初认真考虑过这个问题,甚至当时我们都已经差不多联系到Apache基金会的人,希望能把这个项目放在Apache里面做,但是后来我们是自己掌控这个项目的状态。最核心的原因是这样的,因为捐给apache基金会有一个问题就是你所有的工具,你讨论的形式和邮件组都需要在Apache基金会里面运转,它会给你指派项目委员会的负责人,以及项目的一些工具都需要用Apache基金会那一套。 我们觉得一个项目的早期,你需要快速的迭代,很多的决定不应该浪费在社区的讨论当中,可能就是民主跟集中的阶段的选择,早期我还是更偏向于集中式的快速的小团队的开发。因为在项目早期,你很难吸引一大波社区开发者进来,你只能通过内部人员快速的迭代先把这个项目做起来,做到一定的程度,这时候你再选择加入Apache基金会也好,linux foundation也好,对你的项目走向海外或者上另外一个新的台阶的时候,你再去考虑这个事情。其实我们有想法在项目要去海外的时候放到Apache基金会里面去,这算是一种市场PR的手段或者让海外社区更容易接纳你的方式。但是我觉得在早期还是以项目本身为主。Github确实很好用。

黄东旭: 我们之前也运营过Codis这个开源项目,国内的社区给我的感觉是这样的,因为随着整个互联网快速发展,硅谷的顶级工程师跟国内互联网顶级工程师,他们的水平并没有差多少。但是缺乏的是对于社区的反哺,我可以拿来用你的东西,而且我用的很好,我内部也改了很多,我明明可以贡献,但是我很难把自己的东西share出来,我觉得这个是比较缺乏的。所以在中国做我们采取的并不是从草根出发的方式,现在京东跟华为都有全职的工程师在我们的项目里面提交代码,他们更像是公司内部有需求,我们也是touch他们从上往下推进这个项目,让他们参与进来。而不是说纯粹的是一个业余时间草根的开发者行为。在国外可能更多的是一种自底向上,在国内社区你可能需要自上而下推进。

但是我觉得情况会越来越好,随着中国开发者的水平提高以及和硅谷文化的交流,我觉得会有一天你会看不出到底哪个项目是中国孵化的,哪个是美国孵化的。我们中国有信心可以做到全球级的顶级开源项目,我觉得像TiDB已经迈出很好的第一步,我们发布的时候引发了国内外社区很多的讨论。摆在中国开发者面前比较大的问题就是语言的问题,因为社区是一个重沟通、重交流的人与人之间活动的平台,你永远都是在自己的华人圈子里面或者是中文圈子里面,你很难让世界知道你。我觉得这个是国内工程师或者是国内社区的一个问题,太害羞了,很难把自己放开跟老外去PK。这个我觉得还好,我相信中国人的技术水平的能力已经到了,接下来就是不要这么害羞。

黄东旭: 我们非常希望能把这种精神在国内推广开来,我们公司每周六都会有一个开放的数据库技术的meetup,会邀请社区里面或者是所有对nosql技术感兴趣的人过来一起讨论,我们去分享技术。我觉得分享并不意味着你的东西被别人知道了,你就完了。我觉得这个市场或者说这个社区是大家越做越大的,而且参与的人越多,对各方是双赢的事情。我并不认为你把一个很好的东西藏着掖着是一个很好的事情,我们非常喜欢把我们所有的技术全都开放给社区,把社区给带起来。

黄东旭: 现在我们的项目核心开发者大概1/3是来自我们公司的人,另外是一些大的公司,比如说刚才提到的华为和京东,他们有一些很强的工程师,也是全职在我们这边。但是比较遗憾的是,草根开发者必须得把他们聚集起来才会有规模的效应。对于开源项目来说,我觉得很重要的是人数不在多,一定要精。并不是说像很多项目,contributor有成千上万人,但是其实很多是提交了一行代码就走了或者改了一个readme就走掉了,当然这个也是很好的参与的贡献,但是核心的contributor并不宜太大,这一波核心的contributor应该是你自己培养起来或者去线下找到,跟他们一直在沟通,知根知底。算是一个精英核心小团队,这样的形式可能更好。而不是说你要把contributor的面铺的特别大,因为沟通成本也是很大的成本。所以我个人的感觉更偏向于主动出击,找到对这个项目非常感兴趣的人,把他拉进来。

黄东旭: 因为我原来就是一个一天一定得写十个小时以上程序的人,现在我一天能抽出50%的时间写代码就已经很不错了。创业以来,对我最大的感受,就是杂事太多了,你能真正去写代码的时间太少了,未来公司再大一点或者是走上正轨以后,我还是很想回去写代码的,现在的事情太多了。

黄东旭: 在Spanner的paper里面,它已经提到了,spanner的下一层目前是依赖谷歌的分布式文件系统colossus。在论文里面提到其实colossus对于spanner来说并不是一个必要的组件,在论文里说把它的依赖去掉是一个优化的点。因为colossus只是用来存储spanner的一些冗余的日志信息,它本身对数据的分布还是通过paxos的replication的方式来做数据的存储,它并不是强依赖的。

所以我们在做设计的时候,因为我们是从零开始写项目的,并没有像谷歌那样有一个历史负担。所以我们就选择一个更好的方式来实现,而且在系统里面,少一层分布式文件系统,意味着你RPC调用栈又少了一层,整个性能会更好一些,大概就是这样的。

InfoQ: 非常感谢你接受InfoQ的采访,谢谢你。

原文  http://www.infoq.com/cn/interviews/interview-with-huangdongxu-talk-entrepreneurship-and-coding
正文到此结束
Loading...