摘要
本文通过对国内外开源现状和趋势进行分析,引出开源基础设施在国内的现状和亟待解决的开源托管平台、开源许可证、开源社区、社区治理架构等目前国内尚待完善的方面。通过建木项目开源实践过程,详细地阐述了国内开源项目建设和运营期间遇到的问题及积极的应对方案。最后,针对国内开源文化、开源社区、开源商业化方面做出积极探讨。开源时机已来,国内开源从业者应抓住这个契机,摸索出一条符合国内开源切实可行之路。
关键词:国内开源;建木;开源社区;社区治理;开源文化;开源商业化;开源基础设施
第一章引言
开源软件正以不可思议的速度占领软件企业和用户的心智,在今后软件行业发展的道路上开源已成为软件从业人员绕不开的话题。开源从早期个体参与为主到目前全球知名企业大规模的参与,并通过Linux、Apache、OpenStack、k8s等成功的开源项目运营,被证明是软件行业有效达成业界标准的最有效途径。在近几年企业IT数字化转型的趋势下,开源软件作为底层基础设施正在大规模的被企业IT决策者接受并应用于实际生产。从软件生命周期来看,开源软件的开发模式和发展速度也颠覆了软件工程协同的认知。特别在疫情当下,跨地域、跨语言、跨学科、跨业务领域全球协作的开源软件在互联网全球化的当下正在以势不可挡的趋势占领基础软件领域。
1.1开源国际现状和趋势
开源软件兴起于国外,早期软件作为硬件的附赠品来分发,这个阶段主要以个人兴趣爱好和学术研究为主,影响范围较小。从上世纪90年代前后开始,开源发展得益于互联网技术发展,有效解决了软件分发的地域限制。在开源传奇人物RichardStallman主导下成立了自有软件基金会,并发起了GNU项目,为开源软件得以发展构建了底层基础。RichardStallman创造性地提出了GPL开源许可证,为后起之秀Linux提供了有生命力的开源基础设施。紧随其后的Apache项目在互联网大潮中脱颖而出,并最终占据了互联网服务器的统治地位。随着开源项目不断演进,Apache基金会(ASF)也成为专门为支持开源软件项目的全球影响力最大非盈利性组织之一。
年以来,云计算、移动互联网的发展,新一代互联网公司的业务喷井,云计算基础架构的开源项目应运而生。以OpenStack、k8s、Ceph等为代表的新生代开源技术栈催生了开源基础设施基金会(OIF)、云原生基金会(CNCF),并致力于云计算、边缘计算、云原生应用等领域开源项目的孵化和运营。
随着开源软件托管和协助平台的普及,开源全球化协作和共创的沟通成本急剧下降。根据欧盟委员会对于开源的调研,位于欧盟境内的公司于年在OSS方面投资约10亿欧元,这带来了对于欧洲经济至亿欧元之间的影响。该分析估计了超过1:4的成本效益比例,并且预测10%的OSS贡献增量将会每年产生额外的0.4%到0.6%的额外GDP,以及欧盟境内超过家额外的ICT初创企业。全球开源项目数量持续提升,连续三年增长率超过40%。截至年底,全球开源项目数量已超过2亿,较上年增量6千万,同比增长43%。据SourceClear调查报告预测,年全球开源项目数量将超过3亿。
1.2开源国内现状和趋势
国内开源起源于上世纪90年代后期,随着国内互联网的建立带来了Linux和GNU周边的大量的开源软件。基于Linux的发行版本及其周边生态的开源软件被国人知晓并应用,在参与方面软件汉化和Linux核心贡献也有出现,例如:LVS。各地的LinuxUserGroup在邮件列表也有一定的活跃度,之后很长一段时间国内开源还是围绕Linux及周边展开,但并未爆发增长。在年左右,特别是年金融危机之后,国内大型的互联网企业淘宝、网易、新浪、百度、华为等因自身业务发展使用开源基础架构栈并逐步发展自己主导的开源项目初现规模。
进入21世纪之后,互联网、云计算技术在国内的普及,以云计算、云原生为代表的开源软件在国内商业化的探索,涌现出了一批基于OpenStack、k8s、Ceph、Hadoop等分布式开源技术的初创企业。在国内新兴的互联网公司和初创开源技术栈的企业的共同推动下,开源软件在国内的应用得到了快速发展。在使用开源软件的基础上,国内企业也逐步深度参与了国际顶级的开源基金会和开源项目,从参与者逐渐变成项目的核心开发者。在近两年也涌现出了一批国内开发者主导的开源项目,从而更进一步成为开源项目的发起者,甚至有不少开源项目已逐渐获得国际开源从业者认可和支持。
根据中国信通院发布的《开源生态白皮书()》,中国在全球最大开源平台GitHub上的贡献者数量已经达到了全球第二,仅次于美国。年,GitHub平台上中国贡献者的数量增加了37%;而在另一个开源平台Gitee上,中国贡献者的数量更是增加了50%,总量超过了万人。另外第三方中立的支持开源项目孵化的组织和基金会在国内也开始兴起,例如:开放原子开源基金会、木兰开源社区、白玉兰开源、开源中国等组织。这些组织通过对开源技术、开源文化、开源社区治理、开源商业化等方面的探索,并引入一批有质量的开源项目孵化来支撑开源在国内的落地。
随着中国“十四五”已将“支持数字技术开源社区等创新联合体发展,完善开源知识产权和法律体系,鼓励企业开放软件源代码、硬件设计和应用服务”明确写入并作为加强数字技术创新应用的关键,进而工信部针对“十四五”开源生态规划中“建设2-3个有国际影响力的开源社区,培育超过10个优质开源项目”的目标。开源、开放已成为“十四五”软件的主旋律,但在看到开源国内发展机遇的同时,在实际落地过程中国内开源短板也十分明显,需要通过学习国际先进社区和项目的经验,结合国内现实情况有效地完善符合国情的开源治理和开源文化。
第二章国内开源基础设施现状分析
国内开源起步相对较晚,整个开源基础设施针对个人和企业做开源相对友好性没有国际成熟社区完善。随着近几年开源软件在国内应用和国内一批参与国际社区的互联网企业和创业企业的发展,在应用开源技术的同时更加了解开源文化、开源治理框架和开源知识产权合规等问题。结合国内学术界对开源的研究,国内开源也也逐渐更清晰自己的位置和今后需要走的道路。启动一个开源软件项目还需要不少的集成设施,有了这些基础设施的土壤才能让开源软件这个种子发芽、生长。
2.1代码托管平台介绍
从开源软件代码托管平台来看,全球最知名有GitHub、Gitlab。其中GitHub被誉为程序员的交友平台,平台本身不开源,但托管着全球最多的开源项目源代码。平台为全球开发者提供代码托管服务,超过万开发者,万个仓库,其中万开发者来自中国。另外采用开源模式的Gitlab作为后起之秀,在DevOps领域企业级私有化应用中也占有比较主要的市场,同时也提供开源仓库的托管。近期在美股上市,且增长势头迅猛,相信其今后在开源项目托管方面也会有一定的增长。
相较于国际,国内开源软件的代码托管平台相对比较滞后,年开源中国的Gitee(码云)是国内建立本土化的代码托管平台。目前大概有超过万名注册用户,万个托管仓库,并在工信部主导下牵头基于Gitee建设中国特色的独立的开源托管平台。随着国内开源生态的逐步建立,Gitee也成为木兰开源社区、开放原子开源基金会等国内主要、开源社区推荐的代码托管平台。此外,还有兴起的CODING代码托管平台,也比较专注于DevOps和团队协同,对于开源协作和开源方面的支持目前不如Gitee友好。
从大的方面来看,国内开源时机的成熟涌现出Gitee、CODE.CHINA(CSDN)、CODING(腾讯)、效率云(百度)、云效Codeup(阿里)、CodeHub(华为)等一批开源代码托管平台,但除了Gitee相对中立的运营,其它相对来说对开源的友好度都不足。
2.2开源许可证介绍
对于创建开源项目来说,最重要的一个环节就是开源许可证的选择,也关系着开源项目发行模式和后续开源商业化的路径。目前国际上通用的开源许可证的数量众多,其共同特点是都允许用户在开源软件的过程中免费使用、修改、共享源代码。从许可证的使用条件上来看,主要分为:宽松式(permissive)许可证、Copyleft许可证。宽松式许可证就是对用户基本没有限制,用户可以修改代码之后闭源,常见这类的许可证有BSD、MIT、Apache2,相对来说对于开源商业话比较友好。另外一类Copyleft许可证,从许可证来看作为开源软件可以不经许可,用户可以随意复制,但增加了一个限制条件即修改后Copyleft的代码不得再次闭源。业界最知名的Copyleft许可证是由RichardStallman发明的GPL,也是Linux得以成功的一个很重要的开源基础设施的支撑。随着云计算的普及,软件通过云市场的方式分发对开源许可协议范围也出现了一些争议,也出现了SSPL、BSL、ElasticLicense新型针对公有云厂商的存在争议的开源许可证。
随着国内开源软件行业的发展,近几年国内开源知识产权意识也不断提升。国内开源许可证也进入探索阶段,北京大学作为国家重点研发计划“云计算和大数据开源社区生态系统”的子任务牵头单位,依托全国信标委云计算标准工作组和中国开源云联盟,联合国内开源生态圈产学研各界优势团队、开源社区以及拥有丰富知识产权相关经验的众多律师,在对现有主流开源协议全面分析的基础上,共同起草、修订并发布了木兰系列开源许可证。其中以宽松式许可证为代表的木兰宽松许可证已经被OSI认证为第一个中文开源许可证,木兰公共许可证作为Copyleft类许可证也被用于国内的一些开源软件。
开源软件许可证是一个开源软件的基石,选择一个适合项目特点的开源许可证会是比较好的开始。除了考虑开源许可证本身授权方式之外也必须