编者按:本文来自微信公众号“AI前线”(ID:ai-front),作者KeyDB 技术支持,编译李建盛,编辑陈思,36氪经授权发布。
从被视为“癌症”、“毒瘤”到如今被科技巨头奉为圭臬、竞相拥入怀中,看上去开源的地位似乎已经出现了巨大反转,事实上,开源软件的发展并非如想象般苦尽甘来。这二十多年一路走来,开源从来就没有远离过威胁它本身的力量,甚至几度差点坠入“注定失败”的深渊。所幸,现在最坏的时候已经过去了,这个新世界至少比 90 年代微软等巨头垄断时要好得多,但,未来仍是不确定的。
一个问题处理好了,另外一个问题产生了,思维是一直活跃着的。 —— 约翰. 杜威 《确定性的寻求. 方法至上》
开源从来就没有远离过威胁它本身的力量。
近期 keyDB 的官方博客发表了一篇文章,算是为开放源代码的世界打一剂强心针,以下为该文的摘要:
时间一往无前,但发生在过去的事件是无法抹去的,大概历史只有在这一点上才算是公平的。
20 年前的万圣节,一份称之为“备忘录“的文件从微软内部流出,称 Linux 是构成 Windows 的威胁力量,甚至时任 CEO 的 Steve Ballmer 一度称 Linux 为“癌症”,但微软还不是对开源的最大威胁,除了开发者之外,其实开源在当时并没有影响微软的生意。更为严重的是内部的处理,君不见一场激烈的争论,就可能引起混乱,进而破坏社区,乃至整个项目(编者注:BSD 系统的分裂史是佐证这个论断的最佳材料)。有几个问题,至今可能也在困扰着人们:
那些修改开源代码的人是否应该严格执行 GPL 许可证?
或者是将修改后的代码视为自己的专有财产?
争论进一步延续到开发者的自由,还是用户的自由,以自由软件基金会为代表的一派,以 Apache 基金会为代表的一派,以及以 MIT、BSD 为代表的更宽松派....... 开源从来就没有形成过统一的战线,这或许是它失败的主要原因,正如微软所希望的那样。
就在没有人看好开源的时候,红帽以非常独特的方式出现了:软件本身是免费的,但是为用户提供服务和支持,进而获得利润。在这样的商业模式之下,许可证的选择在很大程度上无关紧要,因为代码(以及代码编译后的软件)并没有产生收入。
这样的话,上面的辩论就有点让人无语了,它们原来是可以和平共处的。如 BSD 许可下的软件运行在 GPL 的 Linux 内核和 GNU 用户空间非常和谐,它似乎真的变成了 Richard Stallman 所形容的“像免费的啤酒一样”,这可能完全超出了他和他创立的 FSF(自由软件基金会)的想象。红帽的崛起,让那些预言开源没有前途的人大感意外,甚至,红帽在服务器操作系统所取得的成绩节节攀升的时候,微软在服务器领域的成果却乏善可陈。
完成一个目标,又发现前方的另一个目标。这是一场永无止境的追寻。—— 爱德华. 威尔逊 《创造的本源》
但是故事并没有在这里结束,准确的说才刚刚开始。红帽崛起的时代,还是每个人都购买服务器、安装操作系统、部署应用到自己的数据中心的时代,但是,技术从未停止它发展的脚步。Amazon 看到这其中巨大的商机,那就是:不是所有人都愿意摆置自己的数据中心,维护服务器、操作系统应该交给更为专业的人来做,Amazon 会管理人们的一切,从部署到运行的数据库,这样人们甚至都无需购买其它供应商的产品,Amazon 可以提供一条龙服务。
就在这个时候,红帽获得了另外一次垂青。今年 7 月 9 日,IBM 斥资 340 亿美元收购红帽,这是该公司史上最大的一笔收购交易。而对于开源世界来说,也是足以载入发展史册的传奇一笔。作为全球最大的开源社区,红帽在盈利能力上秒杀一众开源公司,业绩一路高歌猛进,被收购前夕,红帽营收近 30 亿美元,已连续 66 个季度实现盈利。
红帽带着“金色降落伞”卖给了 IBM,然而,在开源世界里,它委实是一个个例。对于大部分开源公司尤其是小型开源团队而言,盈利难题是他们久久挥之不去的“痛”,能实现盈利者屈指可数。今年 3 月,在全球拥有 3.4 亿网站用户的 Nginx 以仅 6.7 亿美元的低价卖身竞争对手 F5,着实令人唏嘘。对于开源社区或软件厂商来说,像 Nginx 这样苦苦挣扎在盈利泥沼,最终低价卖身求生的不在少数。
盈利之难很大程度上在于缺乏合适的商业模式。一提到开源,大家的第一感觉就是免费,如何利用开源模式赚到钱,很多公司一直没有探索出特别好的路径,而自研开源软件需要开发者投入大量的资金和精力,且维护开源项目的成本高企,因此常常入不敷出。
大部分相对小型的公司并没有红帽这么幸运。没有一个靠谱的商业模式,投资者们是不会搭理他们的。很多公司都希望坚持开源的底线,并尝试拿开源的许可证来开刀,比如 MongoDB 就发明了“服务器端公共许可证”。但是这么做,并没有获得大多数人的支持,正如开放源代码促进会就并不认可类似的许可证,社区成员也强烈抵制(Fedora、Homebrew 等著名分发版,均将 MongoDB 移除。-- 编者注),这也表明,修改许可证的做法是无效的。
还有一些更为极端的公司,采取的路线是放弃开源,他们和开源唯一的瓜葛就是还能访问他们的代码,这可能是对开源的一种致敬方式。一些诸如“源代码可见”、“开放核心”的许可证当然也会被采用,期望成为授权模式的救命稻草,当然这离 Richard Stallman 所倡导的自由又远了几步,比如说其中的:“用户有权‘运行,复制,分发,研究,更改和改进软件’”,这么做的话,就只能到学习为止了。
就在看起来开源要走向毁灭的时候,Amazon 竟然抛出了另外的一种可能。
如果说哪家开源软件背后的公司或实体不再保持开放,Amazon 将自己接管并维护。Amazon 在 3 月 19 号发布了 ElasticSearch 的开放版,语气非常居高临下,如:“开源项目的维护者有责任保持源代码分发对所有人开放,而不是在中途改变规则”。大体一看似乎是开源还是颇有希望的。
但 Amazon 的这个做法让人喜忧参半。我们不妨想一下,如果开始新开源项目的作者知道,一旦他们很快做大了,被 Amazon 发现后,Amazon 就会接管这个项目。那这位作者还会继续开发创建新的开源项目吗?而且 Amazon 这么做,本身也是有很大问题的,如果 Amazon 在软件的运行和支持方面实现了垄断,他们还会以外部贡献的方式来获得开源的益处吗?要知道,对于每一位红帽的客户来说,他们对其所运行的软件的上游项目是没有任何的支持和贡献的。那么问题来了,在一个企业将业务完全外包给 Amazon 的世界里,这种趋势会持续下去吗?
开源对于普罗大众来说意味着解放,然而在很长一段时间里,人们似乎对它的存在已经习以为常,甚至将之视为理所当然和天经地义。那位曾经是翩翩少年的芬兰大学生某种程度上打破了微软对操作系统的垄断,但是现实的情况是,微软现在也学会了开源,并身体力行。
其实过去的十年说明了一件事:如果你没有托管客户的基础设施,那么你也不会去支持客户所使用的开源软件,哪怕这些软件是你自己写的。AWS、Azure 等等云计算厂商拥抱开源的做法,让事情变得越发的扑朔迷离、难以捉摸。
无论怎样,有一件事我们是可以确定的,我们现在所处的世界,要比上一个微软垄断的时代好很多了,起码还有一些选择。作为开发者的你,要做的就是拥抱云计算,然后在这之上进一步拥抱开源。
原文链接:https://docs.keydb.dev/blog/2019/03/11/blog-post/