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

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 每一位开源参与者、每一个开源项目都可以成为舞台上的主角。

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

image.png

为什么加入 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 的目标是帮助研发团队更好地理解开发过程,挖掘关键瓶颈与提效机会。

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

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

DevLake 技术特性和用户案例

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

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

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

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

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

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

image.png

DevLake 架构图

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

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

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

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

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

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

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

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

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

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

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

image.png

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

未来规划

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

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

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

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

积极与其他开源项目和社区展开合作,让越来越多的生态合作伙伴了解和参与到 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

相关链接:

Devlake 代码仓库:https://github.com/apache/incubator-devlake/

DevLake 官网:https://devlake.apache.org/

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

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

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

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
6月前
|
消息中间件 存储 Kafka
Grab 基于 Apache Hudi 实现近乎实时的数据分析
Grab 基于 Apache Hudi 实现近乎实时的数据分析
96 0
|
19天前
|
消息中间件 数据挖掘 Kafka
Apache Kafka流处理实战:构建实时数据分析应用
【10月更文挑战第24天】在当今这个数据爆炸的时代,能够快速准确地处理实时数据变得尤为重要。无论是金融交易监控、网络行为分析还是物联网设备的数据收集,实时数据处理技术都是不可或缺的一部分。Apache Kafka作为一款高性能的消息队列系统,不仅支持传统的消息传递模式,还提供了强大的流处理能力,能够帮助开发者构建高效、可扩展的实时数据分析应用。
64 5
|
1月前
|
存储 数据挖掘 数据处理
Apache Paimon 是一款高性能的数据湖框架,支持流式和批处理,适用于实时数据分析
【10月更文挑战第8天】随着数据湖技术的发展,越来越多企业开始利用这一技术优化数据处理。Apache Paimon 是一款高性能的数据湖框架,支持流式和批处理,适用于实时数据分析。本文分享了巴别时代在构建基于 Paimon 的 Streaming Lakehouse 的探索和实践经验,包括示例代码和实际应用中的优势与挑战。
63 1
|
3月前
|
关系型数据库 MySQL 应用服务中间件
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
这篇文章介绍了如何在Windows 7系统上搭建PHP、MySQL和Apache环境,并部署ECShop项目,包括安装配置步骤、解决常见问题以及使用XAMPP集成环境的替代方案。
55 1
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
|
2月前
|
Apache
多应用模式下,忽略项目的入口文件,重写Apache规则
本文介绍了在多应用模式下,如何通过编辑Apache的.htaccess文件来重写URL规则,从而实现忽略项目入口文件index.php进行访问的方法。
|
3月前
|
Java 应用服务中间件 Apache
使用IDEA修改Web项目访问路径,以及解决Apache Tomcat控制台中文乱码问题
本文介绍了在IntelliJ IDEA中修改Web项目访问路径的步骤,包括修改项目、模块、Artifacts的配置,编辑Tomcat服务器设置,以及解决Apache Tomcat控制台中文乱码问题的方法。
208 0
使用IDEA修改Web项目访问路径,以及解决Apache Tomcat控制台中文乱码问题
|
4月前
|
数据可视化 数据挖掘 Java
深度挖掘数据,智慧决策,VeryReport报表软件引领数据分析新潮流
深度挖掘数据,智慧决策,VeryReport报表软件引领数据分析新潮流
|
3月前
|
关系型数据库 Linux 网络安全
"Linux系统实战:从零开始部署Apache+PHP Web项目,轻松搭建您的在线应用"
【8月更文挑战第9天】Linux作为服务器操作系统,凭借其稳定性和安全性成为部署Web项目的优选平台。本文以Apache Web服务器和PHP项目为例,介绍部署流程。首先,通过包管理器安装Apache与PHP;接着创建项目目录,并上传项目文件至该目录;根据需要配置Apache虚拟主机;最后重启Apache服务并测试项目。确保防火墙允许HTTP流量,正确配置数据库连接,并定期更新系统以维持安全。随着项目复杂度提升,进一步学习高级配置将变得必要。
329 0
|
6月前
|
存储 分布式计算 Apache
官宣|Apache Paimon 毕业成为顶级项目,数据湖步入实时新篇章!
Apache Paimon 在构建实时数据湖与流批处理技术领域取得了重大突破,数据湖步入实时新篇章!
3116 6
官宣|Apache Paimon 毕业成为顶级项目,数据湖步入实时新篇章!
|
5月前
|
Apache Windows
windows 一键安装apache服务器 windows傻瓜式安装apache2 web服务器管理软件
windows 一键安装apache服务器 windows傻瓜式安装apache2 web服务器管理软件
110 0