最近,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