查看原文
其他

核心代码全开源后,还能做出“卡”别人脖子的产品吗?

伍杏玲、王晓曼 CSDN 2020-12-18

从左到右:唐小引(主持人)、蒋涛、陶建辉、黄东旭

扫描上方二维码直达精彩回顾
整理 | 伍杏玲、王晓曼
出品 | CSDN(ID:CSDNnews)
最近 IT 界关于开源的讨论很多,开源容器引擎 Docker、高校基础数学软件 Matlab 均受到禁令事件,引发大家对国产基础软件自主创新重要性的大规模讨论。
寻找适合的开源软件替代方案是一个燃眉之急,但如何建设好我国基础软件,改变被“卡脖子”的局面,是我们需要思考的事情。
有一位 60 后程序员陶建辉,去年他将物联网大数据平台 TDengine 10 多万行代码开源,霸榜 GitHub,两个月 Star 数超 10000;今年 8 月,他再将 TDengine 核心集群版本开源了,连续 5 天霸榜 GitHub,在 IT 圈引起热议。
为何涛思数据不遗余力地将 TDengine 核心功能全部开源?未来开源平台该如何商业化?开源对国产基础软件有哪些影响?新基建东风下,对物联网、大数据等技术有哪些新机遇与挑战?
由 CSDN 重磅打造的高端对话栏目「大咖来了」,第六期《核心代码开源,还能做出卡别人脖子的产品吗?》,我们邀请到同样关注中国开源发展的CSDN 创始人&董事长、极客帮创投创始合伙人蒋涛、涛思数据创始人陶建辉、PingCAP 联合创始人兼 CTO 黄东旭,聚焦中国基础软件现状,直面开发者在技术创新、开源、商业上的难题,帮助开发者捋清思路,为中国基础软件的发展做正能量传播和普及。
立即点击视频观看精彩瞬间:

以下是对话实录:

“任性”开源 TDengine 集群版

陶建辉:涛思数据研发一款专门针对物联网、工业互联网、车联网场景的大数据平台 TDengine,去年将其核心功能开源,但保留集群功能没有开源。TDengine 在开源后的两个月内 Star 数达到一万,很多开发者试用后给了不少反馈,于是我们决定要把集群版开源。8 月 3 号,我们正式对外开源集群版功能,随后的 5 天时间里,TDengine 连续在 GitHub 全球趋势排行榜位列第一。

为了这次开源,我们做了很多准备工作,包括代码重构,我这位 60 后老程序员在疫情期间就写了1万多行代码,从春节到现在我的 Pull Requests 有 161个。

黄东旭:我完全不意外 Jeff(陶建辉英文名)将  TDengine 集群版开源,我俩认识已久,当时他公司还没有注册时我就建议他开源一事。毕竟 PingCAP 算是国内最早基于开源的模式来研发基础软件的公司,希望PingCAP 能作为一个榜样带领行业更多伙伴做开源。特别对于数据库等基础软件而言,你不应该说拿闭源当做商业竞争优势,而是要把源码开放,以获取更大的市场占有率。按照这个逻辑来说,假如  TDengine 不开源才让我意外。
蒋涛:环境在变化,技术栈也在不断发展,每种语言和软件都有适应它的应用场景和它时代,所以我们将会拥有很多新机会。近年来,科技的发展离不开开源技术的推动,促进技术开源化和全球化。技术的开源给我们带来很多红利,同时产生非常多开源商业化成功的企业。
福特基金会出品的开源书籍《路与桥——现代世界数字基础设施那些隐藏的劳动》里讲到,开源是数字世界的“路”和“桥”,路和桥是什么东西?——操作系统和数据库。
我们对数据库进行一些统计,首先看到的是 Oracle,一篇 70 年代的论文延伸出1000 亿 Oracle,这属于上一代闭源数据库。进入大数据时代后,带来了MangoDB、Elasticsearch 等应用,开启 NewSQL 时代。
当下我认为发展得较好的是那些开源的公司,TDengine 霸榜 GitHub 也从侧面说明了这点。新的技术产品通过开源代码是让市场验证产品是否真正有价值和有质量的重要手段。将核心功能开源,在美国拥有较好的模型——Open Core,随着美国企业的开源商业化迭代,目前发展得相对较成熟,一些上市开源公司发展得不错。

