作为SphereEx 创始人 & CEO,在现有的数据库开源项目ShardingSphere做了 5 年之后,张亮才决定进行商业化的创业,原因很简单,「我们目前的数据库有可能向大一统的方向完全被打破掉,未来数据库一定是碎片化的时代。」希望能在数据库碎片化的前提下提供一个平台,可以解决大量用户使用和选择数据库的痛点,解决成本问题。

至于开源项目和商业化项目并行的问题,他觉得完全不冲突,「大家有明确的边界,知道什么功能该放到商业,什么功能该放到开源」,甚至,开源项目还能够免费为商业化项目做宣传,提高用户粘性。

而聊到开源的本质时,张亮认为,「如果本质为了挣钱,可能不太适合做开源。一定是觉得它有意思、好玩,才能去做。」开源本身是一种信仰,也是一种商业模式的选择,和闭源没有高低之分。

而对于大厂入局开源,以及中国开源项目目前的误区,张亮也有很多话要说。

Points

  1. 数据库是一个碎片化的时代已经不可避免,想通过一个数据库解决所有问题,这个时代已经一去不复返了。

  2. 开源只是不同的商业模式,和闭源相比没有好坏和高尚之分。

  3. 技术本身是没有秘密的,一项技术不在于它没有人能复刻,开源了,大家都用,并且不断地为它贡献每个人的智慧,才能成为真正的技术制高点。

  4. 真正的开源项目想做好,一定是面向长期主义的,是以终为始去做。

01 创业是为了解决数据库的碎片化痛点

Founder Park:数据库开源近两年非常火,这个现象背后的原因是什么?

张亮:2005年-2006年用开源的已经非常多,也非常好用,当时很多功能基本上都是从开源框架里去来的。如果IT不再发展,像原来的方式,只是做业务、做新功能,开源也不会成为那么火热的话题。实际上IT的进展非常快,目前是面向分布式的环境,以及所有互联网的后端都在面向云环境。那些曾经好用的开源项目,在云的环境下、在分布式的环境下未必是最好用的状态。

2012年-2016年是比较热的阶段,很多开源完全面向分布式重写,这也是开源焕发青春比较常见的状态。在面向分布式重写的路没有完全走完的情况下,云的时代又来了,分布式和云如此接近,看起来像是一个时代的,但实际上是两个时代。从外围去看,从分布式到云实际上是融合到了一个时代。

我们的开源完全面向分布式、完全面向云去重写,以后所有的操作系统也好,所有的工作也好,也许都是在云上,不太会像现在用本地的笔记本或者用本地的工作站去做。这是开源的时代大背景,为什么现在这么多人用它、去重写?因为每个人对分布式、对云都有不同的理解,而现在缺乏大一统的东西去做。开源在现在的互联网环境下被散播得非常广,大家发挥创造性的时代到来了。

Founder Park:为什么云流行起来之后,大家会把开源和云做并列?云对于开源的需求是怎样的?

张亮:早期开源是工程师自己玩的东西,所有开源项目都是面向工程师的,工程师通过自己的努力把它封装成产品化的东西,交给前端用户去使用。而云的出现可以直接面向产品化的解决方案,屏蔽掉了开源的各种技术细节。曾经的开源在没有云的情况下使用起来相对复杂,而云能让开源的产品、组件用起来更加方便,所以说云和开源是绝配。

但不是上云的东西必须要开源,现在有很多是闭源的,但是在我们做基础设施时,大量的东西开源有助于产业的提升,有助于思想的交流。而且不少工程师愿意把自己的思路向其他工程师开放。所以目前在上云的时代,开源还是比较流行的状况。

Founder Park:开源的商业化路径和模式大概处于什么发展情况?开源的产品盈利点在哪里?

张亮:有三种商业模式。

第一种是服务,为开源去做咨询服务,或者提供文档,或者提供一些人工现场的支持,这是常说的service模式。

第二种是 OpenCore,开源的项目是其中一部分,很多企业级的产品或者企业级的需求不放在开源里边,如果企业想使用的话,他们会使用商业产品,因为一部分商业的能力没有体现在开源项目里。

