选自trino.io
作者:Martin Traverso等
机器之心编译
编辑:杜伟
这是高性能分布式 SQL 查询引擎 PrestoSQL(Trino)与 Meta 的故事。
在大厂工作,是很多人毕业后的理想选择。但有人却选择离开,他们是出于哪些考虑呢?本文将为大家讲述一群人离开 Meta、投身开放社区的历程(以第一人称讲述)。
离开 Meta 是我们做过最轻松的决定之一,这听起来可能让人觉得惊讶。很多讨论离开 FAANG(即 Meta、亚马逊、苹果、网飞和谷歌等五家科技巨头的合称)的帖子都大书特书丰厚资金或工作声望。对于我们来说,我们在 Mata 启动了 Presto 项目,并清楚该项目很快可以超出 Meta 的范畴,并解决分析领域的更多问题。当时,我们没料到 Presto(用于大数据分析的分布式 SQL 查询引擎)会被全球数千家公司和绝大多数行业采用。
我们非常感激 Meta 这个启动平台,激励了其他人采用 Presto。尽管开局很和谐,但当社区与 Meta 的需求不再一致时,我们不得不选择离开。
Presto 的创始大佬们。
人们组成了社区,而不止公司
在创建 Presto 的时候,我们很清楚它需要开源。Presto 项目开始于 2012 年,就在 Mata IPO 之前。当时,Meta 的公司文化非常有益于启动一个开源项目。Meta 彼时正致力于开放计算项目(Open Compute Project),并最终颠覆了硬件行业。我们同样希望通过 Presto 项目实现类似的影响。
因此,我们说服并获得了前 Meta 基础设施副总裁 Jay Parikh(2021 年加入 Lacework 担任 Co-CEO),将 Presto 作为开源项目发布。这是我们一开始就想要做的事情。我们曾经与开源项目合作,并相信最成功的项目都是开源的。
项目地址:https://github.com/prestodb/presto
让其他人和其他公司参与进来会使项目更健康地发展。你最终创建的项目不只是满足自身需求,还能满足任何其他人的需求。然后反过来,你也会从中受益。我们亲自联系了来自 Airbnb、Dropbox、Netflix 和 LinkedIn 等公司的人,让他们参与进来,所有这些都源于我们想要构建一个真正的社区。我们让这些公司对 Presto 进行了 beta 测试,所以当我们发布 Presto 时,它们发现的问题已经得到了解决。
重要的是理解为什么这样做有助于真正抓住开源背后的理念。实际上,当我们说让更多公司参与进来的时候,我们的确这样做了。但更重要的是,我们让更多的人参与了进来。技术圈子的人热衷于解决技术问题,公司热衷于解决有利于董事会、投资人和客户的问题。工程师、分析师和科学家热衷于解决的问题与公司需要解决的问题常常出现重合,但又无法永远保证重合。
此外,公司的利益很容易受到公司成长、IPO、收购、方向转变以及一般政治和文化变革等多因素的影响。随着人们开始将更多的时间和精力投入到一个项目中,他们的个人身份与项目的成功联系在一起。对于公司而言,只需要一小部分处于适当位置的人就能决定一个项目不再与公司的发展方向或目标保持一致。
需要明确的是,我们并不是说当一家公司转变发展方向是一件坏事。这是商业的本质,企业的参与也是开源保持健康的重要组成部分。然而,对于我们来说,使项目长久并对使用该项目的所有人有益的核心在于构建系统并对问题空间(problem space)感兴趣的人。
所以,接下来讲一讲 Meta 发生了什么事情并导致了我们的离开。
我们为什么离开 Meta
随着 Presto 成为 Meta 重要项目的核心基础设施,它吸引了很多内部工程师和经理的注意,他们也希望参与到项目之中。这是一个项目成功的重要信号,但他们中的很多人并没有对开源社区做出承诺。这也成了很多冲突的源头,参与开源意味着花费大量时间和精力,并且我们奉行了严格的「一视同仁」策略。这意味着每个人的代码都需要审查,并且仅仅因为你为 Meta 工作,你仍必须获得提交权。Meta 的工程师具有极大的动力去开展卓越的工作以在公司取得进步,但额外投身于 Presto 的开源工作减缓了他们的进步。
这些工程师的反馈最终促使经理做出决定:为所有在 Presto 项目工作的 Meta 工程师提供了自动贡献者权限,从而使他们更快地行动。
在这样的情形下,你也许认为 Meta 的工程师或经理是「大灰狼」,但事实并非如此。在 Meta 等这些竞争激烈的公司中,工程师必须创造出令人难忘的工作,否则他们就无法得到晋升。如果你是一位初级工程师并且没有获得晋升,那么等待你的只有被解雇。公司领导者也有权改变他们为开源项目分配资源的方式。这些在本质上都没有错,问题是这样做改变了我们保持开源社区中立所做的承诺,并与我们想要建立一个健康、开放社区的愿景背道而驰。
那时,我们知道如果想要始终让社区的利益保持在前面以维持健康发展,就必须通过开源项目分支的方式发展新项目,即 PrestoSQL。然而,我们在当时犯了一个最大的错误,没有将项目名称脱离 Presto。
2018 年,我们最终离开了 Meta。2019 年 1 月,我们成立了 Presto 软件基金会,它是一个非盈利性组织,致力于推动 PrestoSQL 查询引擎的开源工作。该基金会由我们三位创作者 Martin Traverso、Dain Sundstrom 和 David Phillips 领导。
这时,Meta 维护的 PrestoDB 和我们维护的 PrestoSQL 并行发展。然而,令我们意想不到的是,Meta 后来竟然申请了 Presto 的商标,并于 2019 年 9 月将 PrestoDB 捐赠给了 Linux 基金会,并联合推特、Uber 等成立了 Presto 基金会。
我们不得不面临为 PrestoSQL 更名的事实,并于 2020 年 12 月底正式将 PrestoSQL 更名为 Trino。
Trino 官网:https://trino.io/
构建 Trino 社区
一个新项目想要获得成功,最难的部分在于用户的使用。由于 Presto 在 Meta 时就获得了不错的人气,因此我们最开始不需要特别努力地开发社区。但离开之后,我们不得不以经典的「草根」方式构建新的社区。
我们走出去并开始与人交谈,让人们建立联系,做更多的推广和活动。可以说,离开 Meta 让我们充满动力。这些对我们不多的人手来说的确有点繁重。虽然看到人们对自己的工作有反馈是很棒的事情,但你必须付出很多。不过,这也为提升成员的参与度提供了条件。
当我们将 PrestoSQL 更名为 Trino 后,再次加倍发展社区,并加速社区的参与。正因为如此,我们相信 Trino 社区会比以往任何时候都更强大。
PrestoDB 与 Trino 的 GitHub 标星增长曲线。
Trino 的版本发布周期更短,远远超过了我们运行 Presto 时的速度。我们在 Trino 中推出了很多新的社区驱动的功能,比如支持容错执行模式,改进时间戳支持、动态分区剪枝、多态表函数、高级窗口函数等。
从长远看,个人驱动的开源项目往往要比公司驱动更能构建更健康的社区和生态系统。我们相信并践行了这一理念。当我们从 Presto 这一发展 10 年之久的项目中走出来时,也获益很多。我们将继续努力工作,始终致力于颠覆分析行业并改善人们的生活。
原文链接:https://trino.io/blog/2022/08/02/leaving-facebook-meta-best-for-trino.html
掌握「声纹识别技术」:前20小时交给我,后9980小时……
《声纹识别:从理论到编程实战》中文课上线,由谷歌声纹团队负责人王泉博士主讲。
课程视频内容共 12 小时,着重介绍基于深度学习的声纹识别系统,包括大量学术界与产业界的最新研究成果。
同时课程配有 32 次课后测验、10 次编程练习、10 次大作业,确保课程结束时可以亲自上手从零搭建一个完整的声纹识别系统。
课程目前还在首周优惠中,欢迎对声纹领域感兴趣的同学一起学习。
点击阅读原文,了解更多课程内容。
© THE END
转载请联系本公众号获得授权
投稿或寻求报道:content@jiqizhixin.com