开源 · 三句半
需求明确是关键
风险考量要周全
开源虽好不白捡
别忘合规!
显然,开源已成为一股不可阻挡的洪流,企业拥抱开源,积极参与开源项目不仅是响应技术潮流的必然选择,更是实现自身技术创新、市场拓展等战略目标的新途径。然而,在企业进行开源治理的关键一点就是选择适合自己企业的开源项目。面对琳琅满目的开源项目,企业如何做出正确的选择却成为了一大挑战。
融入开源的第一步
企业如何选择合适的开源项目?
合适的开源项目仅能帮助企业加快技术创新和业务发展,还能帮助企业建立可持续的开源治理体系,从而使企业在市场竞争中保持技术领先地位。尽管大型科技企业已经有较完善的开源治理策略,但许多中小企业在选择开源项目时仍缺乏清晰的方向和有效的策略。本文结合多家公司治理经验,提炼出一套安全实用的策略,帮助企业选择开源项目。
"制度先行",打好开源标准化工作基础
很多人认为,在选择和使用开源项目之前,制定一套开源相关的制度往往被视为繁文缛节,而忽视其重要性。但这些制度并不是多余,而是确保企业能够安全高效地开展开源项目管理标准化工作的关键。其中,必要的制度包括:开源项目使用制度、开源项目贡献制度、开源项目风险管理制度。
**开源项目使用制度。**开源项目使用制度是确保企业在使用开源项目时遵循一定规范和流程的基础。该制度应明确企业如何评估、选择、引入、使用和更新开源项目。其中包括建立清晰的决策流程,确保所选项目与企业的技术战略和业务需求相匹配。
同时,使用制度还应规定对开源项目的持续监控和维护,以确保其安全性、稳定性和性能满足企业要求。
**开源项目贡献制度。**除了使用开源项目外,企业还应积极参与开源社区,为开源项目做出贡献。开源项目贡献制度旨在鼓励和支持企业员工参与开源项目的开发、测试、文档编写等工作。通过制定明确的贡献指南和流程,企业可以确保员工的贡献符合开源社区的规范和标准。
此外,贡献制度还有助于提升企业在开源领域的声誉和影响力,吸引更多优秀人才加入。
**风险管理制度。**使用开源项目不可避免地会面临各种风险,如法律风险、安全风险、技术风险等。开源项目风险管理制度旨在帮助企业识别、评估、监控和应对这些风险。
其中应包括风险识别机制,定期评估开源项目的潜在风险;风险监控机制,持续跟踪开源项目的安全漏洞和法律纠纷;以及风险应对机制,制定应急预案和补救措施,以减轻潜在风险对企业的影响。
"择优录取",项目的选型和引入
根据《信息技术 开源治理 第2部分:企业治理评估模型》中所言,在项目选型上企业研发项目在需要引入开源项目前对其进行评估,可以根据以下四个维度对开源项目进行综合考量。
综合上面维度考虑,我们可以将开源项目引入分为以下流程:
需求分析与评估
-
明确业务需求:确定企业需要引入开源项目来解决的具体问题或实现的功能。
-
技术评估:分析开源项目的技术栈、架构、性能等是否符合企业的技术要求和标准。
-
成本效益分析:评估引入开源项目的成本(包括人力、物力、时间等)与预期收益之间的平衡。
项目筛选与审查
-
市场调研:收集并整理相关领域的开源项目,了解其活跃度、社区支持、文档完善度等指标。
-
筛选审查:基于业务需求和技术评估结果,筛选出几个潜在的候选项目,对候选项目进行审查。
-
许可证检查:核实候选项目开源项目的许可证类型,确保满足选型规则条件。
原型测试与验证
经过筛选审查后,企业应选出几个候选的开源项目,进行原型测试与验证。这一阶段的重点是:
-
搭建测试环境:模拟实际生产环境,对开源项目进行安装部署和配置。通过模拟实际生产环境,对开源项目进行安装部署和配置,以确保其在真实场景中的可行性。
-
功能性验证:编写测试用例,验证项目是否满足企业的基本功能需求。通过编写测试用例,全面验证项目是否满足企业的基本功能需求,确保其功能完备且符合预期。
-
兼容性与集成性测试:确保所选开源项目能够与企业现有的系统和工具无缝集成,避免在实际应用中出现兼容性问题。
-
安全性测试:通过代码检测、软件成分分析、渗透测试、权限验证等手段,全面评估项目的安全性,确保其在应用过程中不会引入安全风险。
风险评估与应对策略
在选择开源项目之前,企业应对可能面临的风险进行评估,并制定相应的应对策略。常见的风险包括:
-
技术风险:开源项目可能存在技术上的局限性、不成熟或潜在缺陷,企业应仔细评估项目,通过性能测试工具模拟高负载和并发场景,检测项目在性能、稳定性等方面的表现。
-
社区风险:开源社区的变化(如核心开发者流失)可能影响到项目的长期维护和发展。企业应密切关注开源社区的动,与核心开发者建立良好关系,以便及时获取项目更新和支持。
-
许可风险:某些开源许可证的变更可能导致企业,需要调整使用策略或面临合规性问题。企业应通过工具审查项目的许可证,并通过SCA工具检测项目依赖的问题,确保其与企业的商业模式和合规要求相符。
-
安全风险:开源项目可能成为不法分子的攻击目标,从而间接攻击引入项目的企业,导致开源软件供应链安全风险增加。企业应加强对开源项目的持续管理和监控,定期通过SCA工具进行组件识别与漏洞分析,结合SAST工具对源代码扫描检测,有效加强项目安全性。
决策与审批
-
制定决策报告:汇总项目筛选与审查的结果,形成详细的决策报告,包括推荐引入的开源项目及其理由。
-
内部审批:将决策报告提交给企业的决策层或相关技术委员会进行审批。确保决策过程透明且符合企业的决策流程。
入库集成
-
入库管理:将选定的开源项目的代码/制品拉取到企业内部,并入企业开源项目管理库,供后续进行使用和管理。代码/制品需要从官方或者可靠的源下载,避免引入安全隐患。
-
文档编写与培训:编写开源项目的使用文档和培训材料,为企业员工提供必要的技术支持和培训。
精选开源项目, 引领技术未来
面对开源的洪流,企业如何乘风破浪,抓住技术革新的机遇,关键在于能否精准地选择并引入适合自己的开源项目。通过制定一套完善的开源项目选择策略,企业可以快速融入开源项目,持续推动技术创新和业务拓展。
推荐阅读