Ticketmaster每天使用Jaeger跟蹤1億筆交易

  • 2019 年 12 月 4 日
  • 筆記

作者:Orate.io

微服務和容器增加了Ticketmaster軟體系統的複雜性。它的工程師用Jaeger解決了調試問題。Jaeger是Uber在CNCF孵化的一個開源追蹤工具。

一目了然

Ticketmaster的軟體系統:

  • 每天有數十億的交易
  • 一些剩餘的單體
  • 300多項微服務(及其他服務)
  • 1000人負責產品和工程

問題:

  • 使用微服務高效地調試關鍵任務、產生收入的系統
  • 對開發者進行培訓,並快速使他們跟上系統架構的速度
  • 尋找用於調試的日誌聚合的替代方法,因為對於每天生成TB級日誌數據的並發系統來說,後者不會擴展

解決方案:

  • Jaeger跟蹤

結果:

  • 對三個地點由7個團隊運行的50個服務的完整可見性
  • 需要更少的團隊成員找到問題的根本原因
  • 加快新員工的入職速度,特別是加入隨叫隨到的員工

介紹

Ticketmaster Entertainment, Inc.是一家總部位於加州貝弗利山莊的票務銷售和分銷公司,業務遍及全球。它成立於1976年。2010年,它與Live Nation合併成為Live Nation Entertainment。

Ticketmaster的分散式軟體系統是每天處理數十億筆交易的高速公路。它由300多個微服務,以及其他類型的服務和單體應用程式組成。順利運營對其在線銷售平台和電話呼叫路由系統至關重要。延遲或錯誤很容易影響公司的門票銷售和收入。

挑戰

Ticketmaster團隊發現傳統的日誌記錄不足以監視和調試他們日益複雜的軟體系統。他們將單體服務分解成數百個微服務,將工作負載遷移到AWS雲,並部署到Kubernetes平台進行容器編排。這個系統的發展規模使團隊成員過去所處理的任何事情都相形見絀。他們應該如何讓所有這些不同的系統都可見,並在合理的時間範圍內修復問題?

與此相關的是為這個不斷發展的系統充分培訓員工的新挑戰,特別是在入職和隨叫隨到方面。不斷增長的業務在大舉招聘,並發現很難在不出現問題的情況下快速集成新的開發者。它還需要一個系統的最新可視化圖表,以幫助工程師了解系統的方位,並儘快開始編寫程式碼。

當Ticketmaster Engineering決定採用Jaeger進行端到端分散式跟蹤時,可以一石二鳥。

解決方案

以前,該公司利用自己的關聯id,使用日誌將系統中的點連接起來。然而,不斷增加的並發性要求一些能夠獨立響應和擴展的集中式軟體。Ticketmaster首席系統工程師Louis-Etienne Dorval記得,他意識到日誌不再是一個可行的解決方案。

「在每天攝入TB級日誌的情況下,有一個關鍵時刻,我們決定尋找替代方案。我過去常常查看一個20行長的日誌查詢,其中包含幾十個正則表達式(regular expression)、連接和搜索,這樣才可以用我們的關聯id,以有序的方式聚合來自10個服務的日誌。必須有更好的解決方案。」

Ticketmaster高級總監Kraig Amador著手尋找解決方案,幫助該公司將整個軟體系統可視化,並將這些點連接起來。

在仔細研究了市場上的選項之後,Ticketmaster團隊選擇了Jaeger跟蹤平台。

他們喜歡這個工具是開源的。這意味著他們可以準確地看到程式碼在做什麼,並且可以根據需要貢獻特性。此外,對於這樣規模的組織,採用昂貴的專有軟體可能是昂貴和費時的。在Jaeger的幫助下,他們可以在自己的基礎設施基礎上小規模起步,而無需預先作出重大承諾。

根據Amador:

「Jaeger的追蹤幫助我們實現了跨平台不同版本的可觀察性能力,以及它們如何相互集成,以及如何隨著時間的推移而發展。」

