如果某天醒来,你所依赖的基础设施全部变成了黑盒——只剩下API文档,源码不可见,PR无法提交,分支不能创建,只能付费使用、提交工单、等待回复。
业务或许还能勉强运转,但内心必然会充满不安。
这种黑盒感受,正是许多人在使用云服务时的真实写照:接口便捷,问题可提工单,但实现细节、行为边界、版本演进往往不够透明。云解决了交付问题,而开源解决了可验证性问题;两者本不矛盾。然而,当关键基础设施只剩下一个API时,信任就很难再建立于工程事实之上。
基础设施的范畴与核心挑战
我们首先界定一下讨论的“基础设施”。它通常包括数据库、缓存、消息队列、对象存储,也涵盖计算框架、调度系统、服务治理及可观测体系。近年来,模型服务、特征与向量检索层、Agent背后的状态管理与编排也加入了这个行列。
它们的共性是:高复用、长生命周期、强耦合。几乎每家公司都会使用,一旦选型失误,带来的迁移成本、技术债务和团队认知负担巨大。它们平时远离业务逻辑,但一旦故障,对业务的影响是直接且致命的。它们决定了整个技术栈地基的稳固程度。
演进中的认知:从工具箱到公共底座
2017-2019:开源作为现实工具箱
在早期从事云原生相关工作时,我对开源的理解非常实际:这是一套能用的、高效的工具链。Kubernetes及其生态项目,使得我们能够在有限的团队规模下,构建出整套可用于生产环境的调度与运维体系。那时,我更多思考的是组件行为是否稳定、出问题能否查看源码、我们打的补丁是否影响后续升级。
我隐约意识到:在这种复杂度下闭门造车,在效率上是不划算的。但尚未将其上升到“基础设施长期形态”的战略高度。
2019-2024:开源作为风险对冲
当视角转向组织层面,面临OSPO、合规、基础设施选型等议题时,一个现实问题浮出水面:什么必须自主掌控,什么可以站在开源与生态的肩膀之上?
以数据库为例,完全自研或采用闭源产品,意味着从设计、实现到演进的所有成本自行承担。而许多问题(如事务、复制、故障恢复、可观测性)是全行业共通的。重复解决这些问题是一种社会资源的浪费。另一方面,将关键基础设施完全托付给某个闭源产品,短期省力,长期却风险难测:供应商的战略调整、授权模式变化乃至停止维护,都可能迫使你在不合时宜的时机进行痛苦的迁移。
此时,我对开源的理解从“工具箱”转向了“风险对冲”与“长期可控性”。对于基础设施这类长期运行的系统,开源本质上将单点风险分散到了一个庞大的技术共同体中。你仍然可能遇到问题,但绝不会被困在一个完全无法探知、无路可退的黑盒里。
2025至今:开源作为工程必需条件
在深入参与数据库这类基础设施后,问题变得更加具体。基础设施既是通用的,又具有极强的场景差异性。仅靠单一公司的内部团队,难以覆盖所有变化;大量真实问题是在用户、贡献者、生态伙伴的实际使用中暴露的。
在开源社区中,项目的演进并非由核心开发者闭门造车,也不是某家公司的单向输出,而是在各种约束与诉求中寻找平衡。如果源码不开放,这种演进要么退化为供应商与客户之间的工单流转,要么根本不会发生。对于场景高度多样化的基础设施项目,开源更多是一种“工程上的必需条件”,而非用于宣传的标签。
信任是一切的基础
在基础设施层面,最终比拼的并非功能多寡,而是 “你敢不敢用” 。敢不敢存放核心数据,敢不敢让其服务于关键链路,敢不敢将未来几年的技术演进押注于它。归根结底,这是信任问题。
商业承诺固然重要,但基础设施的信任很难仅凭承诺建立。它更像一种可验证的关系:代码能否审查?问题能否复现?讨论是否公开?修复是否可追溯?版本是否可审计?开源并不自动等同于更安全或更正确,但它至少将信任的基石从口头承诺拉回到了可被检验的工程事实之上。你无需无条件相信任何人,你可以自行验证。
反证:如果基础设施长期闭源,问题何在?
与其空谈开源的好处,不如反过来思考:如果关键基础设施长期保持闭源,具体会在哪些环节出现问题?
- 复杂度超越单一组织的长期承载能力:云原生、分布式、多云、AI等技术将系统链路极大地拉长和复杂化。闭源并不会让系统更稳定,反而会让许多问题只能在内部通过工单流转,无法借助外部社区的力量修补。同时,项目方也难以获得足够多真实场景的反馈,最终可能被各种“边界条件”拖垮。
- 系统性的重复劳动与资源浪费:数据库、消息队列等基础设施层的需求在不同公司间高度相似。如果每家都在黑盒中重复造轮子、重复踩坑、维护一套“差不多”的实现,这是对整个行业智力与时间的巨大浪费。开源的意义之一,正是将本应属于“公共轮子”的部分开放出来,让行业在同一份实现上共同迭代,将差异化创新聚焦于上层与产品化能力。
- 数字公共设施需要透明基石:电力、水力、路网等物理基础设施,我们默认其标准公开、规则透明、事故可追溯。在现代组织中,数据库、计算平台、AI框架正扮演着类似的“数字公共设施”角色。底层若完全不可见,安全审计、合规解释、故障根因分析、替代迁移都将变得极其被动。开源至少保证了实现可审计、路线可参与、生态可迁移,这些特性在平安无事时不显眼,在出问题时则至关重要。
AI时代:开源从“选项”变为“必需”
AI的兴起将基础设施推得离业务更近,但并未改变其作为地基的本质。传统组件如数据库、缓存、消息队列依然关键,只是链路上新增了模型服务、向量检索、特征管道、Agent编排等环节。
更显著的变化在于使用方式:组件组合更频繁、版本迭代更快、部署环境更分散。一个AI应用往往需要串联推理服务、检索层、业务库、工作流引擎及上层框架,问题也更易跨层出现。
在这种生态下,如果一个基础设施组件仍以黑盒服务的形式存在,其集成与维护将变得异常困难:
- 上层框架无法快速适配,集成成本高昂。
- 社区难以协助维护各类SDK、插件与驱动。
- 开发者无法在复杂场景下进行问题排查与修复提交。
对于基础设施而言,这已不是体验问题,而是可用性与可控性问题。链路越长,就越依赖可验证的行为边界、可追溯的修复过程、可审计的版本变化。开源为这种依赖提供了工程基础。
总结:坚持开源意味着什么?
此处的“坚持开源”,绝非仅仅公开代码仓库,而是一系列更繁琐、但长期价值更高的事务:
- 对长期质量负责:开源将短期凑合的决策暴露在阳光下,迫使项目严肃对待兼容性承诺、迁移路径、弃用策略、文档与测试的完整性。这对于长寿的基础设施系统尤为重要。
- 对生态协作负责:基础设施不是孤岛。它需要厘清与上游框架、下游业务、云厂商、中间件的边界:哪些接口必须稳定?哪些行为需要可解释?哪些工作欢迎社区共建?在闭源环境中可以模糊处理的事情,在开源环境中必须定义清晰。
- 对用户的可迁移性负责:技术路线总会变迁。坚持开源,至少确保用户的数据与接口不被锁定,为未来的技术演进留下出路。这往往比增加一个功能开关更为重要。
开源并非没有挑战,社区治理、资源分配、话语权博弈都是现实问题。但在权衡长期成本与收益后,一个不完美但开放的系统,通常优于一个看似简单却长期封闭的系统。
对于高复用、长生命周期、强耦合的公共技术底座而言,闭源带来的长期成本——如无法迁移、风险失控、生态脱节、人才流失——往往会在数年之后,以更棘手的方式回归,超过其短期收益。
更务实的观点是:并非所有模块都必须一刀切地开源,但必须为未来留路。对于无法开源的部分,应尽力做到协议清晰、数据可迁移、接口兼容、问题可追踪;对于能够开源的底座,则应尽早开放,让真实的协作与反馈循环发生。
从最初的思考至今,技术环境飞速变化,但开源几乎是构建可靠、可信、可持续的基础设施一条绕不开的路径。剩下的问题只是,我们选择在这条路上填平坑洼,还是将难题留给后来者。
