乐趣区

关于数据库:15-年开源路从大厂搬砖到创业挖坑

上个月回蚂蚁做了一场无关开源的分享,让我讲讲来到公司本人做开源守业后的感想。

正好借着端午节的工夫,也更残缺地回顾一下本人职业生涯 15 年来和开源结缘的经验。

邂逅 Cappuccino

08 年加入工作后,第一个投入精力的开源我的项目是 Objective-J 和 Cappuccino 框架,因为我的第一份工作是 Mac 利用开发,应用的是 Objective-C + Cocoa 框架。Objective-J 和 Cappuccino 是 Web 版的 Objective-C,Cocoa。这个对于我这样一个不想再独自学习 JS, CSS 这些,但又想开发 Web 利用的人来说很有吸引力。尤其是我的项目背地的公司 280 North 还专门做了一个网页版 PPT 软件 280slides.com 来展现他们这套计划的能力。

280 North 这家公司的名字取自 280 公路,它是连贯硅谷外围地带和旧金山的两条高速公路之一,另一条是 101。但因为 280 沿途风景优美,所以大家更喜爱走 280。

我空下来工夫就在捣鼓 Cappuccino,那时共事还发动了 CocoaHeads 北京的社区,我也去给大家分享了一下 Cappuccino,这也是我至今惟一一次加入的线下社区分享。起初 280 North 还出了一个 Web 版的 Xcode,尽管要免费,我也立即去充值了信奉。

即便放到明天来看,Cappuccino 的技术和设计品尝都不过时,就连它商业化产品采纳的名字也和 MongoDB 一样,都叫 Atlas。也起初没过多久 280 North 这家公司就被摩托罗拉以 2000 万美金收买了,而公司就只有 3 集体。

去瞄了眼 GitHub 上 Cappuccino 的仓库,竟然最近还有沉闷。

尽管我的项目算是黄了,我购买的 Web IDE 也打了水漂,但还是从我的项目自身学到了不少,也感触了一把大厂的钞能力。

集成 libcurl

工作中第一次深度接触的开源我的项目是 cURL,更具体的说是它的库 libcurl。因为过后要实现一个通过脚本去调用 Web 服务的能力,而因为咱们的产品须要同时反对 Mac, Windows 以及 iOS,所以就须要找一个 C 语言系跨平台的库。调研了一圈,发现了 cURL 以及 libcurl,看着反对各种协定,就决定选它了。

在产品里集成 libcurl 是那时工作以来挑战最大的一个工作,因为是增加一个底层框架组件,而后这个工作据说是 CTO 接到了用户需要,长期加塞进来的,切实没人了,就交给我这个 Junior 做。我还好对 Cocoa 框架相熟,于是就照着它外面的 NSURL,NSConnection 设计了一版。记得印象很深的是 deadline 最初一晚,还在公司搞穿插编译,弄到中午才搞定,没人 review,只好先提交完代码,后果开车回去,闯了个小路上的红灯,被潜伏在那里的警察逮个正着,吃了张巨额罚单。第二天到公司,QA 组长群发邮件,说 test build 坏了,一看果然是我干的,穿插编译的环境还是漏了,再给大家回了封致歉的邮件。修好后,QA 刚筹备开测又疯了,因为 curl 自身反对各种协定,集成了 libcurl,就人造反对了各种协定,那实践上 QA 就要把各种协定都测一下。

所以起初探讨了一下,就缩减到第一版只反对 FILE, HTTP 这两个协定。随着工作年限的深刻,我才晓得 curl 的影响力之大,简直所有的技术文档都有它的身影。其实过后做完需要,我只是感觉这玩意真不错,竟然能反对那么多协定,这也是我第一次在工作中用开源组件解决问题,算是尝到了开源的苦头。

保护 MySQL & PostgreSQL 分支

13 年去了 Google,做的是数据库云计算服务 Cloud SQL,一开始它提供的是基于 MySQL 的云服务。Cloud SQL 团队本人保护了一个 MySQL 分支,我起初成为了分支的主维护者,负责每次同步上游的新版本。到 Cloud SQL 要推出 PostgreSQL 服务时,我也负责整个研发,第一步先是把过后最新版的 PostgreSQL 在 Google 外部的 Blaze 零碎进行编译,而这个过程中最折腾的是 PostgreSQL 的 PostGIS 插件,这个插件是 PostgreSQL 的杀手级组件,肯定要有,然而这个插件自身又依赖另外几个解决 GIS 数据的开源我的项目,所以就又扯上了 Geo 部门。

之后 Google 的 MySQL & PostgreSQL 分支始终就由我在保护着,咱们自身提供的是原生的 MySQL & PostgreSQL 服务,所以对于内核的改变不算太大。但这个职责让我和上游社区有了更多的接触,同时和 Google 外部的开源治理团队打了一些交道。

旁观开源

