Categories
程式開發

eBay 管理龐大服務架構的新方法


導讀: 知識圖譜最早是由Google 提出來的,又稱語義網,用來描述真實世界中存在的各種實體或概念及其關係,構成一張巨大的語義網絡圖,結點表示實體或概念,邊由屬性或關係構成。 Google 最早搞知識圖譜是為提高搜索結果的質量。知識圖譜是一種特殊的圖數據,由 或者 三元組構成。知識圖譜中每個結點都有若干個屬性及其屬性值,實體與實體之間的邊表示結點​​之間的關係,邊的指向表示關係的方向,邊上的標記表示關係的類型。從一開始的 Google 搜索,到現在的聊天機器人、大數據風控、證券投資、智能醫療、自適應教育、推薦系統,無一不跟知識圖譜相關。它在技術領域的熱度也在逐年上升。今年以來,InfoQ 曾策劃了不少關於知識圖譜的文章。今天我們分享一篇文章,講解了 eBay 是如何使用知識圖譜來管理龐大服務架構的思路。

在服務架構中管理並理解龐大的生態系統是一項不小的挑戰:試想在其生產系統中,有超過 3000 個服務應用集群,這對 eBay 而言尤其如此。每個應用都獨立發展,各自具有不同的功能和開發方法。而文檔的缺乏以及對內部客戶沒有正確的理解,可能會阻礙高效的開發。

eBay 的願景(被稱為 INAR,智能架構)是通過提供自動化的可見性、評估和治理智能(Governance Intelligence)來構建可持續的服務架構。為此,我們開發了一種新的方法,使用知識圖譜對應用程序生態系統進行建模和處理。

譯註: 治理智能(Governance Intelligence,GI),由 Francis Ohanyido 博士提出,主要是指利用信息和通信技術應用和技術來識別、提取、分析和描述治理數據。

知識圖譜是一個常用術語,但它的確切定義一直備受爭議。基本上來講,知識圖譜是一種可編程方式,使用主題內容專家、相互關聯數據和機器學習算法對知識領域進行建模。對於 eBay 來說,應用程序 / 基礎架構知識圖譜是一種異構屬性圖,可以提高架構的可見性、運營效率和開發人員的生產力,最終使客戶在訪問網站時能夠獲得更好的體驗。

本文將解釋 eBay 架構知識圖譜是如何開發的,eBay 從中獲得了什麼好處,以及我們現在和將來看到的這種方法的用例。

三大挑戰

智能架構的願景旨在解決服務架構的三個關鍵挑戰:

  • 盲目性: 架構問題可能很難觀察到,例如軟件和 / 或硬件的不適當的依賴關係;或設想一下 eBay 的基礎架構和生態系統,以及定制搜索。這是一個問題,因為流行的軟件和服務經常演變,並趨於單一,導致服務冗餘和功能重複。
  • 無知性: 缺乏服務架構或技術債務的可測性(採取更簡便的前期方法時所需的額外返工,從長遠來看會更糟糕),可能會阻礙你開發提高運營效率所需的度量。正如管理學大師 Peter Drucker 的名言:“沒有測定就沒有管理。”(If you can’t measu re it, you can’t improve it.
  • 原始性: 診斷、工程和運行時自動化都不存在。因此,人工智能無法應用於 IT 運營,從而難以發現運營中的異常情況。

eBay 管理龐大服務架構的新方法 1

很明顯,如果要滿足 1.83 億買家的需求,就需要對我們的生態系統有一個更清晰的了解。我們的目標是提供更好的可見性,提供模式 / 異常檢測,以及自動化和增強 IT 運營。這使我們產生了使用知識 / 屬性圖的想法。

建立鏈接:行為度量和智能分層

圖是使用實時度量、業務特性和運營元數據構建的。最終,圖的目的是鏈接數據源並打破孤立的管理域之間的界限。以下是較高層次的描述:

eBay 管理龐大服務架構的新方法 2

開發知識圖譜的第一步,是計算最佳的應用程序度量,並應用機器學習算法以自動對應用程序進行聚類。我們開發了基於實時流量和運行時依賴關係來度量應用程序受歡迎程度的指標。

我們計算了所有 eBay 集群的度量,並使用稱為 K- 平均(K-means)和 Canopy 聚類的技術對所有服務進行聚類,然後基於它們的流行度評分。這使我們能夠將生態系統組成不同的類別,比如它們的活躍程度。我們發現了 77% 的聚類被標記為低活性。

看得見的理解:圖搜索與結果可視化

我們使用知識圖譜的目標之一,就是提高開發人員的生產力,使他們能夠更有效地檢索所需的信息。目前,開發人員必須通過許多工具來接受所需的信息。

為了提高生產效率,我們構建了一個完整的批處理系統,從不同的來源獲取數據,並自動構建知識圖譜。我們還構建了智能圖搜索,它動態生成一個查詢來探索知識圖譜,包括服務度量和智能分層。下面的數據模式是在應用程序(池)級設計的,帶有粗體或黑色邊框的框,將作為第一個 “baby” 步驟啟用:

eBay 管理龐大服務架構的新方法 3

通過連接雲原生數據、硬件、人員、代碼和業務,我們對生態系統有了更好的了解。可視化以一種可以快速理解和操作的方式,提供了豐富的信息。在以下服務依賴關係示例中:我們隨機選擇了 18 個服務,並通過默認方法之一將它們可視化。在下圖中,邊框厚度表示邊的屬性(體積),節點大小表示行為度量。不同的顏色代表團隊或組織(例如,黃色表示一個域團隊)。

eBay 管理龐大服務架構的新方法 4

eBay 依賴系統 “Galaxies” 採用了概念證明(Proof of Concept,POC),現在,圖模式擴展如下:

eBay 管理龐大服務架構的新方法 5

識別低效率

我們計算了 3000 多個 eBay 生產集群中的度量和智能服務。三位高級架構師手動驗證了流行度度量和自動聚類的初始結果。

研究結果令人驚訝,但也提供了很多信息。大約 10% 的高活動應用程序在不准確的可用性區域下運行,這可能會影響運營性能和正常運行時間。

對於 eBay 來說,知識圖譜已經成為一個重要的工具(Galaxies),它使我們能夠提供可定制的可視化、應用度量、智能分層和圖搜索。

該系統提供了應用程序的自頂向下和自底向上的視圖,以及依賴關係和更高的準確性;豐富數據以加強應用程序的合規性;具有清晰的所有權細節的治理;以及運營績效的建議。

接下來,我們計劃通過在圖上顯示每個事件的全部因果關係細節來增強圖,以支持站點異常檢測(這是一項初始工作)。

我們還計劃擴展此圖,以包含服務 API 元數據,這將使服務分層、推薦和聚類成為可能。知識圖譜有望成為了解我們的生態系統和滿足客戶對持續更快、更好服務的期望的關鍵工具。

作者介紹:

本文作者為 Ha​​nzhang Wang、Chirag Shah 和 Sanjeev Katariya。

原文鏈接:
eBay’s New Approach to Managing a Vast Service Architecture