首页 > 数据治理 > 数据治理 > OSCAR 分享之蚂蚁开源治理的方法和实践
OSCAR 是开源产业大会,学术界、产业界共同探讨开源的使用、共享和治理等相关话题,2022 年的开源产业大会于 2022 年 9 月 16 日在北京成功举办,大会上蚂蚁技术专家才楚做了关于蚂蚁开源治理的方法和实践主题分享,此文进行了一些总结。
用不用开源技术不再是个问题,如何用好开源技术才是,这是这些年来大家普遍的共识。应用云原生化之后,发布到线上的制品中超过 90% 的代码是非开发人员编写的代码,而是框架、组件、库等。研发的主要工作从「 代码编写」进化到了「 接口编排」,在大幅度提升了效率的同时,开源技术的风险随着大规模自动化的持续交付流水线进入了线上生产环境。即使事后定位到某个组件的问题,影响分析、稳定性保障、版本升级都是非常大的难题。
近年 fastjson、log4j 这些高危远程执行漏洞,GPL 协议引起的诉讼等问题都说明这类问题发生的必然性,并且此类问题造成的损失十分巨大,此前认为开源技术和免费技术是一回事的观点必须要抛弃了,尤其是对风险敏感的金融相关技术研发组织。
开源治理的难点主要在于没有数据:

所以,我们需要使用制造业供应链管理的理念:
因此,开源治理时必须要达到的四目标:
数据驱动的治理的关键在于需要工具能在研发活动中,将风险通过研发工具透出给开发者,并辅助开发者处理。


从治理决策出发,持续治理执行和治理评估,研发人员和治理规则定义者之间保持持续迭代的关系,通过辅助工具,如 IDEA 自定义快速检查功能和 SmartUnit 保障代码单元测试质量。

在治理决策时,通过 10 个指标明确风险现状,定义治理头部组件/应用,定义出治理规则,这些清单数据来自于构建活动中通过 SCA 工具收集的数据,统一制品库对接开源组件风险分析工具提供的接口,拿到风险分析结果并以制品元数据的形式进行持久化,前端查询展示为数据大盘。

在治理执行时,治理规则统一管理,通过数据大盘可以了解到当前运行了哪些规则、规则分类、规则分级以及应用响应的情况等,这些数据能够和 Rule enforce 客户端互动,客户端在执行 enforce 的时候通过 API 从管理端拉取最新规则,在 IDEA 本地执行校验。

在开发者本地,通过 IDEA 自定义功能菜单的方式就可以快速执行检查,当然命令行手动执行命令检查同样是支持的,在流水线中同样是支持的。这种动态规则的拉取是蚂蚁对 apache maven enforce plugin 进行了深度改造定制实现的,通过这个客户端可以透出升级操作指引给开发者,辅助开发者操作。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69904796/viewspace-2916824/ ,如需转载,请注明出处,否则将追究法律责任。