写点什么

解决研发数据分析瓶颈,开源项目 DevLake 加入 Apache 软件基金会孵化器 | InfoQ 专访

  • 2022-05-20
  • 本文字数:4142 字

    阅读完需:约 14 分钟

解决研发数据分析瓶颈,开源项目DevLake加入Apache软件基金会孵化器 | InfoQ专访

近日,研发数据平台开源项目 DevLake 顺利通过投票,正式成为 Apache 软件基金会(ASF)的孵化项目。这意味着 DevLake 社区协作将朝着更加开放、规范以及国际化的方向演进。借此机会,InfoQ 专访了 DevLake 项目主创团队,进一步了解 DevLake 的开发背景、目标和未来规划。



为什么加入 Apache 软件基金会?

 

Apache 生态内数据类开源项目非常丰富且活跃,而 DevLake 项目致力于打造可扩展、可定制、灵活而健壮的研发效能数据分析平台。作为第一个专注研发数据这一垂直领域的数据平台,DevLake 项目团队一方面希望向 Apache 生态其他项目学习,密切交流、共同成长,另一方面也希望为 Apache 生态带来一些新的视角。

 

据介绍,DevLake 选择加入 Apache 软件基金会主要出于两方面考虑:首先,项目团队希望能够建立一个具有包容性、多元化和崇尚知识的社区,而 The Apache way,比如“开放”,“社区高于代码”等,能帮助 DevLake 更好地成长和持续发展;其次,DevLake 项目方向与 Apache 软件基金会的关注点高度契合,进入 Apache 生态能让项目近距离地向 Apache 的导师和其他数据类项目学习。

 

在进入 Apache 软件基金会孵化器前,DevLake 项目团队主要做了以下准备:学习和了解了 Apache 基金会的运作方式和对孵化器项目的要求,深刻理解 The Apache Way,明确未来 DevLake 在 Apache 生态的定位、方向和发展;对既有的代码仓库进行开源合规性扫描,替换和 Apache license 不兼容的依赖,确保代码库合规;搭建项目官网,汇总了 DevLake 所有的项目信息 (技术文档、博客等),为开发者加入社区提供统一入口。

研发效能数据平台的痛点

 

当前,研发效能数据平台方向仍存在诸多问题和挑战。

 

首先,研发工具种类繁多,工具组合更多,集成非常困难。如果一个 PMO 或者技术 Leader 想看项目、代码、测试、构建的数据,需要在不同工具之间频繁切换,还必须记住各种访问地址、用户名、密码等,非常麻烦。

 

其次,研发工具间无法互通。比如项目管理工具 Jira、代码托管平台 GitLab、 CI/CD 工具 Jenkins,以及 IM 和文档工具飞书之间都是无法互通的。如果管理人员想要了解修复每个 Bug 用了多少代码,或者在功能、Bug、基建等方面的代码投入比例,或者分析不同产品(应用)的构建频率、成果率和时长等,就需要花费颇多功夫将工具关联起来。

 

再次,研发过程数据非标准化,导致难以直接进行研发效能度量。如果管理人员使用单纯的数据集成工具,虽然可以快速集成数据,但数据形式往往是原始的 API 请求结果(以 json 格式为主),没法直接用来分析。如果能够提供便捷的数据转换,使用户能通过标准 SQL 分析,体验就会好很多。

 

最后,业内缺少研发数据平台的基础框架,无法满足一些用户的定制化分析需求。虽然市面上已有一些研发效能分析工具,但基本都聚焦于数据收集、转换、指标可视化等。这种做法的好处是用户可以很快上手,但不足的地方在于“只能集成这些工具支持的数据源”、“指标计算方式不透明”且“无法定义新的指标”。

 