核心代码开源后,如何商业化?

陶建辉:有人将 TDengine 和其他数据库做对比,但类似 InfluxDB 、监控数据库 Prometheus 没有开源集群版本(注:InfluxDB 曾开源集群版后又闭源了)。于是我想走在前面,率先开源 TDengine 集群。
也许有人问,将核心代码后是不是就没办法赚钱了?
答案是:No!
MangoDB 早就开源集群版,且市值超过 120 亿美金。那么涛思数据后续该如何赚钱?不外乎以下三方面:
一、依靠辅助性功能,Open Core 确实将真正核心技术功能开源(如 TDengine 的表、集群等功能),但其他“细微末节”的功能,如异地容灾、备份、审计等超大型客户需要的辅助功能,我们并没有开源,MangoDB 也是采用这种模式。
二、依靠服务,一些开源公司尽管软件是免费的,但有强大的技术支持团队来升级和维护软件,我们也可以依靠这项服务商业化。
三、如今我们步入云时代,当开发者普遍认可 TDengine 等基础软件后,我再在阿里云、腾讯云、亚马逊云上提供 TDengine 云服务,是顺其自然的事。我想自己做云服务,想提供物联网的存储服务,这项服务一定是能赚得到钱的。
大家千万不要认为开源仅是情怀,如果我们不能创造商业价值,公司不能盈利的话,没办法继续开源。如今开源已走过从前靠一两个人写开源软件的时代,而是大家一起写,像 TDengine 的 C 语言代码达 30 万行,这不可能是一两个人能写的。我们还要持续发展,因此是必须要赚钱的。
我坚信靠以上三个方法养活公司!
黄东旭:很多人认为的开源软件盈利模式是通过提供一些企业级特性功能或部分代码闭源,然后通过开源 Open Core 快速占领市场。
一些投资人也问我,你们闭源的代码是什么?
我回答,几乎没有闭源的东西。
他问,那你怎么挣钱的?没有企业特性你们公司是怎么发展?
我反问道,有哪家开源软件公司是通过真正的企业级特性取得特别大的成功?像公认发展较成功的开源企业 Red Hat,其企业版比开源版功能要少。MangoDB 最近在资本市场的优异表现很大层度取决于在云端的云产品而不是 open core。
开源软件的商业价值并不取决于代码本身,而是产品背后的商业价值。比如研发金融级数据库,尽管是开源的,企业用户如果想用在核心系统里,一定会来找过来做更多功能,这是产品本身的价值,不会因为它开源或不开源有影响。假如做一个图书管理系统,不管开源与否,其整体价值是有限的。所以我认为开源软件商业化命题其实是说软件本身的商业化。
在国内,开源的商业模式有点像“卖保险”:用户在一个严肃的系统里用开源产品,假如出现问题,肯定希望厂商能第一时间提供专业的解决服务,那么这项服务就是产品的价值。


如何打造一款国产基础软件?


陶建辉:我是通讯软件开发出身的,以前从没做过基础软件开发,是个喜欢跨界创新的人。我认为很难去开发基础软件,不是难在原理上,而是在具体实现上将存在很多问题,主要表现在:

一是产品性能,假如写不对几行代码,产品性能就降低了。

二是稳定性,开发者要处理各种各样的场景,如某个文件读错了要怎么处理,数据就出了问题怎么办?

三是基础软件需要规范和标准。当 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,那面试官就对你有更多的了解。

还想了解更多本期内容?立即扫描下方二维码或点击阅读原文观看精彩回顾:

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存