
1.3.3 企业版/社区版
开源软件的一大好处是用户可以自由选择和免费使用软件,缺点是软件不会像商业软件那样附带有支持保障,这就为企业用户带来许多不便。一些公司抓住了这一机遇,在开源软件的基础上进行定制、集成、测试、修复及优化,推出企业版本,并提供相应的技术支持、售后服务和培训,这种软件称为开源商业软件。Red Hat就是开源软件商业模式的奠基者,而且是世界领先的开源软件公司。
企业版开源软件除了附加了很多服务之外,在软件发展的策略上也会有很多细节方面的差异,从而带来使用上的差异。虽然严格来说企业版的源代码来自社区版,但是企业版的某一个版本是否与社区的某一版本严格对应,需要看企业对社区项目状态和发展的理解,看企业是否认为当前社区版本中的功能可以稳定地用于企业级环境。红帽在发行企业版的时候,会在对应的社区版上进行适度裁剪,以避免企业使用一些不稳定和有缺陷的功能,因为某一功能突然从社区版中消失,也是常有的事。企业版中进行源代码编译时,具体设置什么样的编译参数也是企业仔细考虑和测试的结果,往往不同于社区版中宽泛的参数范围。另外,企业版往往会对应着一系列管理工具和自动化工具,来提升软件使用体验,而对这类软件,不同的企业处理方式更加多样化,有可能会以闭源、SAS服务、现场服务的方式提供给客户,这也会显著增大企业版开源软件和社区版开源软件在使用和维护上的差距。还有一点至关重要,即当前很多开源项目本身就是一个集成性项目,比如Linux公司在Linux Kernel的基础上建立了很多OS社区,把操作系统所需要的各种外围功能和环境再集成一次之后,才做Linux的发行版。很多容器平台是在Kubernetes的基础上集成网络、监控、日志等组件后再发行成容器或PaaS软件。如果发行方不遵守开源模式,或者用户在开源项目的基础上自己进行相关的集成工作,这又会是另一种体验。