而 DevLake 就是为了解决上述问题而生的。以解决定制化分析需求为例:


  • 从数据源支持的角度,DevLake 提供了一套简明的插件编写范例和说明文档,帮助大家快速开发插件。如果 DevLake 暂不支持某个 DevOps 工具 X,用户可以很方便地实现插件 X 并贡献给社区;

  • 从指标透明度和灵活性的角度,不同用户在不同场景下,可能会需要不同的效能指标计算方法。以“测试覆盖率”为例,有的团队会使用基于“代码行”的覆盖率,有的会使用基于“函数”或者“逻辑分支”的覆盖率。现在工具往往只能支持固定的指标计算方式,而 DevLake 作为研发数据平台,在数据的应用上给予用户更大的自由度,用户可以方便地自定义指标,或调整计算方式,如果缺乏指标计算所需的原始数据,用户也可以使用 DBT 自定义数据模型来实现数据转换。

 

总体而言,DevLake 的目标是帮助研发团队更好地理解开发过程,挖掘关键瓶颈与提效机会。


  1. DevLake 可以帮助研发团队汇集并分析散落、非标准的研发过程数据,快速建设研发数据分析能力,从数据中发现研发过程的短板,有针对性地提升软件质量和开发效率;

  2. 对于开发者而言,如果开发者需要为团队搭建研发数据分析平台,那么 DevLake 已经搭建好了基础设施,能够帮助开发者节省很多造轮子的工作;如果开发者做的是其他垂直领域的数据分析平台,也能从 DevLake 中获得一些数据集成、处理的经验。

DevLake 技术特性和用户案例

 

据介绍,DevLake 当前具备以下技术特性:

  1. Extensible(可拓展性):DevLake 基于 Golang plugin 系统设计了灵活的插件系统,支持用户独立开发接入任意数据源(包括自研工具),并可通过 dbt 插件运行用户自定义的数据转换/分析任务;

  2. Transparent(透明性): DevLake 会将收集来的数据清洗转换到自己的 domain model schema,并基于此来生成后续的分析指标,对用户来说简单易懂;用户也可以基于 domain model schema 自定义指标或调整指标计算方式;

  3. Minimal(架构简洁):框架简练,同时最大化地共用了插件的重复逻辑,尽量用最少的代码做最多的事情;同时数据收集、分析任务的编排方式参照 GitLab pipeline 设计,简单易懂,用户和开发者能够轻松地理解并操作;

  4. Customizable(定制性): DevLake 采用模块化设计, 底层存储可根据用户数据规模进行替换,适用于不同规模的开发团队;

  5. Robust(鲁棒性): DevLake 的数据收集模块能在数据源 rate limit 范围内高效收集数据,并且有良好的错误恢复能力;



DevLake 架构图

 

目前 DevLake 已经被用于为一些开源项目提供基于版本和模块的质量和贡献数据分析,如 PingCAP 的 TiDB、TiKV 以及 Clickhouse 等。

 

以 PingCAP 的 TiDB 项目为例,目前 PingCAP 有相当多的开源项目,需要了解各个版本的用户使用体验,以指导测试资源分配,并为架构演进方向决策提供参考。

 

但要达成这个目标还存在很多挑战,比如:

  • 缺乏工具来快速收集和转化 GitHub 数据进行分析,只能通过一个个独立的脚本获取数据,但数据是散乱的、非结构化的;

  • Issue 和 PR 上的标签不全,导致无法搞清楚一个 bug 是哪个版本发现的;

  • 缺乏更准确的指标,原来使用的基于代码行的“测试覆盖率”无法反应真实情况。

 

针对以上问题,DevLake 提供了一套更好的解决方案:

  • 基于 DevLake 研发数据平台,统一汇集并处理来自 GitHub 的研发数据,保障数据有效性,使其能够直接用于分析;

  • 通过分析各版本间解决 bug 的数量、严重等级等数据,预估版本的稳定程度,以更好地评估使用体验;

  • 通过分析模块间的 bug 数量、严重等级分布、代码变更频率等,发现质量缺陷密度高的模块,从而投入更多的测试和重构资源;

  • 通过函数 / 逻辑分支等替代基于行的“测试覆盖率”,通过计算覆盖率与最终 bug 数量的相关性,调整覆盖率算法,使其能更准确地反映真实的缺陷密度。


 

面向开源项目的版本/模块质量分析 Dashboard 截图 

