开源 · 三句半

oss-roast

开源治理建团队
制度工具要完善
积极参与开源事
深度实践!

4月份曝光的“XZ后门事件”是一起历时两年半的“开源供应链投毒”典型案例,被定义为“核弹级漏洞事件”,其揭示了开源技术的安全短板,引发了众多企业的紧急响应,这一“核弹”为企业在开源治理上再次敲响了警钟。

我们经常说开源是一场技术浪潮,为企业带来前所未有的创新机遇和无限潜力,但正如“XZ后门事件”所示,未能妥善治理开源资源,让企业极易成为安全漏洞的牺牲品。如何在这股开源浪潮中既能够乘风破浪,充分利用开源的优势,又能够稳健前行,有效规避各种风险呢?这需要我们探讨一套有效的企业开源治理策略。

近年来,在多个机构和科技企业的努力下,与开源治理相关的“T/CESA 1270”、“T/CCSA 383”系列团体标准陆续发布,其中《T/CESA 1270.2—2023信息技术开源治理第2部分:企业治理评估模型》所给出的模型架构,相对于开源治理工作来说具有完整的指导作用。

然而,在面向众多中小型科技企业来说,其开源治理工作无法完全覆盖模型中涉及的全面内容。而根据模型要求,我们可以从以下几个方面构建一个轻量且有效的企业开源治理策略。

“轻量级“的开源治理策略

打开网易新闻 查看精彩图片

01 明确开源治理目标

01 明确开源治理目标

中小企业在推进开源治理时,必须首先确立清晰的目标。目标可以围绕提升企业的技术创新能力、降低软件开发与维护成本、以及通过开源社区增强品牌影响力等。在设定了明确的目标之后,企业应针对性地制定开源治理策略,确保每一步行动都服务于这些核心目标,从而实现企业资源的高效利用和最大化回报。

02 建立精简的开源治理团队

02 建立精简的开源治理团队

为了有效执行开源治理策略,企业应组建一支精简而高效的团队。这个团队应由技术负责人领衔,并包括法务专家、项目经理以及软件架构师等关键角色。他们不仅需要对开源技术有深入了解,还需具备战略规划、风险管理和团队协作能力。这个团队将负责开源活动的全面规划、有力实施和持续监督,确保企业的开源治理工作稳步前行。

03 构建开源治理制度体系

03 构建开源治理制度体系

虽然制定开源相关制度可能被视为繁琐,但这些制度在确保企业安全、高效地进行开源项目管理方面起着至关重要的作用。必不可少的制度包括开源项目使用规范、贡献指南以及风险管理措施等。这些制度能够为企业提供明确的操作框架,降低潜在风险,并确保开源活动的合规性。在上一篇文章《开源治理·聚光灯| 企业如何选择一个开源「好」项目?》,我们讲解了三个制度的作用。

04 管理开源项目生命周期

04 管理开源项目生命周期

企业应建立全面的开源项目生命周期管理机制,涵盖项目的引入、研发、运维及退出阶段。从初步评估开源项目的适用性,到在软件开发生命周期中的集成与使用,再到持续的风险监测与管控,直至最终的退出或替换,每一个环节都需有明确的流程和责任人,以确保开源项目的持续稳健运行。

05 强化风险管理

05 强化风险管理

企业在利用开源软件时,必须高度重视安全性和许可合规性。借助自动化工具进行定期的安全扫描和许可证检查是及时识别和修复潜在风险的有效方法。同时,建立完善的应急响应机制能够确保企业在面临突发安全风险时迅速作出反应,减轻潜在损失。

06 积极参与开源项目

06 积极参与开源项目

企业积极融入开源社区,通过贡献代码、完善文档或等支持方式,提升自身的影响力和话语权。这种参与不仅能够让企业及时掌握最新的技术动态和风险信息,还能获得更多的技术支持和更广阔的协作机会,从而推动企业技术和业务的共同发展。

07 打造开源治理工具链

07 打造开源治理工具链

为了更好地实施开源治理策略,企业应打造一套开源治理工具链。配备必要功能的工具链是企业在开源治理的得力助手,能够大幅提升研发效能,同时降低潜在风险。

1.知识管理工具在工具链中扮演着文档库的角色。它不仅可以用于企业内部知识的整理和共享,还能促进团队成员之间的协作。通过知识管理工具,员工可以方便地查阅和更新项目文档、技术指南以及制度政策文档,确保信息的准确性和一致性。

2.依赖管理工具对于管理复杂的项目依赖关系至关重要。它能够自动追踪和管理项目中所使用的各种库和框架的版本,确保团队在开发过程中使用的是正确且兼容的依赖项,从而避免因版本冲突而导致的问题。

3.代码扫描工具(SAST工具)则负责进行代码的安全性和质量检查。这类工具能够自动检测代码中的安全漏洞、性能瓶颈以及不符合编码规范的代码片段,帮助开发人员在早期发现并修复问题,提升代码的整体质量。

4.在开源治理中,软件成分分析工具(SCA工具)的作用不可忽视。它能够识别项目中使用的所有开源软件,包括其版本、许可证和安全漏洞等信息。通过持续监控这些软件的更新和漏洞修复情况,企业可以及时应对潜在的安全风险,确保软件的安全性。

5.版本控制工具也是工具链中不可或缺的一环。它允许团队追踪代码的每一次变更,便于协作和审查。当出现问题时,团队可以迅速定位并回滚到之前的稳定版本,减少故障恢复时间。

6.项目管理和协作工具则能够提升团队的工作效率。这类工具通常提供任务分配、进度追踪和团队协作等功能,帮助团队成员更好地协同工作,确保项目按时完成并达到预期目标。

完善的开源治理工具链可集成到企业研发流程中,为企业项目研发提供全方位的开源项目管理的支持,帮助企业可以在开源治理的道路上更加稳健地前行,实现效率与安全的双赢。

未来,我们期待看到更多企业能够结合自身实际情况,制定出更为精细化、系统化的开源治理策略,从而在开源浪潮中乘风破浪,实现稳健而快速的发展。同时,随着开源治理相关标准和工具的不断完善,相信企业将能更加高效地管理开源项目,进一步释放开源技术的潜力,推动整个行业的持续进步与创新。