本文作者:abeizn
GitHub 地址:https://github.com/abeizn
Apache DevLake 是什么?
研发数据散落在软件研发生命周期的不同阶段、不同工作流、不同 DevOps 工具中,且标准化程度低,导致效能数据难以留存、汇集并转化为有效洞见。为了解决这一痛点,Apache DevLake 应运而生。Apache DevLake 是一款开源的研发数据平台,它通过提供自动化、一站式的数据收集、分析以及可视化能力,帮助研发团队更好地理解开发过程,挖掘关键瓶颈与提效机会。
Apache DevLake架构概述![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e701e636815ebd27c7f905070d67de8b.png)
- Config UI: 人如其名,配置的可视化,其主要承载 Apache DevLake 的配置工作。通过 Config UI,用户可以建立数据源连接,并实现数据的收集范围,部分数据的转换规则,以及收集频率等任务。
- Api Sever:Apache DevLake 的 Api 接口,是前端调用后端数据的通道。
- Runner:Apache DevLake 运行的底层支撑机制。
- Plugins:具体执行的插件业务,主要承载 Apache DevLake 的后端数据收集、扩展和转换的工作。除dbt插件外的插件产出 Apache DevLake 的预置数据,预置数据主要包括三层;
- raw layer:负责储存最原始的 api response json。
- tool layer:根据 raw layer 提取出此插件所需的数据。
- domain layer:根据 tool layer 层抽象出共性的数据,这些数据会被使用在 Grafana 图表中,用于多种研发指标的展示。
- RDBS: 关系型数据库。目前 Apache DavLake 支持 MySQL 和 PostgreSQL,后期还会继续支持更多的数据库。
- Grafana Dashboards: 其主要承载 Apache DevLake 的前端展示工作。根据 Apache DevLake 收集的数据,通过 sql语句来生成团队需要的交付效率、质量、成本、能力等各种研发效能指标。
目录结构Tree
├── api
│ ├── blueprints
│ ├── docs
│ ├── domainlayer
│ ├── ping
│ ├── pipelines
│ ├── push
│ ├── shared
│ ├── task
│ └── version
├── config
├── config-ui
├── devops
│ └── lake-builder
├── e2e
├── errors
├── grafana
│ ├── _archive
│ ├── dashboards
│ ├── img
│ └── provisioning
│ ├──