第三种非常符合现在潮流的云上的模式,我们叫它Hosting——托管模式,用户不用再去关注他们的项目到底是如何部署的,直接放到云上,这个云可以是公有云,可以是私有云,也可以是公有云和私有云一起使用。开源公司提供软件、硬件,又存储数据,也提供运维的服务,用户可以直接使用。

在第一代开源公司的时候,像红帽(Red Hat)公司,基本上提供的是通过开源服务的方式。现在OpenCore私有化的部署,专门为ToB客户提供服务,包括Hosting的云上订阅制模式也越来越多。后两种模式是目前我们主要的盈利点。

Founder Park:公司在最开始创立的时候,想要解决的核心问题是什么?

张亮:我们在开源项目成功地运行5年之后,才看到创业机会。目前看到的创业点是数据库碎片化,能敏锐地感觉到,我们目前的数据库有可能向大一统的方向完全被打破掉,未来数据库一定是碎片化的时代。

数据库是一个碎片化的时代已经不可避免,想通过一个数据库解决所有问题,这个时代已经一去不复返了。每一种数据库一定有它适合的一种或几种场景。如果能处理所有场景,那么它一定所有场景都不擅长。目前数据库领域使用的场景非常多,比如银行存钱、地理信息位置、开车时下一秒钟到哪里,这些场景的处理方式是截然不同的,不可能用一种数据库去处理。即使是某一个业务,也可能有不同场景,比如电商秒杀的时候和非秒杀的时候,可能会截然不同。目前数据在爆发,数据量在爆发,基础设施数据库也在爆发,数据库种类在增多。回到20年前,选一个数据库可能从五种数据库里选就够了。现在可能要从50种数据库里选一种,未来也许要从两三百种数据库里选,这是最复杂的事情。

在数据库碎片化的前提下,我们应该怎么做,提供什么解决方案,可以帮大家把数据库碎片化的事情做到更好。目前我觉得这部分还是相对早期,看起来是很蓝海的事。但是在2020年我就已经看到这一点,当时开始布局,现在在这条路上走得比较远,这是我们看到的机会,希望能在数据库碎片化的前提下提供一个平台,可以解决大量用户使用的痛点,解决成本问题。

Founder Park:哪些行业已经有一些商业化的需求,愿意付费去解决数据库的需求?

张亮:非常多,因为所有行业用数据库都要付费,无论是通过买产品,还是运维产品,或者通过人去分担成本,都是付费的。数据库的市场空间非常大,我们希望可以通过降本增效的方式提供一个更好的产品,能让更少的人去管理更多的数据库,让数据库的性能提上来,更方便地去处理各种场景,达到降本增效的效果。

02 开源项目是商业化项目的基石

Founder Park:介绍一下你们的开源项目和商业化产品?

张亮:如下图所示,一部分是ShardingSphere本身的东西,提供了一些基础开源的内核,外围一层提供商业的产品。

商业的产品并不是对开源产品的补充,是真正对企业有需求的部分产品,比如权限控制,包括使用体感或者一些极致的场景,都是商业所提供而开源没有的。开源的初衷不是为了限制大家的使用,而是为了让程序员或工程师能很方便地去使用,因为一些企业级的应用放到开源会显得很厚重,工程师还很嫌弃它。

SphereEx产品介绍 | 来源:SphereEx

ShardingSphere在这张图整体分成三部分,上下是连接的各种开发语言和各种数据库。在ShardingSphere产品里,有一个关键词就是连接,通过ShardingSphere可以连接所有的数据库和所有的开发语言。ShardingSphere所做的事情是数据库网关,所有访问数据库的东西都被ShardingSphere所托管,打造的是数据库的上层生态,所有数据库都通过ShardingSphere才能去接入。

第二个能力叫增强,所有通过ShardingSphere的数据库网关的能力都是增强的能力,现在有国家的数据安全法,对数据加密的能力也可以通过ShardingSphere去做;还有数据库的安全能力,比如一条SQL执行下去,是不是可以把数据库打挂掉,哪些SQL不允许执行SQL审计的能力,包括流量治理的能力,ShardingSphere可以对流量进行控制。

