最近, New Relic 开源了 El Dorado UI 项目,这是一个用来查询和可视化开发团队、项目以及微服务的 Sinatra 应用,这些数据都会存储到 Neo4J 图数据库中。El Dorado 是一个结构化的数据仓库,里面存储了 New Relic 所有的开发团队、项目以及微服务之间的关联关系。 Ward Cunningham 是 Wiki 的发明者,他在科罗拉多州丹佛市召开的 Explore DDD 会议上介绍了该项目的起源并阐述了它的功能。
El Dorado 是在 Upscale 项目之后诞生的,借助 Upscale 项目,New Relic 彻底改变了整个软件开发流程。在 100 多位工程师定义完新团队之后,他们会自行选择去哪里工作,从而形成了一种网状的关联关系,因此简单、层级式的组织结构图就无法描述这种关联关系了。另外,很重要的一点在于需要跟踪这些团队所创建的微服务。Cunningham 的同事 Andrew Ettinger 研究了 New Relic 的工程记录,并将该项目命名为 El Dorado,它的意思是存储宝藏的地方(El Dorado 原意指的是理想中的黄金国——译者注)。
图数据库非常适合存储团队之间的关联关系,El Dorado 用到的是 Neo4j 。他们会有一个每日运行的 ETL 进程,保证中心数据库的数据能够与多个上游数据源的数据保持同步。Cunningham 将其称为“结构化仓库”,意思是该仓库不仅仓储数据,还会存储结构。
El Dorado 的系统图,来源: https://github.com/newrelic/el-dorado-ui
El Dorado UI 的强大之处在于它能很容易地可视化组织中复杂的关联关系。用户可以使用封装好的查询,也可以使用 Neo4j 的 Cypher 查询语言编写自定义的临时查询(ad hoc),不管采用哪种方式都能看到查询结果的一个图形化展示。它会使用 GraphViz 的 Dot 符号来绘制 SVG 图片,不仅能够绘制简单的框图和线,还能绘制具有数十个实体的复杂图形。
就像 Cunningham 使用 El Dorado 的方式一样,能够有一个直观的界面可视化复杂的关联关系是非常有价值的。当我们有 5️个数据源时,会觉得这个工具很有用,有 15 个数据源时,会对它爱不释手,如果将数据源加倍的话,就会觉得这是必不可少的了。
关于 El Dorado 项目的更多信息,可以参考 Cunningham 的 Federated Wiki 页面。
查看英文原文: New Relic Releases El Dorado UI, a Web App for Visualizing a Neo4j Graph Database
评论