源代码|「上云」之后,企业数字化的下一步是开源( 二 )


02「开源」如何赚钱从字面上看,开源是指开放软件的源代码给使用者,但是单纯提供源代码并不是目前「开源软件」的标准定义,而是软件向使用者提供源代码并且授予修改和持续演进的自由,因此对修改后的软件再分发在规定上的差异,形成了不同的开源软件许可体系。
目前开源软件的许可体系主要分为两大类:一类强制要求再开源,代表性的有 GPL 许可体系;另一类不强制要求衍生开源,为宽松开源许可证,代表性的有 BSD、MIT、Apache 等许可体系。GPL 许可体系强制要求下游「发行」时提供源代码,不得改变 GPL 的兼容性,限制从开源软件转变成非开源软件 (但「发行」的定义,存在可被利用的空间)。
强制继续开源,又衍生出对服务提供者,尤其是云服务提供者的不同变种许可,如 AGPL 等。由于限制过多、过于复杂,所以 AGPL 的接受程度有限。
开源软件的商业模式,可以分为以下几种:
1 开源没有改变软件运行的基本模式
软件的质量取决于设计、实现、测试和运行过程中暴露问题的持续修复,开源软件改变的只是开发阶段和发行形态,其他软件规律仍然是一样的。完全把技术支持工作交给使用者是不可行的,支持客户的业务运行并保证服务质量,仍然是软件业务的重要组成部分。
2 开源成为分布式协作开发模式的典范和推动者
开源软件项目的治理方式也有封闭与开放的差异,开源项目的主导权与管理权有两种常见方式。一种是项目归属于某个基金会组织,如 Apache;另外一种是由发起者或创建者为主导的管理模式,如 MySQL 和 Linux 核心等。很难用简单的方法判断哪种方式一定就是最好的,但是相对来说,由一个有信用的、有成熟制度模式的非营利组织管理,更容易受到信任和吸引更广泛的参与者。
3 开源不等于免费
自由软件选择的 Free Software 的名字往往被误解为「免费」,其实在这里 free 的含义是「自由」,开源是软件自由精神的体现。今天即便是承诺完全开源的软件,如 Linux,主要的商业化形态仍然是提供有质量保证的发行版和技术支持服务,收取许可费用不是被认可的业务形态。MySQL 是一个特例,因为它同时提供不同的软件许可,商业版软件和社区版软件本质上是两个产品,根本原因在于 MySQL 相关的所有知识产权完全属于单一商业实体。
4 以发行版的方式提供软件和在云上提供服务仍然是主流业务模式
目前绝大部分软件的使用者,都不是软件本身的开发者。依靠使用者自行解决问题和持续演进,既不必要也不现实。整体的验证测试和优化工作,保证质量和兼容性,本质上与不开源的专有软件的发布没有差异。
源代码|「上云」之后,企业数字化的下一步是开源
文章插图
03 使用开源软件的挑战大多数企业是以行业开源者和行业使用者存在,它们所面临的挑战也不尽相同。
1 IT 架构治理的挑战——CIO 的视角
不同的企业因为自身 IT 建设阶段的不同,使用开源软件的方式也各有不同。但不管哪种方式,最终都需要考虑 IT 架构统一治理。
第一种,新型企业全部业务从一开始就使用开源软件构建。常见于互联网公司和开源达到比较成熟阶段后创立的企业。这类公司把 IT 能力作为核心竞争力,平台技术团队完全有能力采用开源和定制化修改的开源衍生产品。但随着定制系统的发展,代码改动和软件升级则面临很大挑战,被迫选择持续加大技术投入,或走向避免改动的保守状态,陷入落后的局面。
第二种,传统企业局部使用开源软件替换商业软件。常见于成立时间已久的大中型企业,长期使用商业软件享受软件技术服务。新技术与新开发方式也使新的业务发展无法拒绝已经开源的软件。
第三种,特定行业在一定发展阶段选择了商业软件,越过发展台阶后重新拥抱开源软件和加大自身研发投入,典型如阿里巴巴。
鉴于开源软件自身的特点、版本路线不同,以及不同应用开源组合的复杂性,不同企业有选择不同企业级技术架构路线的权利。
2 自主可控的挑战
「自主」的含义大致有两种理解。一种是指采用主权范围内厂商具有完全知识产权掌控力的软件,不受国外产品和服务体系供应的限制,因此这里的「主」是指的国家主体;另一种「主」是指的企业本身,企业可根据自主意志,按自己的需求、想法,在不违反授权的情况下,自由地修改和使用软件。
「可控」对应的是「卡脖子」,无论是开源社区还是商业授权的软件。一些企业想从现在开始就不再采购开源软件的商用发行版和商业服务。诚然,集中精力自己研发、自己把控,在特定的场景上,放弃外部的商用依赖,另起炉灶,做出一套完全自主的产品,这样的成功例子是有的,但毕竟是极少数。这种做法也需要有大量优秀的软件工程师,并且积累了大量的经验。