第三项能力是可插拔,各种各样的增强会让系统变得很臃肿,我们不希望变得臃肿,希望这个系统是为某一个客户所打造,需要的能力可以通过插件装进去,不需要的能力可以通过插件拔出去。ShardingSphere提供的是一个平台,是一个应用商店,应用可以由SphereEx去处理,也可以由别的公司去处理,甚至可以由用户自己的工程师通过ShardingSphere提供接口去处理。但是ShardingSphere提供了一些初始化功能,算是开源社区送给大家的一些功能。

ShardingSphere和SphereEx有本质区别,SphereEx是在ShardingSphere的应用商店上提供可以被顾客购买的有价值的应用。这是ShardingSphere和SphereEx的商业版图。

Founder Park:你们的开源社区现在的活跃度怎么样?

张亮:对于开源社区来说,有几个关键的指标,最多的指标叫star数量,当一个开源项目受到了程序员的好评,程序员一般会去托管平台 GitHub上面点一个star(类似于点赞),目前ShardingSphere有17k左右的star,也就是有一万七千人点了赞。可能看起来17,000并不多,但是不是所有工程师都愿意在GitHub上互动,也不是所有工程师用了就一定会点star,是有一点核算标准的。

ShardingSphere 活跃度介绍 | 来源:SphereEx

ShardingSphere是Apache基金会的一个项目,Apache基金会是世界上最好的开源软件基金会,在全世界有300多个顶级项目,ShardingSphere的stars数量在其中排名第11。是一个非常靠前的项目,受欢迎程度是相对较高的。

另一个数据是 Pull Request 次数,当我们想把代码合并到开源项目的主干时,都会用Pull Request去做。ShardingSphere目前有12k的Pull Request,相当于至少提交了12,000次代码合并的请求,这是非常海量的数字,这个数字在去年Apache基金会官方博客上活跃度排名第7。

目前ShardingSphere有400多名贡献者,工程师会更清楚,哪个项目会有400多人去开发?因为正常公司都是大公司小团队,一个项目有50人开发和写代码就已经是个海量的项目,一般项目是三五个人开发。所以400个人开发的项目大概是什么体量,相信大家也能感受到。

Founder Park:商业化产品和开源项目两者之间,在解决目标上是否要进行区分?产品化的方向是否也要进行区分?

张亮:本质上是一个东西,无论是做SphereEx的商业产品,还是做ShardingSphere,都需要ShardingSphere有强力的内核可以依托,研发团队也没有去区分,由一个研发团队同时处理开源和商业。

大家有明确的边界,知道什么功能该放到商业,什么功能该放到开源,比如权限是放到商业的,因为开源大家不考虑权限问题。另外比如加密,一些简单的加密算法可以对接到开源,而国密的加密算法或者商业的加密算法,就要对接到商业。另外有些数据库是开源的,ShardingSphere对接开源非常方便,有的数据库是商业的,SphereEx就会对接商业的数据库。这些是对企业本身选型的一个保证。

Founder Park:开源项目会对商业项目有增益吗?

张亮:优势是非常明显的,我们不用做广告,每个人都知道ShardingSphere,而且每个人都知道SphereEx有一个ShardingSphere的商业产品,或者说SphereEx可以给ShardingSphere提供咨询服务,这是非常巨大的优势。

第二个优势是用户粘性,用户在选择ShardingSphere和闭源产品时,一定会优先选用ShardingSphere,简单说因为换一个工作还能用,如果选择闭源产品,换了工作未必可用。所以开发者或者运维者会把它当成自己的技术栈,当成能学习的中立的东西。这是非常有价值的事情,会让市场变得好做,让用户的粘性变得很高。

至于缺点,可能会带来一些额外工作,比如如何甄别哪些用户用开源产品,哪些用户要用商业。如果本身是一个闭源的项目,不用甄别,直接卖就好了,但是用ShardingSphere要甄别。相信很多用户用开源就够,我们也不太希望100%的用户都转成商业,因为用开源的用户也是合理的,也可以贡献社区,对我们也是有帮助的。

