生机与危机:中国开源应用现状及开源风险

2019年11月2日-3日,由开源社主办的2019中国开源年会在华东师范大学正式召开。据了解,这次年会共有百余位国内外的开源贡献者会聚一堂,一起探讨开源的现在和未来发展。

2019 开源年会部分讲师合影

1991年,Linus Torvalds 写下第一份 Linux 开源邮件的时候,估计他怎么也不会想到现在开源的“燎原之势”。据Gartner调查显示,99%的组织正在其组织系统中使用了开源软件,新兴技术领域开源技术应用尤其广泛。而根据ASF的数据显示,开源经验不足一年的开源贡献者在ASF中占据了大多数,占比达到了64.3%。

中国开源现状

如果我们把目光聚焦到中国,开源同样开展得如火如荼。

根据GitHub的相关数据显示,从2017年到2018年开源发生了规模级的攀升,开源人员从2400万上升为3000万+,企业和组织从150万上升为200万+,代码库6000万上升为9600万+。而中国截止2018年,成为了GitHub贡献排名第二的国家,排名仅此于美国。

在开源项目方面,中国自主研发的开源项目也得到了一定的市场关注。目前,国内共有22个项目贡献给了国际顶级基金会,包括Linux基金会、Apache基金会等,目前成功毕业的项目有9个,包括Kylin、HAWQ、Eagle、CarbonData、RocketMQ、Griffin、 SOFAStack 、Caliper、TiDB。

除了向开源基金会捐赠项目,国内企业也在积极和国际开源基金会合作。中国在Linux基金会共有1家白金会员,27家黄金会员,在Apache基金会有1家白金会员,1家黄金会员和2家白银会员,在OpenStack基金会有2家白金会员,7家黄金会员。

在商业模式方面,中国厂商渐渐摸索两条比较成熟、稳定的道路。一是提供基于开源项目的商业解决方案,例如阿里、腾讯、华为等;二是开源服务模式,将社区版本的开源项目打包测试通过订阅模式、按需收费提供给用户。

开源应用现状

中国开源项目开展得红红火火,那么实际应用情况如何呢?为了解开这个谜题,信通院调查了24个省,近90个城市的企业开源应用情况,行业覆盖包括互联网、政府、金融、医疗、软件及信息技术服务、制造、电信、交通及物流、科教文卫和能源等行业。

根据调查结果显示,超过八成的企业是认可开源技术的。在选择开源技术时,技术成熟度、功能丰富度、应用部署时间和成本是企业关心的重要因素。而缺少合适的解决方案、安全性、现有技术不够成熟是企业尚未采用开源技术的关键原因。

在具体应用时,最受企业关注的解决方案类型包括规划设计、产品选型、实施路径和运维管理;企业对开源解决方案关注的重要指标包括功能性及易用性、服务安全性、异构化系统的兼容性、技术支持能力、行业适用性等;在开源技术应用方向,企业更侧重于存储、数据分析、数据库、网络和中间件。

在项目实施时,近七成的企业会选择联合服务商共同实施。而在实施过程中面临的挑战包括历史遗留问题多导致原有应用迁移困难、异构资源池管理平台难统一、安全监管及合规要求较高、物理设备种类多等等。

在云计算领域,国内的开源项目众多,下面就详细介绍一下容器、虚拟化管理技术、微服务、自动化运维的应用情况。

在容器技术的应用方面,目前已有超过七成的企业在使用或者正在测试应用环境。企业选择容器技术的重要原因是支持快速弹性扩容和移植性强,而不使用容器的原因也很明确,缺少成功案例、迁移成本高、对相关技术不够了解。现在,容器技术应用最多的场景是运维自动化和弹性扩容,同时有近六成企业选择Docker作为容器运行技术。

在虚拟化技术管理方面,超过半数的企业会选择购买商业版并采用供应商的技术服务支持,其中企业应用较为广泛的两个OpenStack版本是Kilo和Icehouse,在众多的OpenStack组件中,Keystone是最受企业欢迎的。

在微服务框架方面,超过六成的企业已经应用或者正在测试微服务框架,其中22.8%的企业已经将微服务投入生产环境,31.6%的企业正在测试环境,而28.4%的企业正在评估是否要使用微服务。

针对DevOps,超过三分之一的企业已经实现了系统的自动化运维。其中Jenkins是目前企业使用最广泛的开源持续集成工具,而超过四成的企业选择将Ansible作为自动化运维工具。

开源风险

前段时间,关于“开源”的新闻有很多,例如GitHub和ASF受到了美国出口法律的约束、多个开源产品更改开源协议等等。这些消息使企业在使用开源产品时变得谨慎,那么,使用开源产品在使用时到底存在哪些风险呢?

中国信通院副主任郭雪

想要回答这个问题,首先我们要理清开源的模式。中国信通院副主任郭雪从基础设施、开源主体和开源规则三个方面分析了开源模式:

  • 基础设施:代码托管平台等;
  • 开源主体:用户企业、科技企业、开源社区、产品企业、开源基金会;
  • 开源规则:开源许可证、开源社区规定;

不同的开源主体使用开源的方式会有所不同,面临的风险也会不同。如果从大的方面来看,开源风险可以分为四大类,技术及运维风险、合规及知识产权风险、安全及数据风险、管理风险。下面我们具体到不同的开源主体看看它们面临的开源风险。

如果是科技企业,面临的开源风险包括:

  • 遵守开源许可证要求;
  • 基于多个开源软件,许可证不兼容;
  • 是否基于已有开源软件,企业难以确认;
  • 使用的开源许可证知识产权界定不清晰;
  • 已有的开源软件规则存在变化;
  • 企业内部数据泄露,业务核心安全性较高的代码剥离不清;
  • 缺乏开源管理流程。

如果是产品企业,不仅面临和科技企业同样的开源风险,而且还面临独特的技术及运维风险,即技术路径寿命短、运维投入大,在安全及数据风险方面要考虑提供、使用的软件是否存在安全漏洞和缺陷。

而用户企业面临的开源风险与产品企业相差不大,只是在开源管理方面会有一些新的风险,例如引入的开源产品难以统计、没有专门的开源治理体系等。

如何避开这些风险呢?郭雪也给出了四个建议:建立开源软件评价或选型标准;进行开源许可证使用合规和开源代码检查;进行开源软件评价;梳理自发开源流程和开源引入流程。

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/FU16H2C5Ks73CzjKFNwc

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励