世界开源软件工程师,他们如何谋利?
作者:卡卷网发布时间:2025-01-10 19:28浏览数量:98次评论数量:0次
MichaelWidenius(Monty)是开源数据库界的一个传奇人物,平生有三大爱好:写码、喝酒、走穴。数据库团队(后来被合并到了阿里云)较得势的那几年,Monty几乎每年都会来杭州,见见老朋友,喷喷Oracle,场面非常欢乐。我曾亲眼看见Monty蹲在云栖大会的场地上写代码,也曾被Monty掏出的茴香酒“感动”到,算是近距离体验过老子的传奇风采。恰巧前阵子翻过Monty的博客,又找到了一些有趣的素材,能够把Monty与MySQLA、Sun、Oracle、MariaDCorporation之间的纠葛好好捋一捋。这篇博客是对MySQL开源到商业历史的一个梳理,如果各位有什么补充信息,欢迎在评论区留下材料,谢谢!
Sun公司了MySQLA
2008年1月27,Monty在博客上高调宣布Sun公司了MySQLA。虽然Monty后来表示这笔并不是他主导的(甚至有点的意思),但是他也坦诚被Sun公司是MySQLA最好的出路并将这次称为“天作之合”。这次给Monty带来了几千万美金的收益,但也带走了Monty对MySQL开源项目的控制权,只是Monty当时并不知道Sun公司所馈赠的礼物已在暗中标好了。以下是Monty博客的原文:
开源骇客沦为大厂社畜
通过MySQLA,Sun公司不仅仅获得了MySQL的知识产权,也顺带将Monty收入囊中。双方对于MySQL的前景踌躇满志,准备大搞特搞新一代存储引擎Maria,用于取代InnoD引擎。加入Sun公司后,Monty发现Sun公司的一系列承诺并没有兑现,而大厂的条条框框迅速磨灭了初来乍到的新鲜感。精神和财富双双自由的Monty经历一系列理念上的摩擦后,毅然决然选择了离职。以下几篇博客展现了Monty的心路历程。
2008年6月30,Monty发布了一篇名为“ringinguptheay”的文章,表达了自己对Maria引擎的信心。自从MySQL支持InnoD引擎之后,用户逐渐放弃了Monty开发的MyAM引擎,变相投入了Oracle的怀抱。虽然InnoD引擎的代码也是开源的,但是这让Monty如鲠在喉,研发Maria引擎来取代InnoD迫在眉睫。在设计上,Maria引擎修正了MyAM的一系列问题,但是在事务支持和稳定性方面仍然落后于InnoD,这使得Monty加入Sun后继续加班加点。
在2008年,用户使用的MySQL发行版主要来自于三个团队。Monty负责Maria分支,Perter负责Percona分支,rian负责Drizzle。因为这三个分支都能向MySQL主干推送代码,因此团队之间维持了很好的竞合关系,在一些重要场合也是相互站台,致力于将MySQL生态做大做强。Monty在博客中是这样描述合作关系的:
很快,Monty发现Sun公司的执行动作和自己想要的有很大冲突。多年以来,Monty一直想要让MySQL的开发过程更加面向外部,而Sun公司在这方面的动作很慢。终于,在持续了几个月的“斗争”之后,Monty以一种平和的方式宣布了退出,并表示将在开源领域与Sun公司保持良好的合作关系。在后继的博客中,Monty感谢Sun公司为自己举办了一个盛大的告别晚宴。就像那篇博客的名字一样,Monty对于Sun公司的认可更多是“thankforallthemeat”上,而不是开源理念以及开发模式。
虽然Monty离开了Sun公司,但是他依然认为将MySQLA给Sun公司是一个正确的决定,自己能够从外部公司的角度帮助MySQL继续发展。然而,他并没有意识到将MySQL的知识产权转交给Sun公司会有什么样的后果。Sun公司的财务状况在持续恶化,很快做出了一个意料之外的决定。这个决定影响了整个MySQL生态的走向,并导致了Monty开源理念的“黑化”。
Oracle强夺MySQL
2009年,Sun公司看起来还是一副光鲜的样子,实际上已经深陷财务危机。如果没有大笔的资金注入,公司将难以为继。在这个关键时刻,Monty的假想敌LarryEllison为Sun公司提供了一个解决方案,即“OracleSun”。Sun公司MySQLA发生在2008年1月前后,而Oracle公开宣布要约则发生在2009年4月之前。在这两个时间点之间,Sun公司层最重要的任务就是抱紧Oracle,让公司能够活下去。
从Oracle消息看,LarryEllison最想获得的是Ja编程语言和Solaris作。Oracle原本在应用软件方面就有深厚的积累,加上Sun公司的技术后就能成为“家提供从应用到磁盘整体解决方案”的商。字面上看,Oracle对MySQL的知识产权也并非志在必得。如果让MySQL成为OracleSun的绊脚石,是否能够迫使Oracle承诺保持MySQL的开放性,或者让快饿死的Sun提前剥离MySQL以促成交易?
Monty小心翼翼地回应道,MySQLA被给Sun公司这事他没机会阻止(但是现在有机会阻止Oracle)。Redis的作者Antirez从头看到尾后表示:“GPL是一个错误,但让MySQL赚到了钱”。十年之后,他自己遇到同样抉择的时候坚定选择了钞票,不过这就是另外个故事了,在此略去不表。
为了达成交易,Oracle很快给出了10项承诺:
Oracle明白打蛇打七寸的道理,与其解决Monty提出来的“问题”,不如解决向欧盟员会提出问题的“人”,也就是MySQL的用户、客户以及商。Oracle提出的10项承诺保证用户和客户将在5年内以同样的方式使用MySQL各种版本(包括新版本),同时也给了上游的引擎开发商以及下游的应用开发商相同的合作条款保障。值得注意的是,Oracle既不承诺开放的社区开发协作模式,也没有理会持续低价的要求。更重要的一点是,Oracle只是通过媒体宣布了这些承诺,而这些承诺并不一定会写在Sun的交易合同里面。
Monty从企业侧得到的支持力度被Oracle大大削弱了,只能在承诺的时效性和有效性方面继续进行无力的反抗。他还尝试从互联网使用免费开源的LAMP架构角度,阐述永久开源的MySQL对中小企业的意义,但是Oracle的法务团队实在是太强了,Oracle还是在2010年1月得到了欧盟员会的同意,完成了对Sun公司的,顺带获得了MySQL的知识产权。
MySQL居然是个烫手山芋?
Oracle了Sun公司之后,是怎么处置它的核心资产的呢?
Oracle是一个极其关注技术竞争力和商业回报的公司,这也决定了它在开源方面采取的动作会非常保守,甚至可以说。Oracle关闭OpenSolaris开源项目之前,内部漏出了一些邮件,从中可以看出Oracle的决策逻辑:
Oracle对SPARC、Solaris的热情持续几年后,终于在2017年散去了。在这一年,SPARC迎来了最后一次发布;而Solaris随后在2018年迎来了最后一个小版本。2019年开始,Oracle又开始频繁折腾Sun硕果仅存的最后一笔遗产Ja。从历史的角度看,Oracle折腾MySQL是一个必然事件,这也是Monty最担心的事情。不过出乎意料的是,虽然Oracle的投入虽然远远没有达到令Monty满意的程度,但是后继的版本都正常发布了,而且功能、性能还得到了持续完:
对于OracleSun之后发布的MySQL版本,Monty都以近乎苛刻的眼光在审视,并在拉踩中为MariaD打广告。但是实际上,Oracle对MySQL的改进有目共睹,一定程度上打消了用户的疑虑。在MySQL5.5发布后,Monty如此评价到:
在MySQL8.0发布之后,Monty的拉踩趋势就愈发严重了,一顿猛批之后就会拿MariaD出来较:
从实际发生的情况看,Oracle对MySQL采取了完全不一样的策略,既没有修改MySQL的开源协议,也没有强迫客户转向更加封闭的商业版本。相反,Oracle在MySQL上面投入的资源有点让人吃惊。根据内部员工的爆料,尽管MySQL为Oracle带来的营收可以忽略不计,但是董事会要人给人、要钱给钱。这是为什么?
这个问题如果从数据库角度看,并不容易得出答案,因为Oracle自始自终的定位就不仅仅是一个数据库厂商,而是一个企业级软硬件解决方案商。在2010年之前,Oracle的主要竞争对手是IM、SAP、Saleorce以及Microsoft,竞争的领域主要集中在硬件、CRM和ERP方面;在2010年之后,随着云计算和SaaS服务的兴起,Oracle和传竞争对手们都发现AWS才是最大的威胁。无论是Oracle还是Microsoft,都为自家产品在AWS上面的部署设置了歧视性定价规则,但都没有阻碍AWS抢夺市场的脚步。反而,AWS充分利用了开源生态的开放性大赚特赚,前有RDS收割开源红利,后有Aora变现高端客群。因此Oracle拿着的MySQL实属烫手山芋,用力做会让竞争对手收割,而不用力做则会流失户。
AWS后来创建了OpenSearch(针对Elastiearch),并赞助了Valkey(针对Redis),这也坐实了Oracle的顾虑。如果Oracle修改了MySQL的Lnse,AWS很可能会拉着社区创建一个新的MySQL分支,然后尝试用这个分支聚拢存量用户群体。无论是Monty的MariaD还是Peter的Percona,想必都会乐见其成。那么究竟该如何处置MySQL这个烫手山芋,才能尽可能避免被AWS收割?Oracle做了如下几个举动:
虽然Oracle已经把能做的事情都做了,但是它依旧没有完成从AWSRDS的营收里面分杯羹的最终目标。实际上,几乎没有数据库厂商能够直接从AWS的托管服务里面分到钱,它们只能通过差异化的功能或者服务登陆Marketplace,被AWS二次收割。MongoD可能是仅有的一家,能够保证研发投入被高效货币化的开源数据库厂商。而PostgreSQL虽然流行,但是背后的大金主EnterpriseD主要语法兼容性在吃存量Oracle市场;而SQLite作为漂亮的半成品,目前还看不到太多商业化的可能性。
MariaD已经走向终局?
在“云计算”这个庞然大物面前,开源世界的理念已经摇摇欲坠,就连以“竭泽而渔”闻名的Oracle都拿插管吸血的AWS没什么办法。作为一个开源老司机,Monty将常年对抗Oracle的经验,化为了抵御AWS插管的手段。首先,Monty将MariaD的知识产权全部托管给了MariaDFoundation,跟MariaDCorporation做了分割,这样就能保证商业成败不影响自己对项目的控制力。其次,Monty推出了usinessSoceLnse来平衡商业利益与开源追求。这个协议的设计非常巧妙,又当又立挑不出毛病。
MariaD存量市场的压力来自Oracle对MySQL的持续投资。普通用户并没有被Monty蛊惑,仍然在使用Oracle提供的MySQL,而不是转向Monty的MariaD。因为缺少自来水的大量反馈,MariaD的成熟度没办法以较低的成本进行提升,在工程上失去了超越MySQL的可能。而MariaD增量市场又被AWSRDS的MySQL版本堵得死死的。MariaD落西山似乎已成定局,一般人到这就该放弃了,但是对于拥有“DDOS欧盟”成就的Monty来说,力挽狂澜只是生活中的基本作。Monty的解法虽然不见得多有用,但是挺有趣:
<>任何一款流行的数据库背后都有一个崛起的编程语言。>相对于PostgreSQL的进程模型,MySQL的线程模型更适合没有连接池的PHP程序,因此自然而然地承接了LAMP架构带来的泼天富贵,成为了诸多Linux发行版的默认数据库。MariaD背后并没有一个新的编程语言,但这不妨碍Monty四处宣传Oracle的“”,并成功说服了Fedora、openSUSE、RedHatEnterpriseLinux、CentOS将默认的数据库从MySQL改成了MariaD,截胡了部份流量。
AWS虽然推出了RDSforMySQL服务,但是没有提供带有负载均衡的读写分离能力。阿里云提供了这样的能力,但是做不到非常好的读写一致性。<>差异性永远是最重要合作基础。>而MariaD的Proxy刚好能够补全公有云厂商的产品能力。Monty很敏锐地抓住了这个机会,跟AWS和阿里云分别签署了联合开发的合同,顺利从RDS收入里面分了一杯羹。
MariaD跟阿里云的合作引来了新投资人的关注。阿里背景的投资机构不仅仅为MariaD注入了更多的资本,还为MariaD的股东找到了合适的退出通道。2022年底,通过与AngelPondHoldingsCorporation的合并作,MariaD登陆纽交所实现了IPO。不过上市之后,MariaD的估值一跌再跌就是另外回事了。毕竟,<>资本再多也改变不了业务属性。>
最近不断有消息爆出,MariaD的高管不断离职,而核心研发团队也摇摇欲坠。为了挽救MariaD,Monty不仅仅想方设法为公司举债,甚至投入了自己的私有资金。不过目前看来,Monty的努力并没有起到什么作用,MariaD还在朝着更坏的结局走去。也许MariaD之后就是Percona,从此世界上只有Oracle的MySQL一江湖?让我们拭目以待。
免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。
- 上一篇:有哪些值得推荐的Ja练手项目?
- 下一篇:迁移收录消失怎么办?
相关推荐

你 发表评论:
欢迎