03 开源是一种信仰和情怀,需要长期坚持

Founder Park:你会怎么定义开源的本质?

张亮:首先开源要有情怀、有信仰才能去做,如果本质为了挣钱,我觉得可能不太适合做开源。一定是觉得它有意思、好玩,才能去做。但开源不能解决所有问题。能解决很多问题,但也会产生一部分问题。比如好的方面是个人影响力会提升,会得到很多帮助。坏的方面是想跑得快的时候可能跑不快,因为有很多人给建议,要去甄别建议对或不对,会受到各种制约。

回到开源的本质,核心的公司方面,开源的本质是商业模式,和闭源一样,只是开源的商业模式更容易做市场,更容易降低公司的开发成本。开源只是不同的商业模式,和闭源相比没有好坏和高尚之分。

第二,做开源在技术上是一种标准的增强,做闭源无法抢占标准,因为总有一部分人能用,一部分人不能用,但是做开源不同,大家都能用,用得多了,它就是那个标准。

第三会更泛化一些,开源本身是一种思想,开源象征着开放,闭源更象征精致。我们想用开放的方式,向所有人阐述我们的 idea,感兴趣的人就会加入。我们所有的协作、内容都是完全开放的,没有国界,没有宗教信仰。通过协作的模式,能让内容去传承,技术本身是没有秘密的,一项技术不在于它没有人能复刻,开源了,大家都用,并且不断地为它贡献每个人的智慧,才能成为真正的技术制高点。

Founder Park:开源项目是不是也有自己适用的边界?会有哪些项目不适合开源,更适合闭源吗?

张亮:我对软件更了解些,对硬件没有那么了解,只讨论软件的开源。

对于软件,我本人还是挺激进的,做技术的人可能都有一颗躁动的心,总是想改变世界。所有基础设施都应该开源,如果没有开源的话,一定不是好的基础设施,这是我的观点。不是基础设施的项目可以开源,也可以不开源,我觉得这是开放的。我个人倾向于业务系统没有太多开源的必要,但是基础设施都应该开源,没有闭源的必要。

至于基础设施的定义,我认为是PaaS层,因为IaaS层包含了一些硬件,当然IaaS层也是基础设施,但是PaaS层更像是软件的基础设施。现在很多人觉得即使是软件的基础设施,也应该提供SaaS级别的服务,比如一个数据库就能提供SaaS级别的服务,这是没问题的。所以IaaS、PaaS、SaaS都可以算基础设施,主要还是看做什么。

Founder Park:开源项目核心比拼的是什么?

张亮:社区的运营能力是一部分,因为有社区的运营能力,开源项目才能吸引更多人进来,有人才有活力。也许某个开源项目现在做的并不是最好,但是有更多的人就能让它向最好的方向发展,未来发展的更好。

第二重要的是开源项目做的事情是不是刚需,是不是刚需,需求的旺盛程度到底有多少,决定了能拉来多少人去做。运营也很重要,一旦需求很旺盛,是刚需的话,一定会有更多人参与进来。

Founder Park:判断开源项目的好坏,哪些数据维度是关键的?

张亮:最引人关注的一定是star数量,不过这也是最容易刷的,能短平快地去提高排名。因为GitHub一般可以通过star数量去排序,所以大家觉得star高,就会比较厉害。但是我认为开源不能以KPI为导向。我在介绍ShardingSphere社区的时候,从来没有只介绍一个指标,一定是多维度的指标。通过star数,Pull Request的数量,贡献者的数量,Fork数量,能看到整体社区的现状。

另外比较重要的是看社区的发展历史,GitHub的star数可以根据时间排出一个线性图,贡献者也可以通过时间排一个线性图。如果是很陡峭地上升,一段时间后变得平稳,证明不是一个特别健康的社区,它是在某些时段内发展得很好,某些时间段不好。如果是非常平稳的状况,说明这个社区足够长久。