Ticketmaster首先檢測應用程式中的基礎設施層,從而更快地實現跨服務的一致可見性。隨之而來的還有一系列其他好處。

系統得到的好處

Jaeger旨在提供軟體系統的宏觀和微觀視角。

Ticketmaster的工程師對Jaeger及其可視化整個系統的能力感到興奮。現在,他們可以使用DAG視圖和Gantt Chart查看請求流,Gantt Chart中注釋了關於執行的SQL查詢、延遲資訊和跟蹤差異的資訊。Jaeger最近推出的Trace diffs在結構方面比較兩條軌跡。它強調了執行樹的差異,並在span圖的頂部使用顏色編碼系統。

抽樣是一種只記錄所有跟蹤的子集的技術,以保持存儲相關賬單的可管理性。Jaeger的遠程控制取樣(Remotely Controlled Sampling)允許中央配置和管理取樣策略。Ticketmaster依靠這個特性在運行時根據每個服務調整抽樣,這樣團隊就不需要每次都重新部署來調整抽樣。

Jaeger的自適應取樣(Adaptive Sampling )是一種先進的遠程控制取樣。它具有常規取樣所沒有的兩個獨特特性。a)保證低使用低QPS(Queries Per Second,每秒查詢次數)從服務端點收集最少的跟蹤;b)允許對每個端點上的抽樣策略進行細粒度控制,而不是基於服務級別或全局。

Jaeger集成了基於Kafka的攝取,因此用戶可以構建數據挖掘工具。例如,他們可以使用Apache Flink流作業,在跟蹤數據的基礎上構建實時服務圖,Ticketmaster已經對此進行了試驗。這在過去是不可能的,因為沒有其他技術可以複製由跟蹤捕獲的數據。

工作流得到的好處

Jaeger幫助Ticketmaster團隊快速地顯示正確的資訊。UI中有一些特性,比如「自定義標記鏈接」(「Custom Tag Links」),可以更容易地進行搜索。當出現停機時,它們可以定位顯示「產品程式碼」之類標記的跟蹤。點擊一個標籤就可以顯示該服務的資訊,比如誰在呼叫該服務,使用哪個Slack頻道,等等。這減少了問題出現時解決問題的時間。

由於Jaeger的幫助,Ticketmaster團隊成員的入職、工作流和隨叫隨到流程現在運行得更加順暢。它現在是工程師入職過程中不可或缺的一部分。它即時提供了系統和服務之間的依賴關係,幫助新員工理解系統體系結構。Jaeger正在成為一個不斷更新的組織系統地圖。

總結

Ticketmaster現在擁有超過50個測儀化服務和9組積極使用Jaeger的工程團隊。因此,該公司顯著改善了隨叫隨到的流程和結果。Louis-Étienne Dorval和整個團隊對隨叫隨到的流程和工作流程的滿意度迅速上升。

「在分散式系統中,常常存在一個相當複雜的服務調用鏈。使用Jaeger,隨叫隨到負責的工程師能夠找到問題的可能根本原因,而不需要聯繫負責鏈上每個步驟的開發者。例如,如果問題是由服務調用層次結構中的第5個服務引起的,Jaeger會將其可視化,並且隨叫隨到的工程師不需要呼叫任何人,只需要呼叫負責該服務的人。」

Ticketmaster認為,其他使用分散式系統的企業肯定也能從Jaeger中看到類似的好處。該團隊建議,考慮Jaeger的人,從總體上進行跟蹤,從小處著手,測量進展,邊走邊學。對Dorval來說,文化是關鍵。

「首先建立文化。從小事做起,讓人們參與進來,找出可能的傳播者,一步一步地前進,展示結果,並儘可能利用所學到的經驗教訓。」

Amador建議從業者歡迎將跟蹤作為在大規模運行軟體系統時不可或缺的工具。對於今天複雜的分散式IT,跟蹤、日誌和度量構成了一個強大的監視和調試三重奏。

「就像使用日誌和度量一樣,我從來沒有聽說過不進行跟蹤的好理由!」

感謝Yuri Shkuro。