“MinIO已死?”近60k Star的明星开源项目官宣:进入维护模式
一个已经拥有近 60k 个 GitHub Star 的明星开源项目——高性能分布式对象存储服务 MinIO,于 12 月 3 日突然变更开源策略,宣布项目进入“维护模式”:这个代码库以后仅进行维护性更新,不再提供新功能的更新改进,现有的 Issue、PR 将不再被主动处理。
消息一出,让很多人猝不及防。一时之间,各种声音不绝于耳。
有人理解,有人不解,有人批评,还有的社区论坛因此直接判定“MinIO 已死”,创建了「RIP MinIO」的帖子,来分享自己的不满。
那么,这个在许多对象存储场景中仍被广泛使用的项目,为什么会做出这样的选择?一起来看看。
一个下载量高达 10 亿次的开源项目成长
其实对于 MinIO,想必很多技术人一路见证了它的成长,也都曾用过。
MinIO 最初成立于 2014 年,由 Anand Babu Periasamy、Garima Kapoor 和 Harshavardhana 等人共同创立,初始目标是应对私有云/混合云环境中对高性能对象存储的需求。
这就不得不说在那个时期,企业云存储需求快速增长,AWS S3 成为事实标准,但不少企业希望在本地或私有云环境中使用类似 S3 的对象存储。MinIO 正是在这种背景下诞生的。
MinIO 团队选择用 Go 语言开发,把它设计为一个轻量、高性能,并与 Amazon S3 API 完全兼容的对象存储服务。这样一来,已经依赖 S3 的应用或基础设施可以更好地迁移到自建环境或私有云中。
同时,MinIO 从一开始就采用 Apache License 2.0 开源协议,方便开发者和企业自由使用。正因此,它快速在开发者社区和企业用户间逐渐流行起来。
数据显示,MinIO 在开源社区方面表现活跃:它拥有超过 1,400 个依赖包,在 GitHub 上拥有约 58.9K Star 和 6.5K Fork。在 Docker Hub 上,MinIO 镜像下载量已超过 10 亿次。就国内市场而言,此前有数据统计,MinIO 被阿里巴巴、腾讯、百度、中国联通、华为、中国移动等超过 9,000 家企业采用,尤其是在构建私有云存储、混合云存储和分布式存储方面表现出明显优势。
MinIO 此前的三连变
然而近来,MinIO 的“想法”逐渐发生改变,导致其后续动作频频,先后变更了项目的开源协议、删除开源版本中原有的一些功能、以及停止社区版二进制分发,逐渐与开源理念背道而驰,并向商业化战略靠拢。
一变开源协议:从 Apache 2.0 变为 APGLv3,理由:避免“白嫖党”
正如上文所提及的,MinIO 原本采用的是Apache 2.0,允许用户自由使用、修改和再发布。
2019 年,MinIO 决定把开源协议改为 APGLv3,要求使用者在提供服务时必须开放自己的源代码。
这么做的理由是,随着项目流行度提升,部分大公司可能直接用 MinIO 做商业 SaaS 或云服务,而几乎不贡献回社区,这让 MinIO 的维护方面临巨大资源压力。MinIO 变更协议,也是希望能保障项目利益和社区贡献。
争议之下,MinIO 最终在 2021 年完成协议变更。
二变功能范围:删除开源版部分功能,迁移到商业版本中
今年 5 月,MinIO 团队再“出手”。他们在当时的 Minio CE 版本中删除了控制台管理功能,理由依然是:一方面是为了降低免费版本的维护成本,二是推动企业版商业化,让开发团队能够把更多精力集中在核心存储功能和性能优化上。
当时,社区版用户仍可通过源码自行构建控制台或使用第三方工具,但官方不再提供现成的管理界面。
三变开源支持范围:停止社区版二进制分发
时间到了今年 10 月,我们之前也做过报道,MinIO 官方作出了“停止分发免费的 Docker 镜像”的决定。
当时,官方在 MinIOGitHub 项目中的 README 上写道:
仅源码分发
重要提示:MinIO 社区版现在仅以源码形式分发。我们将不再提供社区版的预编译二进制版本。
安装最新版 MinIO 社区版
使用 MinIO 社区版有两种方式:
1. 从源码安装(推荐):go install github.com/minio/minio@latest
2. 使用提供的 Dockerfile 构建 Docker 镜像
旧版二进制发布
历史的预编译二进制版本仍可作为参考使用,但不再维护:
- GitHub Releases: https://github.com/minio/minio/releases
- 直接下载: https://dl.min.io/server/minio/release/
这些旧版二进制不会再收到更新。我们强烈建议使用源码构建,以获得最新功能、漏洞修复和安全更新。
MinIO 宣布进入“维护模式”:意味着什么?
如今,算是 MinIO 第四次应该也是最后一次对这个开源项目的发展方向做了调整,其直接进入了“维护模式”。
在传统开源项目的意义上,“维护模式”指的是开发重心从持续推出新功能,转向确保现有功能稳定、可靠。
一个开源项目进入「维护模式」,通常也有多层原因:
- 项目成熟:功能稳定,已能满足大部分用户需求。
- 开发者资源有限:原作者或核心团队希望减少工作量,或将精力投入到新项目。
- 生态被替代:新技术或框架出现,原项目不再是首选,但仍有少部分用户在使用。
- 战略选择:避免频繁更新带来的不稳定风险。
那 MinIO 进入「维护模式」属于哪一种情况?
在 GitHub 上,MinIO 官方给出了明确说明——
该项目目前处于维护状态,不再接受新的更改:
- 代码库仅进行维护性更新
- 不会接收新的功能、增强或 Pull Request
- 关键的安全修复可能会根据具体情况进行评估
- 现有的 issue 和 Pull Request 将不再被主动处理
- 社区支持将通过 Slack以尽力而为的方式继续提供
如需企业级支持和仍在积极维护的版本,请查看MinIO AIStor
其中最后一句成为不少人关注的焦点,这也让众人知道,一切还是向商业化靠拢了。
简单来看,MinIO AIStor 是商业/企业级版本,需要订阅服务。每年费用是 $96,000,可管理 400TB 数据。
开源 vs 商业
归根究底,这是开源与商业可持续性之间长期存在的矛盾。
对于 MinIO 官方的操作,不少人并不意外:
不过,这几乎也为 MinIO 11 年的开源生涯画上句号:
对此,行业从业者的看法大致呈现三派,有人表示理解 MinIO 的选择,应心怀感激:
对于免费的开源项目,你首先要明白:有人花时间和精力为你提供软件,却不求任何回报,你就应该心怀感激。你不应该感到“心里不舒服”或有怨言。如果希望这个项目能够继续下去,就应该投入自己的时间或金钱去支持它。
也有开发者持批评态度:
- Linux 基金会版的 Fork 很快就会出现。MinIO 可能会在 1–2 年内回归开源,但那时已经太晚了:社区会继续向前,不会再回头,他们的声誉也将永远失去。
- Richard Stallman(自由软件之父)当年说得没错。开发者社区到底什么时候才能吸取教训,不要再为这些带有糟糕 CLA 的项目贡献代码?这次就是被人“抽梯子”了。
还有用户愤怒抨击:“真是好大一出戏。把你商业产品背后的开源项目(许多人为其贡献过)直接 EOL(终止支持),然后把它变成一个闭源的 MinIO AIStor……说真的,这也太离谱了吧……”
更有开发者从法律角度提出质疑:
- “我没有向 MinIO 贡献过代码,但如果他们在没有让外部贡献者签署 CLA 的情况下接受了外部贡献,那么在更改许可证之前,必须征得每位外部贡献者对许可证变更的同意。既然是 AGPL,他们仍然必须在某处提供源代码。”
- “有人知道 MinIO AIStor 的法律状况是否合规吗?据我所知,MinIO 并没有采用 CLA(贡献者许可协议),而在 Git 提交历史中有 559 名邮箱非 @minio.io 的提交作者。如果他们在更改许可证时没有获得这些贡献者的授权,那可能会构成 AGPL 的违规。或者,AIStor 是一个从零重新编写的全新代码库?”
与此同时,也有人开始推荐替代方案,为当前用户提供更多选择。
「非常感谢 MinIO、RustFS 和 Garage 的贡献。话虽如此,MinIO 如此突然地关上开源大门,确实让社区受到了惊吓。但说实话,这也算情有可原——开源项目最终都需要找到商业化路径。
我分别评估过 RustFS 和 Garage,情况大致如下:
- 发布节奏:Garage 的更新节奏稍慢,而 RustFS 几乎是每周都有更新。
- 许可证:Garage 使用 AGPLv3,而 RustFS 采用 Apache 许可证(这一点对企业采纳来说非常关键)。
- 稳定性:在分布式环境中,目前 Garage 略胜一筹。
随着 MinIO 基本退出开源竞争,我更看好 RustFS 能后来居上。」
最终,MinIO 的操作,也让很多人对开源的信任产生了动摇——当曾经免费、开放的项目开始商业化,我们还能像从前那样放心依赖吗?
参考:
https://github.com/minio/minio
https://www.reddit.com/r/selfhosted/comments/1pd97nq/minio_is_in_maintenance_mode_and_is_no_longer/
https://news.ycombinator.com/item?id=46136023
本文来自微信公众号“CSDN”,作者:屠敏,36氪经授权发布。