2018 年回国后入职蚂蚁,首先退出的是 OceanBase 的 DBA 团队。OceanBase 当初是开源的,在我退出前也曾开源过,不过我在团队的那段时间正好在闭源阶段。起初我还先后去了研发效力部和体验技术部,但我负责的那块正好也都没有采纳或者保护开源我的项目。不过那段时间海内的几家头部开源公司都跑通了商业化,国内也有像 PingCAP 这样的开源标杆,大厂也越来越器重开源这块,蚂蚁也成立了开源技术委员会,我也代表所在部门参加其中。蚂蚁也是优良开源我的项目星散的中央,突出的像前端的 Ant Design,数据库的 OceanBase。惋惜在蚂蚁的时候,没有契机参加到开源我的项目中。而从旁观者的角度看,蚂蚁和 Google 很相似,作为各自地区开源畛域的标杆公司,既是开源很大的受益者,也是开源很大的贡献者。不同的是,相比于 Google 有绝对短缺的开源反对资源,蚂蚁投身开源的同学业务压力更重,常常要用爱发电,殊为不易。

尽管在蚂蚁没有参加过开源我的项目,然而几个不同部门任职的教训帮我找到了守业的点子,而且我晓得最好的门路就是通过开源。

守业做开源

在蚂蚁呆过 3 个团队,也做了 3 块业务:数据库工具平台,开发者工具平台,生产力协同平台。而当初做的开源我的项目 Bytebase 便是这 3 者的联合,一个围绕数据库开发流动,帮忙开发者和 DBA 协同的开发者工具 – Bytebase。

也有人会和我探讨,从商业角度思考,Bytebase 是否并不需要开源,对方的观点也有逻辑,业界也有 Snowflake, Datadog 这样的闭源胜利案例。但我从一开始就置信,开源的 Bytebase 是更优的商业抉择。或者正好是我接触的开源始终是和商业联合在一起的,第一段提到的 280 North 其实是 YC 晚期投的一家公司,也是 YC 历史上第一个比拟大的退出回报。贴上当年 YC 掌门人 Paul Graham 在 HN 上的回复:

10 年来到硅谷,看到一个叫 Mongo 的开源 NoSQL 数据库在到处布道,看着它连事务都不反对的样子,作为 ACID 原教旨主义派的我是不屑一顾。而时至今日,MongoDB 曾经是商业上最胜利的开源公司了。

MongoDB 的官网设计也是开源商业化公司的榜样,字体色彩的搭配,既业余也不失亲切。

大厂和守业做开源的异同

在蚂蚁分享了 3 个点,「以终为始」,「大鱼大池」,「无可比拟」。

以终为始

圈内有一个认知是「技术」->「产品」->「商品」这三点不能正着连,而是要以起点「商品」开始往回连。这个对于像 Bytebase 这样的开源商业公司是没错的。然而对于有其余主营业务的大厂来说,则齐全就不是这条线。因为即便拿寰球最胜利的开源商业公司 MongoDB 来说,它一年的营收可能只是蚂蚁这样的公司几周的利润。所以大厂做开源的「终」不是靠开源产品自身挣钱,还是回到赋能本身业务,赋能品牌上。

大鱼大池

要么做根底外围软件,要么做寰球市场,最好是兼而有之。大厂有资源从一开始就投入根底软件的研发,并且间接面向寰球市场。而守业公司资源无限的状况下,尽量能选其一,或者再退一步,有达到其一的实现门路。

无可比拟

开源没有疆界,根本是赢家通吃,一张 SSS 卡 > 一箱 SS 卡。开源有很多的品类能够做,Apache, CNCF 一个品类下也有不少的我的项目。

但根本每一个品类往往只有一家最多两家的机会。Kubernetes 让 Mesosphere 和 Docker Swarm 都沦亡了,Prometheus 始终统治着监控的江山,一将功成万骨枯。大厂开源我的项目多,但却很难孵化出 SSS 级的我的项目。因为策略的错位,使得无奈保障继续的投入,没有继续投入,就很难做出精品。反倒是团队从大厂进去单飞后更能做成,像来到 LinkedIn 后的 Kafka / Confluent,脱离 Uber 后的 Temporal。
无论是在大厂还是守业,投身开源的同学多少都带着点理想主义,去业务线做个纯正的 CRUD boy/girl 往往降职更快,拿钱更多。但大家做开源,是因为在帮公司发明商业价值的时候,也想帮本人实现自我价值。心愿本人写的代码不只用于营销场景,去套路一个个的用户,也能间接地驱动一个太阳能设施,摸索一片空间,灌溉一方水土。

最初

蝴蝶扇动翅膀,万里之外飓风。如果 15 年前的我没有通过 Cappuccino 接触到开源社区,很可能当初的我也不会以开源为业。若是当年 Cappuccino 背地的 North 280 没有被摩托罗拉高价收买,成为晚期 YC 投资的标杆案例,或者也没有前面出自 YC 的 Sam Altman,以及当初 OpenAI 引发的新一轮技术反动。
而在这一轮的 AI 反动中,开源将表演更加重要的角色。即便 OpenAI 逐步不再 Open,AI 畛域的开源我的项目仍然欣欣向荣。前有 Auto-GPT,后有 GPT Engineer,各种开源模型每天还在竞相刷新纪录。之前顶尖开源我的项目的增长趋势在 AI 开源我的项目下齐全不值一提。

很可能在本人来到下一个 15 年之前,开源的 AI 我的项目们就会吞噬掉整个世界吧。


💡 你能够拜访官网:https://www.bytebase.com/,收费注册云账号,立刻体验 Bytebase。

退出移动版