另外可以看社区的历史,它是不是一步一个脚印地坚持下来的?是怎么做事的?有没有条理,发布了多少个release,有没有告诉社区什么样的代码能合过来,什么样的代码不行。然后用户去提交的代码是不是有保证?这些都是一个社区成熟稳定很关键的一点。

Founder Park:开源是不是大厂来做会更好些,你们怎么看待这个问题?

张亮:开源项目有一个核心的价值,比拼的是坚持,坚持多久,其实是对大家心智的占有。对于大厂做开源也是一样,主要是坚持,大厂之所以成为大厂,一定是坚持下来做了很久,投入钱,投入资源去做,这是做好的前提条件。如果不投钱,不投资源,一定做不好。但是只是投钱、投资源不一定能做好,一定是找到方向后,投钱、投资源才能做好。

如果说这是一个KPI项目,投的钱比如刷star数,那么短期内确实效果很好,但是长期一定做不好。如果投钱是为了运营社区,组建社区的公开、中立、各种布道,招更好的工程师,工程师对项目本身也很热爱,把项目的架构调成可插拔,让更多人可以参与,把项目的基础设施做起来,这样才是有价值。

Founder Park:很多开源项目很难解决真正开源贡献者的来源问题,你们会怎么解决?

张亮:深度优先的项目很难拿到特别多的海量贡献者,广度优先的项目比较容易拿到贡献者。

广度优先是什么?就是说做这个也行,那个也行,是一个生态,互相之间不影响。ShardingSphere原来很简单,就是做数据分片,解决大部分需求之后就没有诉求了。但是做广度优先的时候发现ShardingSphere能做的事非常多,自己形成了可插拔、应用生态等,每个用户都可以做它的生态,这些需求未必是ShardingSphere的核心诉求,但没有问题,仍可以带来大量的用户和大量的贡献者。

再比如,我们有中文文档、英文文档,可以翻译日文、韩文、葡萄牙文的,这些都是贡献者。当他们推广到他们的国家之后,一定有更多诉求。反过来,如果面向广度,也能吸纳更多贡献者,像滚雪球一样滚起来。想让自己的项目更有活力,要考虑如何设计广度,这个广度不能让项目变得臃肿,一定要考虑如何能可插拔,让自己的项目变得更广阔的同时,不要让精致的用户觉得太重不想用,要把基础的框架设计好。

Founder Park:你会觉得现在中国很多开源项目,存在哪些噪音和误区?

张亮:第一,相信大家都了解KPI项目,KPI项目缺少对开源项目本身的热情,当KPI完成之后,这个开源就不再做了。KPI项目多了以后,对于选择这些项目的用户来说,沉没成本相对会很高。这是我看到的第一个问题,用户可以尽量选一些社区时间比较长,比较活跃的项目,能屏蔽掉风险。

第二点,相对浮躁,很多人关心开源做了以后能不能挣到钱,能不能创业,以后有没有好处等,这些短期内我觉得都是没有。真正的开源项目想做好,一定是面向长期主义的,是以终为始去做。

我们应该静下心来,有兴趣的去做开源,不要倾家荡产去创业,不要很痛苦地去做。

关于作者:

SphereEx 创始人兼CEO,数据库领域知名实践者,拥有超过 10 年的数据库领域探索、实践经验,热爱开源,擅长分布式架构,推崇优雅代码。曾在多个大型互联网集团公司任职架构、数据库团队负责人。Apache Member 、微软 MVP 、阿里云 MVP、腾讯云 TVP、华为云 MVP、Apache ShardingSphere 创始人 & PMC Chair。

SphereEx 是由 Apache ShardingSphere 核心团队创立、为企业提供新一代开源异构分布式数据服务平台的软件供应商,并为更贴近企业业务场景提出有针对性的产品和解决方案。公司核心能力是通过打造异构数据库的上层标准和生态,提升用户的数据服务能力。

SphereEx 官方网站:https://www.sphere-ex.cn/

举报/反馈

SphereEx

2获赞 7粉丝
用心创作内容,感谢您的关注。
关注
0
0
收藏
分享