入职 Facebook 做了第一代高性能图索引系统,代号 Dragon,却被蚂蚁金服的一场年会吸引进而成功入伙;觉得自己可能并不是天生的创业者却转头搞了一家几乎全是技术人的公司,并成功拿到红点创投中国基金、经纬中国近千万美元融资;没有一个销售却服务了美团、腾讯、京东数科等众多大厂;没有极力推广,团队开源的图数据库项目 Nebula Graph 却已经在 GitHub 上获得了 5.8k 的 Star(截至发稿时)...... 这些听起来稍显凡尔赛的词条全都指向了一个人——杭州欧若数网科技有限公司(vesoft Inc)CEO Sherman Ye,他身上还有太多故事和想法值得挖掘。
大厂干得好好的却离职自己做,创业对这个技术宅而言到底有什么吸引力?为什么选择竞争者众多、本身还不是很火热的图数据库领域?为什么从一开始就选择用开源的方式去做?在项目介绍中称这是世界上唯一能够容纳千亿个顶点和万亿条边,并提供毫秒级查询延时的图数据库解决方案,是什么样的技术能力让这群技术人如此有底气?带着这些问题,极客邦科技创始人兼 CEO、InfoQ 中国创始人霍泰稳与杭州欧若数网科技有限公司 CEO Sherman Ye(以下简称 Sherman)展开了一场深度对话,以下为正文内容。
1先后离开 Facebook、蚂蚁金服,选择创业
“面试蚂蚁金服的时候,面试官就问过我以后有机会的话会不会创业,我的回答是有机会一定去创业,没想到就成真了。”
自 1997 年出国留学拿到学位之后,Sherman 就一直在国外工作,直到 2011 年初加入 Facebook 才开始接触图数据库。没成想,这次触电让图数据库成为了他日后创业的主赛道。
“我最初加入的是 Facebook 的搜索引擎团队,Facebook 的很多关系查询是基于搜索引擎做的,后来慢慢发现搜索引擎无法很好地满足关系的复杂查询。2011 年底,我跟另外的同事做了二级图索引项目试图解决这个问题,算是 Facebook 图数据库项目的早期雏形。”
虽然在 Facebook 做得还不错,但 Sherman 心里还是希望未来可以回国发展,直到 2014 年,在 Facebook 工作了四年之后,Sherman 决定回国。
被蚂蚁金服的一场年会拿下
2014 年,Sherman 一位在蚂蚁金服工作的朋友向其发出了邀请,希望他回国后可以考虑加入蚂蚁金服。同年 5 月份,Sherman 收到蚂蚁金服回国面试的邀请,便匆匆回国了。“我记得特别清楚,那天是 5 月 10 号,正好赶上了阿里日活动。面试完,对方邀请我参加他们下午的活动,地点是杭州的黄龙体育馆,一进入场馆就让我觉得非常震撼,整个体育馆大概容纳了一万人,气氛也和我想象中的国内企业完全不同,我当时觉得加入这样一家企业未来的发展一定会非常好”。
Sherman 与蚂蚁金服的缘分就从这样一场盛大的年会开始了。转年 1 月份,蚂蚁金服开始考虑将关系网络应用于金融风控领域,Sherman 顺利成为该团队的负责人,继续研究起了图数据库。“我们当时试用了很多第三方产品和开源产品都觉得不太行,最后又开始自己做了”。
就这样,Sherman 带领团队在仅仅 3 年多的时间里,成功研发出具有高性能、高可用性、扩展能力强和极佳移植性的 GeaBase。离开蚂蚁金服之后,Sherman 选择在图数据库领域继续前行。单就实战近十年这一点来看,这个选择似乎没有任何问题。但是,创业显然不是一人、一刀、一枪再配上热情就可以的事情。大部分创业公司早期阶段需要吸纳融资以维持研发过程的成本,所以选择资本看重的领域非常重要。相比于投资圈聊得火热的云原生、人工智能、中台等,图数据库领域略显冷清。
2为什么选择“不温不火”的图数据库?
“可能是因为我除了图数据库也没有其他什么特长,所以只好在这个领域创业了吧。”Sherman 打趣道。“事实上,过去几年,我们看到了图数据领域的迅猛发展,我认为未来 3-5 年,图数据库不能说取代主流的关系型数据库,但一定会成为非常重要的辅助产品。”
根据 Sherman 的判断,未来 3-5 年,就像现在几乎所有企业都在使用关系型数据库一样,大多数的企业也会使用一套图数据库来保存关系,这个判断是基于对整个业界的业务、技术以及数据量做出的判断。在与众多企业接触的过程中,Sherman 发现越来越多的业务方开始对数据之间、实体之间的关联关系感兴趣,因为他们发现其中可以挖掘出非常大的业务价值,这些关联关系就是图数据库要解决的问题。基于这样的想法,Sherman 聚集了一群研发人员开始投入研发过程。作为一个典型的技术宅男,虽然 Sherman 从大学开始就一直想创业,但始终感觉自己不太适合创业。
“我们公司到现在为止也没有一个销售同学,大部分都是研发人员,我们做的开源分布式图数据库又是一个偏底层的技术产品,对研发同学的技能要求又比较高,之所以能吸引到这么多优秀的人才,主要还是因为这些人都是有技术情怀的,愿意接受有技术挑战的事情,希望可以做一个能够给社区和社会带来价值的产品,同时也体现出自己的价值”。
在这样一个相对纯粹的研发氛围中,整个技术团队用了 7 个月的时间就搞出了 Nebula Graph,一个使用 Apache 2.0 许可证的开源图数据库项目,短短时间内就在 GitHub 上收获了 5.8k Star,美团、腾讯、小红书、京东数科等众多企业通过开源社区找到 Sherman 团队,希望可以合作。
谈到开源背后的逻辑,Sherman 没有丝毫犹豫地表示:“做这个项目的第一天,我们就决定把它开源。”
开源意味着代码需要经过社区全体开发者的检验,这也意味着后续需要进行长期的社区维护。Sherman 对此也有着自己的思考,我们决定做开源其实主要有三个原因:一是希望图数据库这个领域可以快速被大众所熟知,毕竟当时了解图数据库的人并不多,开源可以让用户更容易地使用起来;二是学过传统数据库的人都知道大学里是有相关课程设置的,但是图数据库并没有,一些图的基本理论也都属于数学范畴,开源可以让用户很容易学习,并且大家可以在开源社区里面互相交流、互相帮助;三是我们想做国际化,任何一个产品无论是从技术层面还是架构层面都不应该只针对国内市场,技术人可能多少都有一点情怀,希望自己做的项目可以为更多人带去力量和价值。因此,Nebula Graph 这个项目从第一行代码、第一行注释、第一份文档开始全部都是英文的。
如果说团队还有一点私心的话,基本就体现在 Nebula 的名字上了。“Nebula 意为星云,我们以此代指图中错综复杂的关系和节点”。
3千亿顶点、万亿条边、毫秒级查询延时
在 Nebula Graph 的 GitHub 项目主页上有一句很“霸气”的介绍:世界上唯一能够容纳千亿个顶点和万亿条边,并提供毫秒级查询延时的图数据库解决方案。
“其实,我们说的是实话,不是为了市场宣传的。”Sherman 表示,Nebula 项目设计之初就是为了解决大数据量的问题,所以起初的架构搭建对分布式的扩缩容及弹性做了深度规划。从实际应用来看,很多用户的数据量确实达到了千亿甚至万亿级别。查询效率达到毫秒级的主要原因是数据库从设计之初就针对 OLTP 场景也就是线上实时查询场景进行了规划,包括数据分区、查询执行计划等,每次查询的延时其实和总数据量并没有关系,因为仅查询单次任务中涉及的数据量,可能仅是一个小的子图,这就是 Nebula 可以在如此大的数据量级下保持毫秒级延时的原因。
与传统数据库类似,图数据库领域也分为 OLTP 和 OLAP 两类,OLTP 指的是提供在线查询的服务,其特点是对延时要求苛刻,同时并发量较大,比如金融风控场景,每秒的交易量可以达到上百笔甚至上千笔,且交易过程较快。从用户视角来看,无论是转账还是支付都希望在极短的时间内完成,这就极大压缩了风控的过程和时间,如果调用图数据库可能只需要几十毫秒就可以完成。
在这个群雄逐鹿的图数据库市场,有些产品是为了计算而生;有些产品是为了在线查询的低延时、高并发场景而生,Nebula 显然是后者。
Nebula Graph 项目地址:
https://github.com/vesoft-inc/nebula-graph/blob/master/README-CN.md
Nebula 2.0 版本发布:从社区中来
经过了开源社区的磨炼,Nebula Graph 的 2.0 GA 已发版,新版本 2.0 最大的特点就是从社区中来,解决了很多社区开发者的实际问题。
根据 Sherman 的介绍,2.0 版本最大的改动是支持 Neo4j 的查询语言 Cypher,几乎做到了 70% 的兼容,后续版本会逐步提高兼容度。原 Neo4j 的用户在数据量较大后,查询速度会变慢,且由于 Neo4j 是单机版无法保存大量增长的数据,所以很多用户希望从 Neo4j 迁移至其他更加适合自身需求的系统,甚至为此重写了 Query,Nebula Graph 新版本会让原 Neo4j 用户更加平滑地过渡到 Nebula Graph。
为了实现这一功能,整个团队对 Nebula Graph 的架构做了重构,虽然用户可能感知不到,但这对 Nebula 的后续发展至关重要,这让整个架构更加接近传统的 SQL 数据库,有了分析器、优化器、执行器等一整套组件,可以更加容易地支持不同的查询语言,对系统进行扩展和执行不同的调度策略,使得整个体系更加灵活,扩展性也变得非常强。
此外,团队还针对社区开发者呼声较高的需求进行了响应,新版本增加了全文检索功能;在原有 64 位整型支持的基础上新增了 String 类型,这些特性的增加为整个项目的后续发展打下了坚实的基础。
与此同时,整个项目持续开发云上服务。“做图数据库对资源的消耗是非常大的,因为需要进行各种计算,而云计算按需取用的特点是天然适合这一场景”。目前,Nebula Graph 的图数据库云服务平台 Nebula Graph Cloud Service 处于公测阶段,支持一键部署 Nebula Graph。而且,公测期间不会就云服务收取任何费用,欢迎开发者免费试用。
4基础软件的浪潮来了,图数据库的未来呢?
从宏观视角来看,图数据库属于基础软件,而基础软件是国家当下非常重视的领域。一般来说,基础软件可以分为操作系统,数据库,开发工具等。目前来看,Sherman 表示,中国的市场非常大,所有智能设备的装机量可以占到全球市场的四分之一到三分之一,所有的这些设备都需要操作系统、数据库的支持,其上应用的研发又需要开发链和开发工具,所以市场空间是非常巨大的,只是目前国产软件的市场占有率还是偏低的,这也意味着中国的基础软件公司还有很大的潜力。
到底什么样的公司可以脱颖而出,Sherman 认为简单一句话就是做市场需要的产品,这句话说起来容易,做起来并不简单。首先,软件需要具备一定的技术门槛,无论是谁都有能力开发的产品很难在市场上做大;其次,要做符合市场需求的产品,反之技术再牛也无法得到用户的认可;最后,聆听社区的声音,感知用户的真实反馈,并在技术上不断提高,逐步建立自己的技术壁垒才可能成功。
作为数据库的分支,图数据库本身的市场占有率还不足 2%。究其原因,Sherman 表示其实图数据库的需求就在最近 2-3 年比较旺盛,尤以金融领域为最。金融领域存在着大量账户之间的关联关系,这些关系组成了一张非常大的网络增加了风控的难度,单靠用户画像做出判断是远远不够的,图数据库的出现可以更好地解决这一问题。从另外一个角度来说,仅用两三年的时间可以在发展了四五十年的数据库领域占据 2% 的市场已然非常快了。
在基础软件全面崛起的浪潮下,图数据库存在巨大的市场空间。根据分析机构的预测,到 2025 年,图数据库将占据整个数据库市场 9% 至 10% 的份额,这其实是一个非常大的数字,基本是以每年 50% 至 60% 的速度递增,虽然目前的占有率还不高,但可以认为处于爆发的前夜。
目前,图数据库还存在许多挑战需要解决,比如数据的完备性、一致性,分布式事务的支持以及 AP 和 TP 融合等。对 Nebula 而言,本身更多偏向于 TP,未来要想做到真正的 AP 和 TP 的有机融合在技术上还面临着非常大的挑战。