OSCAR 分享之蚂蚁开源治理的方法和实践

简介: 用不用开源技术不再是个问题,如何用好开源技术才是
OSCAR 是开源产业大会,学术界、产业界共同探讨开源的使用、共享和治理等相关话题,2022 年的开源产业大会于 2022 年 9 月 16 日在北京成功举办,大会上蚂蚁技术专家才楚做了关于蚂蚁开源治理的方法和实践主题分享,此文进行了一些总结。

1.jpg

1.开源治理的必要性

用不用开源技术不再是个问题,如何用好开源技术才是,这是这些年来大家普遍的共识。应用云原生化之后,发布到线上的制品中超过 90% 的代码是非开发人员编写的代码,而是框架、组件、库等。研发的主要工作从「代码编写」进化到了「接口编排」,在大幅度提升了效率的同时,开源技术的风险随着大规模自动化的持续交付流水线进入了线上生产环境。即使事后定位到某个组件的问题,影响分析、稳定性保障、版本升级都是非常大的难题。

近年 fastjson、log4j 这些高危远程执行漏洞,GPL 协议引起的诉讼等问题都说明这类问题发生的必然性,并且此类问题造成的损失十分巨大,此前认为开源技术和免费技术是一回事的观点必须要抛弃了,尤其是对风险敏感的金融相关技术研发组织。

2.数据驱动的治理

开源治理的难点主要在于没有数据:

  • 在治理决策时,不清楚用了哪些开源组件、不清楚开源组件的开源风险现状是什么、不清楚开源组件被谁在用
  • 在治理执行时,开源治理规则没有地方统一管理、治理规则无法动态分发、治理进展无法数据化跟踪

2.png

所以,我们需要使用制造业供应链管理的理念:

  • 对使用了哪些原材料需要有清单
  • 这些原材料如果有质量问题则需要记录
  • 知道这些原材料哪些产品在用(便于交付前质检和交付后溯源、审计)

因此,开源治理时必须要达到的四目标:

  • 知道研发组织使用了哪些开源组件
  • 知道开源组件的风险分析结果
  • 知道开源组件被哪些应用在使用
  • 能够高效、精准地形成持续交付管控切面,必要时阻断

3.开源治理的工具

数据驱动的治理的关键在于需要工具能在研发活动中,将风险通过研发工具透出给开发者,并辅助开发者处理。

3.png

4.蚂蚁的治理实践

4.png

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

  • 治理决策,基于现状定义治理目标、流程管控规则
  • 治理执行,线上存量问题、线下增量问题联动治理
  • 研发体验,尽量在研发最早期提示风险和辅助用户升级

5.png

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

6.png

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

7.png

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

8.png

相关文章
|
数据采集 存储 SQL
连载:阿里巴巴大数据实践—数据开发平台
介绍MaxCompute和阿里巴巴内部基于MaxCompute的大数据开发套件,并对在数据开发过程中经常遇到的问题和相关解决方案进行介绍。
7431 0
连载:阿里巴巴大数据实践—数据开发平台
|
机器学习/深度学习 人工智能 运维
首届 TechoDay 腾讯技术开放日:云原生、大数据等基础产品一键配置,发布 7 款“轻量级”产品
首届 TechoDay 腾讯技术开放日:云原生、大数据等基础产品一键配置,发布 7 款“轻量级”产品
273 0
|
人工智能 Kubernetes Cloud Native
继《云原生开发者洞察白皮书》后【云原生人才计划之Kubernetes 技术图谱】发布!首发有礼!
如今越来越多的公司正在拥抱Kubernetes ,当前Kubernetes 已经主导了云业务流程。 那么称霸容器领域的Kubernetes 究竟有什么魔力呢?又该从何学起呢?这需要对Kubernetes 的学习有一个清晰的学习路径,从而有效的学习Kubernetes 所囊括的知识。
1380 1
继《云原生开发者洞察白皮书》后【云原生人才计划之Kubernetes 技术图谱】发布!首发有礼!
|
运维 Kubernetes Cloud Native
KubeMeet|聊聊新锐开源项目与云原生新的价值聚焦点
10 月 16 日上海,OAM/KubeVela、OpenKruise、OCM 三大开源项目的社区负责人、核心贡献者和企业用户将齐聚 KubeMeet,和现场 100 名开发者聊聊新的技术环境和企业需求下,有关“云原生应用管理”的那些事儿。
KubeMeet|聊聊新锐开源项目与云原生新的价值聚焦点
|
机器学习/深度学习 运维 Kubernetes
KubeCon 2020 演讲集锦|《阿里巴巴云原生技术与实践 13 讲》开放下载
我们筛选了云原生技术大会上 13 场有代表性的演讲重新编排成书,旨在将阿里巴巴云原生之路上宝贵的经验、理念和思想,提供给广大正在或准备踏上云原生之旅的开发者一些切实有用的参考。
KubeCon 2020 演讲集锦|《阿里巴巴云原生技术与实践 13 讲》开放下载
|
人工智能 Cloud Native 安全
阿里云新品发布会周刊第109期 丨 走近云原生的开源大数据统一平台
新产品、新版本、新技术、新功能、价格调整,评论在下方,下期更新!关注更多新品发布会!
442 0
阿里云新品发布会周刊第109期 丨  走近云原生的开源大数据统一平台
|
缓存 Kubernetes Cloud Native
蚂蚁构建服务演进史
自动化构建和CI/CD往往是相辅相成的,可以理解为,自动化构建是温饱问题,解决了温饱就会有更多的提高生产力的诉求,也就是对应的CI平台,CI/CD本篇文章不做扩展。
蚂蚁构建服务演进史
|
Kubernetes 安全 Cloud Native
蚂蚁王旭:开源协作如何提升业界的安全?
开发者、组织、业界机构的共同努力,让开源项目和社区,乃至整个世界变得更加安全。
蚂蚁王旭:开源协作如何提升业界的安全?
|
存储 分布式计算 Oracle
连载5:阿里巴巴大数据实践—阿里巴巴的数据模型实践综述
阿里巴巴的数据仓库模型建设经历了多个发展阶段。
7147 0
连载5:阿里巴巴大数据实践—阿里巴巴的数据模型实践综述
|
运维 架构师
应用架构的核心使命是什么?阿里高级技术专家这样说
阿里妹导读:什么是架构?关于架构这个概念很难给出一个明确的定义,也没有一个标准的定义。如果,硬是要给一个概述,阿里巴巴高级技术专家张建飞认为架构就是对系统中的实体以及实体之间的关系所进行的抽象描述。今天,张建飞来谈谈应用架构的核心使命是什么,是否与你想得一样?往下看,一起寻找答案。
22332 0