10月23日,EGO北京分会会员、PingCAP联合创始人兼CTO黄东旭作为EGO线上分享第二季嘉宾,与超过位EGO会员交流了自己在开源软件和创业方面的感悟。本文为根据口述内容整理的实录。 口述|黄东旭 整理|赵新龙 为什么要做开源和基础软件 我是黄东旭,PingCAP联合创始人和CTO。今天刚好回想起来,我拥有第一台电脑是在年的,到今年年,我编程刚好20年。而且今天也是TiDB1.0正式版发布的日子,在这个日子分享,我觉得蛮有纪念意义的。 我是一个基础软件工程师,一直在做分布式系统和数据库相关的研发,之前我在豌豆荚期间完成了一个使用比较广的开源分布式缓存方案Codis,很多朋友之前也是通过Codis认识我的。 缘起 我最早是在豌豆荚基础软件团队维护MySQL集群时有了这个想法。当时豌豆荚的整体技术架构比较朴素,上层用Codis支撑分布式缓存,底层数据库是MySQL和一部分HBase。当时MySQL大概有16个分片,就是最传统的分库分表。当时豌豆荚还没有全职MySQLDBA,维护MySQL就由我们基础架构团队负责。 当时我们非常痛苦,每一次数据库扩容和调整都感觉要掉一层皮。主生产库不能容忍停机,同时每一个分片有自己的储备,扩容一次不仅要把主节点拆分,还同时要在业务层上做拆分;而且在业务层有很多的工作,比如说语句的所有请求必须带着ShardingKey,不能做Cross-shard的事务或者稍微复杂的查询。当时大家很希望有办法解决这些问题。 我跟另一个合伙人刘奇,现在是PingCAPCEO,都在豌豆荚的基础架构团队,当时就想做一个MySQL中间件解决这个问题。这有点像MySQLProxy了。我们做了一段时间,发现做出来既没有太多的创新,也不会彻底解决问题,当时干得还挺不开心。 那段时间我们看到了GoogleSpanner的论文,觉得未来的数据库应该是这样的。我们希望能够有这样的东西,解放后端程序员,解决关系型数据库在面对海量数据高并发时的扩展性问题。 然后我们就开始做这个数据库。 蹒跚学步 我们从第一天就坚定地要走开源路线。我们研究了国外有名的开源项目是如何发展起来的,包括MongoDB、Kafka、Spark,同时我们在Codis项目上也积累了一些国内社区运营经验。 公司头三个月都是三五个人的状态,早期员工都是我们三个创始人的前同事和朋友,没有依赖猎头,也没有依赖第三方的中介。早期我们的目标非常简单,就是写代码。整个阶段大概持续半年,我们开源了第一个TiDB版本。 说起来非常好玩,第一个TiDB的版本是不能存数据的,只开源了MySQL协议处理层跟一个简单的SQL优化器,数据只能存储在本地,并不是一个真正的分布式的数据库。当然了,现在我们已经是完整的分布式数据库。 我觉得做开源就是这样,不是一下子把所有东西做好,而是一步一步让开发者社区看到进展,这一点非常重要。所以当时我们就决定在第一个可以run的版本就把整个代码开源,看看社区有什么反馈,在社区发发声音,同时开始组织线下的一些技术meetup聚集人气。 通过持续的分享,我们逐渐在社区积累了外部贡献者,也有了几个试用的客户,比如当时华为的一个团队对项目非常感兴趣,也投入工程师参与开发。我们慢慢积累了社区影响力,年底完成万美金A轮融资。这时候,距离公司成立一年多,公司逐渐变得比较正规,不再是“软件作坊”。 小步快跑 A轮完成之后,我们加快人员结构调整,开始扩大工程师团队。开源有个好处就是,好的项目会让很多人快速知道,在社区有影响力,很多能力不错也一直在贡献代码的工程师对项目非常感兴趣,他们本身是我们公司很好的人才储备。 我们从社区里“招安”了一些优秀工程师,吸纳到PingCAP开发团队。最开始的10个人持续了一年左右,从10个工程师到50个工程师也用了差不多一年,这段时间正好是项目从比较粗糙变得完整精致的转折点。到现在,每个核心组件有10到15人团队负责,他们本身是社区贡献者,同时是PingCAP员工,全职工作就是提交代码、在社区讨论、跟社区协作制定未来的开发计划。另外有大概差不多20人的工程师团队主要做商业产品、商业化周边工具等。 我们在年12月发布了RC1版本,今天(年10月16日)正式发布了TiDB1.0版。现在也基本完成了美国的分公司的事情。 为什么要出海? 在中国,大家会遇到MySQL的扩展性问题,在美国也会遇到。所以这两个市场对于基础软件公司来说,不会像C端产品公司那样难以复制或者难以进军海外。基础软件领域是没有国界限制的,这是我们的优势。 开源项目怎么运营 在过去很长一段时间理,中国都没有在世界范围内的特别成功的开源项目。 我觉得这是有原因的。很多早期知名的开源项目,比如Linux、MySQL,都是国外草根开发者出于个人兴趣而投入大量时间和精力做出来的;运转过程中,开发者重度参与开源项目,也都是自发和出于兴趣。我称之为开源1.0。 这种模式不适合中国国情。在国外,整个社会是类似于能不能治疗白癫病你我携手共抗白癜风
|