未来规划

 

后续在技术与产品层面,DevLake 计划集成更多数据源,覆盖整个软件开发生命周期 (SDLC);提供更丰富的研发数据分析场景,与用户共建 Dashboard,实现更进一步的开箱即用;提升灵活性,用户能够根据自身业务需求,轻松地自定义数据模型和指标;优化用户体验,降低安装、配置、收集的成本,使用户专注数据分析;增强系统可伸缩性, 提升大规模数据场景下的系统性能。

 

在社区生态层面,加入 Apache 软件基金会孵化器后,DevLake 将遵循 Apache 之道,进一步提升 DevLake 在开源社区的知名度和友好度,打造活跃的开源技术生态和社区,包括:


  1. 组织多种多样的社区活动,积极进行线上和线下技术布道,以 “码” 会友,通过 Meetup、Hackathon 等活动吸引开发者和开源爱好者参与到 DevLake 的社区中来;

  2. 打造开放、友好的交流环境,完善和丰富 DevLake 相关内容体系,完善用户文档和贡献指南,提供邮件列表、微信群、Slack 等多种沟通工具和更及时的响应,降低用户使用和参与门槛,积极与用户互动,解决用户问题并进一步促进项目迭代;

  3. 积极与其他开源项目和社区展开合作,让越来越多的生态合作伙伴了解和参与到 DevLake 的社区,共建繁荣的数据生态。

项目导师介绍和寄语

 

姜宁:HugeGraph Champion、ASF Member,同时也是今年当选的 Apache 董事

 

“非常高兴能够成为 DevLake 的开源孵化领路人,帮助 DevLake 加入 ASF 孵化器。 DevLake 着力于解决软件研发领域数据收集,以及研发瓶颈分析的痛点问题。欢迎对提升软件研发效率感兴趣的小伙伴参与到 DevLake 的使用和开发中来,一同构建繁荣发展的社区生态。 ”

 

张亮:SphereEx 公司创始人 & CEO,ASF Member 、Apache ShardingSphere 创始人 & PMC Chair

 

“欢迎 Apache 孵化器的新成员 DevLake。它将使工程效能领域的发展更加开放和繁荣,进而推动整个领域的标准化进程。欢迎更多的贡献者参与 ASF 社区,望 DevLake 早日毕业!”

 

代立冬:ASF Member、Apache DolphinScheduler PMC Chair

 

“很高兴看到 DevLake 加入到 Apache 孵化器,DevLake 是一个专为开发团队分析和提高工程生产力的平台,欢迎广大的开发伙伴们一起参与让 DevLake 社区更加繁荣、早日成为顶级项目!”

 

郭斯杰:ASF Member, PMC on Apache Pulsar,StreamNative 创始人 & CEO

“祝贺 DevLake 进入 Apache 软件基金会孵化器,这是 DevLake 走向世界的一大步,期待有更多技术爱好者和用户加入,共建繁荣。祝社区快速成长成为顶级项目,成为研发数据平台的中流砥柱。”

 

Felix Cheung:ASF Member,Apache Zeppelin、Spark、SuperSet、YuniKorn、Pinot 等项目 PMC,SafeGraph 技术高级副总裁

 

Jean-Baptiste Onofré:ASF Member,Karaf PMC Chair,ActiveMQ、Archiva、Aries、Beam、Brooklyn、Camel、Carbondata、Felix 等项目 PMC

 

相关链接:

 


 

每一位开源参与者、每一个开源项目都可以成为舞台上的主角。

 

新的一波开源浪潮正在席卷中国,【开源聚光灯】是 InfoQ 重点打造的开源主题栏目,旨在通过新闻、系列访谈、用户调查、迷你书、视频等形式深入观察开源运动,围绕开源的价值和开源开发模式,与投身开源的每一个个体共同探讨开源发展现状,照亮每一个开源舞台上的参与者。

 

如果你有开源故事或对开源的深刻观点想要分享、或开源项目想要寻求报道,欢迎联系微信 caifangfang842852(请注明姓名和来由)。

