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