3年前我坚信开源是最好的,3年后我亲手关掉了自己的Milvus集群
2023年,我们团队开始用Milvus开源版搭建向量检索系统。当时的想法很朴素:开源免费、可控、社区活跃。3年过去,我们维护了30多个Kubernetes节点、处理了17次线上故障、升级了8个版本、写了上千行运维脚本。2026年3月,我们做了迁移评估,最终决定迁移到Zilliz Cloud(Milvus的商业版)。
这篇文章不是劝你选商业版,而是把我们的真实经历和数据摊开,让你自己做判断。
开源的"免费":我们3年实际花了多少钱
表面上看,开源软件的许可证费用是零。但我们的实际成本构成如下:
第一年(2023年):搭建阶段
- 3台AWS i4i.2xlarge服务器:$900/月
- 1名兼职SRE(20%时间):$2,000/月
- 学习成本:SRE花了2个月才完全掌握Milvus的运维
第二年(2024年):稳定运行+规模扩展
- 服务器扩容到5台:$1,800/月
- SRE时间增加到40%:$4,000/月
- 处理了9次线上故障,其中2次导致服务中断超过30分钟
第三年(2025年):规模化挑战
- 服务器扩容到8台:$3,200/月
- 全职SRE:$8,000/月
- 数据量突破2亿向量,开始出现性能瓶颈,需要架构层面优化
三年总成本:服务器约$82,000 + SRE人力约$168,000 = $250,000(约180万人民币)
如果用Zilliz Cloud Enterprise,三年总成本约$180,000(服务器全包+运维零)。开源比商业版多花了$70,000。
金句:开源软件的"免费"是许可证免费,不是TCO免费。当你把运维人力的成本算进去,开源常常比商业版更贵。
那17次故障教会了我们什么
3年17次故障,分几类:
- etcd相关(5次):集群脑裂、数据损坏、Leader选举失败。etcd是Milvus的阿克琉斯之踵。
- 内存不足(4次):查询高峰期QueryNode OOM,触发了Kubernetes的OOM Killer。
- 磁盘满(3次):Write-Ahead Log没及时清理,磁盘被写满,整个集群只读。
- 版本升级(3次):Milvus从2.2升级到2.3,API不兼容,需要停机迁移。从2.3升级到2.4,索引格式变更,需要重建索引。
- 其他(2次):网络分区、Pulsar消息积压。
最关键的一个教训:出了故障,你只能靠自己。Milvus社区很活跃,但社区支持是"best effort"的。凌晨3点etcd崩了,你发GitHub Issue,得等到美国时间早上才有人回复。而商业版有SLA保障,7x24小时响应。
金句:开源社区的支持是"好心人帮你",商业版的支持是"合同要求必须帮你"。凌晨3点的故障,你永远希望是后者。
开源的优势:我们为什么还是怀念它
尽管有种种问题,开源版本有一些商业版无法替代的优势:
- 完全可控:你可以修改任何代码,定制任何功能。我们曾修改了Milvus的HNSW索引实现,加入了自定义的早停策略,查询延迟降低了15%。
- 数据主权:数据完全在你自己的基础设施上,没有第三方访问。这对金融、医疗等合规要求高的场景至关重要。
- 无Vendor Lock-in:你可以在任何时候迁移到其他方案,不会被锁定在某个厂商的生态里。
- 审计能力:你可以审查每一行代码,确认没有后门或安全隐患。
金句:开源的价值不是"免费",而是"自由"。如果你需要这种自由,开源是唯一的选择。
我们决定迁移的4个原因
- SRE的机会成本:我们的SRE在维护Milvus上花了80%的时间,但向量数据库只是我们基础设施的一部分。如果他能把时间花在更有价值的事情上(如优化模型推理Pipeline),ROI会高得多。
- 功能迭代速度:Zilliz Cloud的新功能(如Cardinal、动态Schema、更好的多租户隔离)比我们手动升级Milvus快得多。我们不想再花时间做"基础设施维护"而不是"业务创新"。
- 可靠性需求提升:我们的产品从"内部工具"变成了"对外销售的产品",客户要求99.9%的SLA。自托管很难满足。
- 团队规模变化:最初搭建Milvus的SRE离职了,新人接手后发现知识传承断层,运维质量下降。
金句:选择开源还是商业版,取决于你的团队在"基础设施"和"业务"之间的时间分配。如果基础设施占用了你最好的工程师50%以上的时间,你应该考虑商业版。
决策框架:你应该选开源还是商业版?
选开源版的场景:
- 团队有2名以上有经验的SRE,且向量数据库是他们的核心工作
- 数据合规要求必须私有化部署
- 需要深度定制(如修改索引算法、接入自定义存储)
- 数据量极大(>10亿向量),商业版的成本不可接受
- 团队有强烈的开源文化,愿意为社区贡献
选商业版的场景:
- 团队<10人,没有专职SRE
- 运维向量数据库不是你核心竞争力的组成部分
- 对SLA有严格要求(99.9%以上)
- 需要快速上线,不想花时间在基础设施上
- 数据量在商业版的可接受成本范围内
金句:开源vs商业不是信仰问题,是ROI问题。算清楚你的SRE时薪,乘以维护时间,再和商业版价格比较。答案通常很明显。