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


源代码|「上云」之后,企业数字化的下一步是开源
文章插图
03 使用开源软件的挑战大多数企业是以行业开源者和行业使用者存在,它们所面临的挑战也不尽相同。
1 IT 架构治理的挑战——CIO 的视角
不同的企业因为自身 IT 建设阶段的不同,使用开源软件的方式也各有不同。但不管哪种方式,最终都需要考虑 IT 架构统一治理。
第一种,新型企业全部业务从一开始就使用开源软件构建。常见于互联网公司和开源达到比较成熟阶段后创立的企业。这类公司把 IT 能力作为核心竞争力,平台技术团队完全有能力采用开源和定制化修改的开源衍生产品。但随着定制系统的发展,代码改动和软件升级则面临很大挑战,被迫选择持续加大技术投入,或走向避免改动的保守状态,陷入落后的局面。
第二种,传统企业局部使用开源软件替换商业软件。常见于成立时间已久的大中型企业,长期使用商业软件享受软件技术服务。新技术与新开发方式也使新的业务发展无法拒绝已经开源的软件。
第三种,特定行业在一定发展阶段选择了商业软件,越过发展台阶后重新拥抱开源软件和加大自身研发投入,典型如阿里巴巴。
鉴于开源软件自身的特点、版本路线不同,以及不同应用开源组合的复杂性,不同企业有选择不同企业级技术架构路线的权利。
2 自主可控的挑战
「自主」的含义大致有两种理解。一种是指采用主权范围内厂商具有完全知识产权掌控力的软件,不受国外产品和服务体系供应的限制,因此这里的「主」是指的国家主体;另一种「主」是指的企业本身,企业可根据自主意志,按自己的需求、想法,在不违反授权的情况下,自由地修改和使用软件。
「可控」对应的是「卡脖子」,无论是开源社区还是商业授权的软件。一些企业想从现在开始就不再采购开源软件的商用发行版和商业服务。诚然,集中精力自己研发、自己把控,在特定的场景上,放弃外部的商用依赖,另起炉灶,做出一套完全自主的产品,这样的成功例子是有的,但毕竟是极少数。这种做法也需要有大量优秀的软件工程师,并且积累了大量的经验。
对大多数企业而言,要想做到自主可控,最好能仔细钻研开源软件的代码、架构、测试。这里的诀窍就是,与软件产品的主流社区协同。自己越是有可能面临风险,越应该广泛建立与开源商业生态体系的联系,除非真的被外部客观不可抗拒原因切断。
3 成本可控的挑战
大多数开源软件的成本,都是隐藏的,来自持续的质量控制、升级和运维服务的成本。虽然广泛使用的开源软件的质量和可靠性水平都很高,但是靠单一企业内部的技术力量支持海量源代码产品的持续运行难度非常大。
仍需要避免一个认知误区:某个单独软件的授权成本,并不是投入的全部,后续支撑性投入才是重头戏。企业必须超越简单的底线成本模型或 ROI 计算逻辑,站在业务视角看整体成本。
4 安全的挑战
过去几年开源社区的大量增加,以及媒体对最近一些数据泄露事件的报道,使得人们对开放源代码安全的关注提高。根据统计数字,84% 的开源代码库至少含有一个漏洞,60% 的已审核代码库包含高风险漏洞。2021 年 12 月,最新的 log4j2 的远程代码执行漏洞就是典型的事件,该漏洞影响巨大,一旦被攻击者利用会造成严重危害。
5 合规的挑战
《关于规范金融业开源技术应用与发展的意见》明确提出:金融机构应当遵循开源技术相关法律和许可要求,合规使用开源技术,明确开源技术的使用范围和使用的权利与义务。