2022-05-20 14:002648
用户头像
蔡芳芳 InfoQ主编

发布了 801 篇内容, 共 566.7 次阅读, 收获喜欢 2795 次。

关注

评论 1 条评论

发布
用户头像
软件开发过程量化出来,确实不错
2022-05-26 09:19
回复
没有更多了
发现更多内容

昇思MindSpore全场景AI框架 1.6版本,更高的开发效率,更好地服务开发者

华为云开发者联盟

强化学习 mindspore ai框架 图学习 昇思MindSpore

Linux curl命令详解

学神来啦

云计算 Linux 运维 curl

以数字化为引领天翼云助力中安公司应急管理云平台上线

天翼云开发者社区

详细解读阿里云开源PolarDB总体架构和企业级特性

阿里云数据库开源

数据库 阿里云 polarDB

Linux之netstat命令

入门小站

Linux

天翼云发布云原生关系型数据库TeleDB for openGauss

天翼云开发者社区

iOS应用性能数据采集原理和优化实践 | 详细版

云智慧AIOps社区

ios 性能优化 数据采集 Object-c 技术干货

上海英方软件正式加入openGauss社区

openGauss

opengauss

高精度轻量级目标检测产业应用,实现多类通信塔识别

百度大脑

极速体验|使用 Erda 微服务观测接入 Jaeger Trace

尔达Erda

云计算 微服务 云原生 PaaS 分布式架构

《中国软件根技术发展白皮书(基础软件册)》发布!

openGauss

opengauss

HAVE FUN | SOFARegistry 源码解析

SOFAStack

GitHub 开源 程序员 开发者 源码剖析

上讯信息正式加入openGauss社区

openGauss

一周信创舆情观察(2.28~3.6)

统小信uos

中国协同办公服务软件,你更看好哪一款?

易观分析

协同办公软件

[架构实战营] 模块9设计

Vincent

「架构实战营」

经验分享 | 如何搭建FAQ/用户培训手册

小炮

运营 客户服务

2022全网最详细的音视频开发学习路线,零基础到项目实战,从小白到音视频专家

Linux服务器开发

音视频 WebRTC ffmpeg 音视频开发 流媒体服务器开发

恒源云(GpuShare)_PRGC:基于潜在关系和全局对应的联合关系三元组抽取

恒源云

机器学习 深度学习 算法 知识图谱

星际营23期开始招募 门槛高,但是优秀项目可获得全额奖学金,敢来挑战吗?

创业邦

Flutter ChartSpace:通过跨端 Canvas 实现图表库

字节跳动终端技术

flutter 字节跳动 前端 canvas 图表库

Redis现网那些坑:用个缓存,还要为磁盘故障买单?

华为云数据库小助手

redis GaussDB GaussDB ( for Redis ) 华为云数据库

2022年3月中国数据库排行榜:TiDB “三连降”仍霸榜首,“常胜四将军”得分集体下跌

墨天轮

数据库 TiDB 国产数据库 KingBase gbase8a

在线YAML转TOML工具

入门小站

工具

在充满挑战的时代天翼云以数字化加速市域社会治理现代化

天翼云开发者社区

东方电机打造大国重器 携手天翼云挺起智能制造新脊梁 智能制造的力量 东方电机的数字化前行之路

天翼云开发者社区

人脸识别闸机惊艳美国运动员背后的黑科技是如何实现的?

天翼云开发者社区

通过CRM系统提高生产力的技巧

低代码小观

企业管理 CRM 企业管理系统 CRM系统 客户关系管理系统

openGauss助力中国移动获 “ICT优秀案例”

openGauss

opengauss

ENS 域名终极指南

devpoint

以太坊 eth 3月月更 ens

华为云大数据轻模式体验:忘掉底层烦恼,专注数据开发

华为云开发者联盟

大数据 Serverless 数据湖 数据开发 华为云

解决研发数据分析瓶颈,开源项目DevLake加入Apache软件基金会孵化器 | InfoQ专访_文化 & 方法_蔡芳芳_InfoQ精选文章