“这几年出来做Tob创业的企业越来越多,这不是单独某个人某个团队自己的选择问题,是一个新的时代在召唤大家。”
ApacheDoris是一个面向实时分析的MPP分析型数据库,可提供亚秒级查询和高效的实时数据分析。年6月16日,ApacheDoris从Apache软件基金会顺利毕业,正式成为顶级项目(TLP)。
年年初,ApacheDoris的核心团队离开了大厂,共同成立了SelectDB公司,正式开启了ApacheDoris的商业化之路。在商业产品上,SelectDB推出了基于Doris开发的商业化产品,包括全托管的云上数仓服务和私有化部署的企业版软件两个版本。那么,几位创始成员为什么决定离开大厂出来创业?ApacheDoris发展路径发生了怎样的变化?SelectDB产品的定位和技术侧重点与Doris社区版本有什么不同?近日,InfoQ有幸采访到了SelectDB创始团队的多位核心成员,了解他们创业背后的故事、他们在Doris和SelectDB项目的技术实践与经验,以及这些工作背后的沉淀和思考。
离开大厂创业,是时代趋势使然
开源发展至今已经有40年历史,前20年是开源软件“野蛮”生长的粗犷式发展阶段,后20年进入到互联网时代后,不少新兴企业基于开源模式发展起来,开源软件的商业化和生态趋于完善,开源软件逐步被广泛应用于生产中。
开源项目大多发端于大型互联网公司,这些互联网公司在快速的业务发展驱动下,研发了满足业务需求的技术并将这些技术开源出去。在这一阶段,项目的首要目的是满足自身公司业务的诉求。
云计算崛起后,在开源和云计算双重趋势的推动下,这些当初仅满足公司自身业务发展的开源项目迈入了产品化和普世化的进程中,甚至有许多项目走出大厂,独自成立了公司以商业化的形式继续运行下去。
以Presto项目为例,年,从Facebook开源出来的Presto项目衍生出了PrestoSQL,PrestoSQL变为Trino后最终走向了商业化的道路,Starburst就是Trino的商业化主体公司。
放眼全世界,近些年来全世界其他源自大厂的顶级开源项目都在走向独立创业的道路,比如Kafka、ClickHouse等等,这些趋势背后的核心推动力就是技术普惠时代的到来。
基于此,SelectDB团队离开大厂创业显得不那么让人意外。
SelectDB团队在接受采访时也表示,“这几年出来做ToB创业的企业越来越多,这不是单独某个人某个团队自己的选择问题,是一个新的时代在召唤大家。”
-年是PC互联网时代,诞生了百度、阿里和腾讯等大企业。这个时代又鲜明地分成了两个阶段:即互联网基础设施的完善,和后面WWW的兴盛。互联网基础设施与WWW应用,互相促进。-年,智能手机的出现推动了移动互联网时代的到来。移动互联网时代也分为两个阶段:即智能手机的普及和手机上大量APP的诞生。智能手机平台与智能手机应用,互相推动。
时至今日,我们已经走入了产业互联网时代。随着公有云产业基础设施的逐步完善,未来的十年,也将是云上各类软件服务的鼎盛时代,企业服务将会迎来巨大的发展空间,所以企业服务成为了很多企业花重金也要打下来的“战场”。
“以TP领域为例,源自大厂的项目可能更重视大规模扩展,所以系统实现更为复杂,但如若作为产品推向大众,会发现大多数企业可能仅需要单机就能满足,并且对部署和运维要求尽可能简化,那么面向大规模扩展这一特性就丧失了原有的优势。所以,自身定位一定需要转变。我们基于ApacheDoris创业,是希望将Doris以及我们的商业化产品SelectDB朝着更加产品化、更加通用化的方向努力,例如易用性的改进、与上下游产品有更好的贯通、与云平台的结合、开箱即用的跨集群复制和备份恢复能力等,这些都是除核心特性以外需要重点优化的方向。我们不想错过这样一个充满机遇的时代。”SelectDB团队如是说。
创业中遇到了哪些问题
创业第一道坎:组建一支强有力的团队
创业维艰,这条路并不好走。解决产品定位、招聘优秀人才都是创业初期较为棘手的问题。SelectDB团队面临的第一个挑战就是如何组建高效执行的团队。相较于大厂自带光环,创业公司在人才招聘方面会显得尤为艰难。
幸运的是,得益于在开源社区过去的投入和对开源技术的坚持,SelectDB团队很快就跨过了招聘这道坎。“开放、包容、合作的文化氛围对于吸引优秀人才具有重要的意义,因此很多热爱开源的技术工程师在获知我们招聘的第一时间就主动联系到我们希望加入”。
据SelectDB团队介绍,“在团队内部,习惯了开源协作模式的我们坚信顺畅的信息流通可以帮助团队获得更高的执行力,因此所有研发工作都采取了以GitHub为基础的协同开发模式。另外也设置了一系列沟通机制,进一步清晰团队职责、帮助每个人更清楚各自的分工、在目标执行时有更明确的方向,降低沟通成本的同时也保证了更高的协作效率,也有助于团队新人的融入”。
目前,SelectDB团队已发展至多人,其中80%为技术人员,包括研发、运维、质量、解决方案/技术支持,在开源和商业产品上的人力基本上是各占一半。
创业第二道坎:产品定位
人有了,接下来就是做产品。对于团队来说,他们要面对的挑战就是视角和思维方式的转变——从工程技术视角转向产品视角,研发产品时要多地要去了解用户和客户想法,从场景驱动产品、产品驱动研发。
推动开源技术创新、繁荣开源生态、打造云原生时代实时数据分析领域的标杆产品,是团队的首要定位。其实在成立初期,SelectDB创始团队已经将这一定位想得非常清楚了,接下来要做的就是如何推行和落实下去。
创业第三道坎:社区认同
此外,像所有从大厂走出来的开源项目一样,SelectDB团队也面临着开源社区身份认同的问题。ApacheDoris作为最早从百度孵化出来的项目,如今由SelectDB团队进行商业化。无论是内部或者外部都会被问到为何投入如此大的人力物力来建设ApacheDoris社区,而不是研发自己的闭源产品或开出新的分支。
面对这样的声音,SelectDB团队解释称,正是因为当前时代具备无限可能性,使ApacheDoris可能成为一个伟大的开源项目,使我们有机会打造出伟大的产品,因此也赋予了我们成立这家公司的意义。因此我们更应该把握时机,团结齐心,将这种可能性变成确定性,所以也更应该不遗余力地建设ApacheDoris社区。
而在问到如何与市面上其他同类产品如何共存时,SelectDB团队提到,“正是因为Apache项目的中立性、只会从属于Apache基金会,所有任何人都可以投身到社区的贡献中来。我们不是社区的拥有者,而是社区的推动者和贡献力量之一。同时市场上也有几家云厂商推出了基于ApacheDoris的企业级数仓产品,他们与我们并非竞争关系、而是共赢关系,这种多样性也保证社区得以更加健康的态势发展下去”。
开源商业模式是伪命题吗?
在基础软件蓬勃发展的今天,开源正在吞噬着一切。但一直以来,围绕着开源展开的话题永远逃不掉开源商业化。开源商业模式到底是不是一个伪命题?开源项目想要获得商业价值,要具备哪些条件?
在SelectDB团队看来,开源商业模式并不是一个伪命题。「开源」本质是一种软件研发模式、通过源代码共享协作实现技术迭代,「商业模式」则是企业满足市场需求、实现收入或盈利的商业逻辑,如果只强调开源、不去思考如何获得商业收入,这样的企业最终可能深陷泥潭,开源与商业化的平衡与共存是每个以开源技术为基础的公司都必须要考虑的。
因此,SelectDB团队更倾向于将「开源商业模式」定义为「企业以开源软件为基础来构建产品或服务、以实现收入或盈利的商业行为」。在这一定义之下,过去我们常提到的OpenCore、SaaS/云托管、订阅服务、License授权等一系列开源商业模式都说得通了,无论是MongoDB、Suse、Elastic、HashiCorp,所销售的产品或服务都是基于开源软件构建、都是为最终实现商业转化和收入目标而服务。
开源与商业化需要找到一个良性并存的方式,才能将开源推向另一个高度。在经历过长时间深入探索后,现在我们笃定这一良性共存的最佳方式就是将开源和云相结合,这也将是未来数据库演进的主要趋势。
一个开源项目想要获得良好的商业收益,一定要具备以下三个关键点:
被广泛认可的产品价值
繁荣、自治、良性发展的社区生态
开源与商业化的平衡与共存
就目前而言,ApacheDoris在前两关键点上的表现还是可圈可点的,而要想达到开源与商业化的平衡与共存,则需要更长的时间才能得到证明。
打造新一代实时数仓
在整个社会数字化转型加速的背景下,各行各业对大数据实时处理和应用的需求正快速增长,对分析时效性的要求也越来越高。如果用一句话来概括目前数据处理的痛点,那就是数字化时代不断涌现的数据分析诉求与降本增效的行业趋势之间的矛盾。
过去,当用户有查询报表需求时,一个MySQL或者Oracle就能轻松解决。但是随着时代与技术的发展,数据量呈指数增长、数据类型更多样化、数据场景更加细分,就需要引入Hadoop、Spark、Elasticsearch、Presto、Clickhouse、Druid、HBase等多个大数据技术栈来解决特定业务面临的问题,包括Ad-hoc、联邦查询、固定报表、标签画像以及日志分析等。
多个技术系统的复杂性带来了繁重的开发维护成本,技术栈的简化与统一成为人们所追求的方向,而云计算技术的发展,为实现更高性价比和极简使用体验带来可能。
正由此,SelectDB团队希望贡献自己的技术经验和工程力量解决行业痛点、构建云原生时代具行业普适能力的实时数据仓库。通过数据分析技术革新与云计算技术的结合也就成为SelectDB产品的突破口。
在产品设计上,SelectDB提供两个版本,一个是全托管的云服务版本(SelectDBCloud),一个是可以私有化部署的企业版(SelectDBEnterprise)。
那么,这两个版本之间有何区别?
据SelectDB团队介绍,SelectDBCloud面向的是有上云需求的企业。SelectDBCloud可以运行在国内和国外主流的公有云上,并且在多个云上有一致的使用体验。多云一致并且体验一致是其区别云厂商数仓服务的一大特色。
SelectDBCloud对Doris进行了大量重构以便利用云的强大能力,提供更大弹性。存储与计算的分离,可以让存储与计算独立扩缩容;多计算集群的支持,可以在共享一份数据的基础上,可以提供物理隔离的多个计算集群;并且每一个计算集群都可以进行自动扩缩容,当前SelectDBCloud支持手动和按时间设定的平滑扩缩容能力。
SelectDBCloud也针对数据库管理员运维提供了可视化的管理控制台,简化运维工作。
SelectDBEnterprise版本则可以服务于希望私有化部署SelectDB的企业。
SelectDBEnterprise版主要提供一个长周期支持的、稳定的Doris内核。开源的ApacheDoris内核迭代比较快,新功能不断合入,企业客户在不断体验新功能的同时,也会担忧投入生产后的稳定性问题。所以,SelectDB基于开源Doris提供了一个企业级的稳定内核,会在广大开源用户使用的问题反馈基础上、经过SelectDB专职测试团队测试和调优,并且SelectDB为每个稳定内核提供长达12-36个月的长周期持续维护,免除企业升级带来风险的担忧。这个内核完全可以与开源Doris内核互相兼容,企业随时可以从两个内核互相切换,不用担心被锁定到SelectDB的企业内核上。
同时,SelectDBEnterprise版也会提供可视化的Manager功能。数据库管理员可以利用Manager管理多个集群,完成部署、升级、重启和配置等功能,同时可以诊断、监控和报警等。SelectDBEnterprise版,也会提供跨集群复制和备份恢复等企业级功能。
无论是SelectDBCloud还是SelectDBEnterprise,在最初产品设计时SelectDB团队都希望将这些产品打造成具有普适能力的数据库产品,至少要能够覆盖80%的用户需求。
SelectDB团队希望仅通过一个系统解决绝大部分问题,降低复杂技术栈带来的开发、运维和使用成本,最大化提升生产力。
新一代数据仓库的一些挑战
OneSizeFitsAll,行得通吗?
但据墨天轮数据社区发布的《年中国数据库行业年度分析报告》显示,截至目前国内共有款数据库产品,单年就新增了55款产品,占比总数量的五分之一。
数据库市场百花齐放,各细分领域垂直产品经过不断打磨,已经可以在金融、制造等场景下独当一面了,想要通过一款通用的、普适化的产品链接到各种应用场景里,并不是件容易事。在软件行业,追求Onesizefitsall的产品似乎都最终失败了。
对此SelectDB团队表示:
做Onesizefitsall的产品,一定要加上一个大前提——符合高内聚低耦合的原则。也就是说,但凡是应该要高内聚的能力,我们需要做到Onesizefitsall;而那些低耦合的、不应该内聚的,即使有技术有能力做到一起,也不应该去做。很多Onesizefitsall失败的原因都是违背了这个原则。比如HTAP,大家觉得应该把TP和AP做到一个系统,也可能通过努力实现这一目标,但是TP和AP在很多企业没有实现一体化,有很多不是技术的原因。所以在现阶段HTAP我们更认可作为一个一体化的方案去推动更好,而不是试着去做一个单一的HTAP软件。比如,可以使用MySQL来做TP,那么可以用Doris来做AP,通过Doris自带的可以从MySQL秒级实时同步数据的能力,可以打造一个基于MySQL+Doris更好的HTAP一体化解决方案,这也是最近AWS在Aurora和Redshift推行Zero-ETL的原因。
此外,SelectDB团队也强调,在考虑实现产品普适化能力的同时,一般而言不会以牺牲性能为代价,原因有三:一,良好的实现方案在设计之初就会最大程度去避免系统性能受影响,同时配合流水线上的性能测试保证不会有新功能的合入带来的性能回退;二,即使会对某些性能造成影响,也会对普适能力的提升和所影响的范畴之间进行权衡,看成本和收益比是否合理;三,数据库性能的优化是一个无止境的工作,影响性能的每个环节都有可能有持续的提升空间。
也就说,在所有产品能力中,普适性能力并非是更高优先级,而是与系统的性能、稳定性以及易用性等多方面处于并列的位置,生产级别的数据库不能只考虑某一方面而忽视另一方面,用户的抉择也从来都是一个全面的思考过程。
从互联网走向传统企业,
如何克服兼容性问题
自项目诞生之日,初创团队对于Doris的定位就是新式数仓。但多年之后,随着数据处理方式的演进,Doris有了新目标——成为一个极具兼容性、全面拥抱云原生的实时数据仓库。
最初,Doris来自互联网公司,在推广到传统数仓领域时,在SQL兼容性上遇到了一些问题。离开大厂后,SelectDB团队也针对这一问题进行了优化,目前已经有大量传统企业开始使用ApacheDoris来替换以PG协议为主的传统数仓。由于Doris采用了MySQL兼容协议,从实际使用来看,很多企业也愿意向Doris的SQL来转移,毕竟MySQL的协议大家更为熟悉。在改写过程中,实际需要改动的也并不多。
但并不是说Doris与所有的传统数仓都能完全兼容。对于一些已经有大量的业务在传统数仓中、且复杂SQL迁移难度大的企业,建议采用逐步替换的思路:先迁移部分业务上来,另外再尽量提供一些工具帮忙自动改写,并针对其中难以改写的SQL在语法层做一些兼容。
走向云原生主要做了哪些工作
作为一款分布式的MPP数据库,ApacheDoris最初设计是部署在IDC物理机上。当将这个原生分布式的数据库迁移到云上并实现云原生,势必需要进行一次大的重构,以便深度利用云的能力。
首先,要完成存储与计算的分离。存储要全部放到对象存储上,而对象存储的性能又不满足实时数仓计算需要的性能,就需要采用计算节点的本地存储作为热数据缓存,如何设计缓存策略对系统性能有着重要影响。
其次,存储与计算分离后,用户可以针对一份数据同时启动多个计算集群,并且多个计算集群可以用来做多活,可以用来做负载隔离。SelectDBCloud提供了多计算集群可以共享同一份数据的能力,并且多计算集群都可以做到多写,而不仅仅是一个写多个读的模式。
SelectDB团队称,“作为一个全托管的云数仓服务,如何保证客户的数据安全,并且方便的与客户在云上的VPC进行网络贯通,这些都需要重点去研发”。
未来规划和新方向展望
解决完兼容性和上云问题后,Doris的下一步规划是怎样的?后续SelectDB团队在开源社区和公司层面的首要工作分别是什么?
SelectDB团队表示,后续在Doris的工作重点就是核心功能Feature的研发,主要集中在高性能、混合工作负载、半结构化数据分析、数据湖分析、实时性与稳定性提升等方向上。
从具体功能上来看,包括支持更复杂SQL并具备全查询场景自适应优化的查询优化器、单节点数万QPS超高并发承载量的点查询优化、更灵活执行调度的Pipeline执行引擎、基于倒排索引的全文检索能力以及更高效的文本分析算法、根据写入数据自适应Schema的动态表等重要Feature都有SelectDB团队的工程师参与贡献。
除功能以外,对社区用户的技术支持和社区运营推广也是SelectDB团队投入的另一大方向。
目前,SelectDB团队成立了一支专门的技术支持团队,在过去一年多的时间里为大量的开源用户提供免费的技术支持,沉淀了上百万字的内容知识库,后续这些内容也将逐步将开放在SelectDB开源论坛中。
而在公司向,SelectDB团队的工作主要分三块:增强数据库的实时性、完善数据湖分析、更多企业级特性的开发。
在增强实时性上,主要是优化实时数据导入、继续加强主键存储模型的实时CRUD能力,以便能够承载更高频的数据导入能力,提升数据可见性。
在完善数据湖分析上,虽然当前SelectDB已经可以直接查询Hudi、Iceberg和Hive等数据湖,但一些性能仍有待优化和提升。
针对很多企业需求比较大的企业级特性,尤其是跨集群复制(CCR)和更加完善的备份恢复,也是SelectDB团队下一步的重点工作。