核心代码全开源后,还能做出“卡”别人脖子的产品吗?
从左到右:唐小引(主持人)、蒋涛、陶建辉、黄东旭
陶建辉:涛思数据研发一款专门针对物联网、工业互联网、车联网场景的大数据平台 TDengine,去年将其核心功能开源,但保留集群功能没有开源。TDengine 在开源后的两个月内 Star 数达到一万,很多开发者试用后给了不少反馈,于是我们决定要把集群版开源。8 月 3 号,我们正式对外开源集群版功能,随后的 5 天时间里,TDengine 连续在 GitHub 全球趋势排行榜位列第一。
为了这次开源,我们做了很多准备工作,包括代码重构,我这位 60 后老程序员在疫情期间就写了1万多行代码,从春节到现在我的 Pull Requests 有 161个。
如何打造一款国产基础软件?
陶建辉:我是通讯软件开发出身的,以前从没做过基础软件开发,是个喜欢跨界创新的人。我认为很难去开发基础软件,不是难在原理上,而是在具体实现上将存在很多问题,主要表现在:
一是产品性能,假如写不对几行代码,产品性能就降低了。
二是稳定性,开发者要处理各种各样的场景,如某个文件读错了要怎么处理,数据就出了问题怎么办?
三是基础软件需要规范和标准。当 IT 系统很庞大时,产生的模块众多,此时模块间要形成约定,让团队默契工作,这中间需要一个好的工程规范。随着互联网的发展,中国诞生了阿里、百度、美团、小米等发展很好的互联网公司,但这些公司主要做互联网的服务。涛思数据和 PingCAP 做的是标准化产品,这跟互联网服务的开发是不一样的,互联网服务可以随时更改,没有硬性规定 API 等,而标准产品跟互联网服务的差别很大。基础软件不好研发,难度相当大,开发者没有受过好的训练是没办法完成的。
黄东旭:虽然基础软件很难做,但我思考更多的是怎么“人尽其才”。一是我们明白一个人的能力是有限的,PingCAP 有将近 300 人,在社区里有很多 TiDB 用户,但难在如何将这些人组织起来?
假如一个设计师想给 TiDB 做插画,有没有一套流程和体系能让他方便地贡献?又如开发者发现一个 Bug,你能不能在 5 分钟内修好这个 Bug?如何吸引他人做贡献,及时给反馈,提供奖励,如何将游戏规则设计好是更困难的。
二是,国内开源软件有一个天然的劣势,美国开源软件假如能拿下硅谷就差不多说可以拿下全球,但中国开源软件很难做全球化,从 Day one 就要开始思考和布局这块。
蒋涛:国内是在技术全球化和开源化的红利基础上,才有了互联网应用、移动互联网应用等的大发展,这是享受技术的成果。
当下存在两个机会:一是大企业的业务庞大,开源技术满足不了其场景需求,甚至连商业化软件也满足不了。这些公司达到一定体量后,将会带来技术上新要求和进步。所以像阿里内部有很多自主开发系统,有一些是开源的。
二是随着涛思数据和 PingCAP 等技术公司的成长,我们发现市场还有一些空缺和机会,中国可以做出自己的技术公司。如今整体环境和场景发生较大的改变,与 2015 年左右不同,那时无论是从商业前景看,技术公司的市场接受度是较弱的。
所以说,当大公司成长起来后,其有基础软件的需求和打造的能力。当下市场也提供这样的机会,往后将会有更多的技术公司在科技全球化后,这些技术能连接全球。如何联接全世界?开源就是最好的连接方式。
陶建辉:开源是中国软件企业走向全球的最好的途径。
开源对基础软件的影响
黄东旭:开源软件找到了很好的商业模式——云。过去,没有云或者云服务不成熟时,大家会将开源软件按照传统闭源软件的私有化部署、License 等方式收费,其实是很别扭。
“云”模式本质上缩短了从用户对你的认知到最后完成价值交换的流程,传统软件或者闭源软件可能中间有一步,比如介入销售,做 POC、线下部署或容量规划等。但在云上,从认知到开账号使用、绑定信用卡,从小变大是完全的商业模式变化。
当我们 5 年前刚开始创业时,很多人认为做数据库挺困难的。但我们从第一天开始就认定拥抱云,走全球化路线,这是这个时代开源软件唯一的出路。
陶建辉:涛思数据从 Day One 起就定位做一个全球化的公司。不管开源与否,基础软件如果不面向全球的话是没有办法生存的,因为中国基础软件市场只贡献了全球31%的收入。
在已有 Oracle、Red Hat 等情况下,如果只做中国市场是不可能成为全球独角兽的,因此我从 Day one 就决定做面向全球的公司,加上我有“海归”背景,在美国工作过十几年,我们团队的18个人其中6人也是“海归”,因此我们有全面的英文文档。最近有做物联网的德国人夸我们的网站写得很专业。我觉得很自豪,大家认可我们这一点。所以说我们必须面向全球化,不面向全球化的基础软件没有出路。
蒋涛:中国市场是有机会的,但现在环境需要有一个改善的过程。云对中国公司来说是最好的商业机会,毕竟卖 License 的方式在中国运行的效果较弱。
全球技术公司在中国获得的收入占比是非常小。但是在未来,一是随着云计算的发展,二是中国公司逐渐认识到,用开源软件的成本也挺高的,如果能用云或者得到原厂商的支持,成本比自己去做这件事情要有效的。
上云背后还有应用系统的问题,用户采用数据库时,是自己维护,还是依赖原生厂商或云厂商维护?应该是依靠第三方厂商帮忙维护的,因为技术正不断地发展,不管开源闭源,运维是非常重要的。
是你自己雇一个运维的人,还是找专业公司好?像 TiDB 有 300 人,他们对系统里每一行代码都是清楚的,其实你去依托它的服务是更有效的。
陶建辉:还有一种情况是,客户只想花力气不想掏钱,他就想省钱,你干脆不给他用。因为你不给他用,他去用其他相对差的产品,这实际是通过开源加剧了垄断或者加剧了分化。
如果大家都闭源,那么一个数据库就都能瓜分到一部分市场。但开源后,产品做得很好可加剧市场的重新划分,有可能全球 80% 的物联网用户在用 TDengine,不会用其它闭源产品。如此一来,便能将竞争对手的空间完全挤掉,我们就有机会获得市场份额。
黄东旭:做开源软件就像修一条高速公路,最土的赚钱办法是建一个收费站。
收过路费是最土的赚钱方式,当你作为一个修路的厂商,如果把路修好,应该尽可能让更多人来走这条路,在走这条路的过程中,不管是建设加油站,还是建设其它东西,赚钱的方式很多,玩法很多。
我们从去年开始认真地做国际化,到今年海外收入已占到公司总收入中的较大比例。海外市场较合规,很多人觉得外国人的付费能力好,愿意给钱,所以是个好市场。
这背后是一整套监管系统在助力的,美国 SaaS 公司是一级级通过 Compliance 构建起来。大家会疑惑为什么美国公司做很简单的小工具就能做成一个大 SaaS 公司?这背后不仅仅是因为产品价值,还有整套市场的监管、法律体系、合规要求。然而国内市场还没有到达那一步,所以很多时候大家处在野蛮生长的状态。
如何做“卡别人脖子”的技术产品?
陶建辉:“卡脖子”即一个公司占据市场,假如不愿意给你使用,就没有别的选择。如果某款产品仅占 1% 的市场份额,那它“卡不了脖子”,因为还有其他卖家可提供同类产品。
在基础软件上要想卡脖子就要占据相当大的市场份额,或者形成“你中有我,我中有你的局面”,只要市场份额足够大,就可以“卡住”别人。
我认为在细分领域——物联网大数据处理上,我们有机会做出一个“卡脖子”的产品,TA有可能成为横霸全球的产品,占据全球市场份额较大,这时候可以说“卡”了别人,或者“垄断”。TDengine 开源的主要核心目的是:垄断全球市场。
黄东旭:我对这个问题有不一样的见解。我特别反感“卡脖子”,为什么一定要“卡别人脖子”才能算成功?
垄断是创造商业价值的很好手段,但其目的不是为了垄断,而是让客户成功。对于很多用户来说,如果我说要“卡你脖子”,那么大家就不敢用了;但如果你说“我绝对不会卡你脖子,甚至还能防止别人卡你脖子”,那么用户就会心甘情愿来用你的产品。创造商业价值是通过客户的成功实现的,这点要比创造垄断更为重要的事情。垄断不一定是好事,要看垄断到底对行业或社会是否带来价值。
蒋涛:过去“卡脖子”是那些商业闭源软件,例如以前 Windows 都“卡大家脖子”,大家要用的话就得交费。Linux 是大学生写的操作系统,但如今 Linux 获得巨大的成功。
真正的“卡脖子”,只会推进中国科技的大发展。如果中国面临巨大的“卡脖子”危机,那我们就得自己做了,这是促进创业的机会,过去这个基于是不存在的,例如一个做 EDA 软件的厂商如何和 Synopsys 竞争?没法竞争。
不竞争的话就必须弄个 B Plan。如今中国有这么多优秀的程序员和软件,存在“不卡”的产品,如 Linux 基金会用中英文发公告说不受限制,欢迎中国使用。
程序员的小团队是可以做大事的,所以我们不要怕“卡脖子”,真“卡”了,将涌现很多中国发展的机会,反而是好事。通过“卡脖子”锻炼出来的能力,能成为走向全球的竞争力。
黄东旭:核心问题是好的场景和需求才能打造出好的产品。过去美国那些很牛的软件是在上世纪 80、90 年代科技特别进步时推出的,因为当时有这些需求才促使软件发展。
近几年来,中国的分布式系统、数据库等软件发展飞快,正是因为美团、滴滴等大移动互联网公司的业务和需求发展壮大了,大家需要更新的技术来解决问题,我们不是自己拍脑袋出来创业,而是这个时代的呼唤。大白话是钱在哪儿或者说需求在哪儿,就能诞生出什么样的产品来。
陶建辉:我个人更看重新的细分赛道,毕竟在老的赛道如桌面操作系统,我认为很难有人能颠覆微软,手机操作系统很难颠覆安卓。所以我们更应该关注新的细分赛道,如物联网大数据处理、自动驾驶等。像涛思数据,最骄傲的是我们产品的各项性能指标比 InfluxDB 好得多,我们的查询速度是快10倍、20倍,我认为我们是有很大的优势,但这个市场很细分,不像 TiDB 占据主流市场。
黄东旭:这点我跟陶总的想法有不一样的地方,涉及到市场选择,到底选细分领域还是选更大的领域?我们的答案是选一个天花板更高的,因为选细分的话很容易能做到第一,假如这个“第一”可能价值 100 亿美金,如果想要做到像Oracle,价值 1600 亿美金的话,这不是一个细分的市场能带来的价值。
蒋涛:我认为都是有机会的,首先是大领域的千亿级机会,但这里面可能仅出来几个胜出者,而接下来的百亿级机会可能有几十个。而其他细分领域也是有很多点可以做的,所谓“不想当元帅的肯定不是好士兵”,但元帅只有一个,假如要想走元帅的路需要历经磨难。
但做团长是相对容易的,先当团长后再往上走,例如老陶创业涛思数据,这是他第三次创业。别看他现在底气十足,第一次创业时是很焦虑的。现在有很多可以创业的点,大家可以先做“make something people want”,做有意思、有用的产品,可以从最小的事情开始做起,例如给TiDB做点贡献,提个issue,指出一个 Bug,加入一些开源社区。我们锻炼一批开发者出来,加速国内技术发展。
陶建辉:“卡脖子”时代是技术人员创业的黄金时期,最近这10、20 年是技术人员很好的发展窗口,各位程序员应该加入我们这类技术公司共同创业。
建议开发者
蒋涛:开源是全球每个开发者都能参与的事情,“卡脖子”给中国带来一个特殊机会,增加市场机遇,这对中国开发者而言,未来 5-10 年是最好的时代。现在 GitHub Public 代码仓有一亿多,我们统计大概有 2000 多万个活跃的,这是个巨大的宝库。
如今中国处于特别缺 API 的时代,大家不能把所有的事情都做完,每个人做一个功能就够,再跟其他的系统结合一起,共同产生更大的网络效应和技术价值。后续我们可以成立类似于“技术开放联盟”,大家遵守一定的标准来执行,当下政府也在进行一些工作,这中间需要一个过程。
陶建辉:对于研发基础软件的人而言,春天真的到了。中国软件工程师的数量比 20 年前多了 10 倍以上,那么多软件工程师由他们孵化新的工具和平台,这是我们做基础软件公司的机会。
黄东旭:小时候刚开始学编程时,网上培训资料很少,现在是很好的时代,因为相关技术知识搜索便捷。譬如你要写分布式数据库,不需要把大学的课程从头读一遍,可以查看开源软件和有很多免费资料学习,学完后还能参与进来,这对于工程师来说,得到非常快的提升,这是第一个建议。
第二个建议不是给程序员,而是给友商和合作伙伴,希望大家拥有更大的格局,大家的一些合作、一些互通有无,可形成网状效应,能带来更大的商业价值。这里有特别好的例子是 AWS,我们在 AWS 做全托管的云服务,不需要跟 AWS 谈战略合作,只用其提供的 API 就能完全搞定。
陶建辉:和我念大学的时代相比,现在由于开源的发展,新一代的学习机会较好,因为开源软件里有很多写得特别好的软件,比如可以直接到 GitHub 上看我老陶写的代码,还有很多别的好代码。另外,你可以参与 TiDB、TDengine等开源项目,共同解决问题。那么在找工作时,假如你帮TiDB、TDengine 解决过 Bug,在面试时是很有用。
我从开源社区聘用了两个人,我发现一位程序员为我们找 Bug、改Bug。我马上给他发邮件,邀请他加入我们团队。因此对在座的各位大学生和工作时间较短的人来说,这是你证明自己能力的途径。假如你在华为做软件开发,写的代码别人看不见,别人不知道你水平怎么样,但你说 TDengine 某个模块是我写的,我给它解决了 Bug,那面试官就对你有更多的了解。
还想了解更多本期内容?立即扫描下方二维码或点击阅读原文观看精彩回顾: