最近,eBay 分享了他們在采用管道驅動的自動化解決方案方面的進展。該解決方案讓他們能夠實現對其框架和基礎設施的持續更新。該解決方案的架構有可能變得更加通用,因為它采用了可插拔和松散耦合的方式,提供了良好的可擴展性。
eBay 的平臺包括兩個關鍵組件:作為應用程序代碼基礎的框架和負責托管應用程序的云基礎設施。通過利用自動化解決方案,eBay 簡化了作業的準備、執行和驗證過程,從而顯著提高了生產率。
在這個龐大而復雜的市場中,存在各種類型的升級,例如框架升級、框架遷移和云遷移。由于平臺的規模和復雜性,這些升級在持續地發生,這也說明了 eBay 系統在不斷演化和增強。
我們以一個特定的云遷移案例為例。在這個案例中,我們需要將云基礎設施從依賴虛擬機的 Openstratus 遷移到基于容器技術的 Kubernetes。這個遷移對應用程序開發生命周期有所影響,因為它涉及從基于庫的清單方法到基于鏡像的清單方法的轉換。要完成這種類型的遷移,通常需要完成定義好的一系列任務,包括元數據收集、配置工作負載、遷移網絡拓撲和流量、創建新實例、實現監控,以及停用以前基于虛擬機的資源池。
只依賴單獨的腳本或自動化工具可能不足以確保平臺級變更的質量。因此,eBay 團隊為他們的自動化解決方案設想了一些特定的功能,包括要求每個工作流包含多個任務,每個任務與生態系統進行無縫交互以執行必要的操作。此外,還需要對工作流任務進行有效的管理和編排,確保自動化框架里的操作能夠順利執行。
該解決方案的架構如下圖所示:
圖片來源:https://tech.ebayinc.com/engineering/ebays-common-automation-solution-for-platform-evolution/
架構包含了兩個主要組件:編排器和可插拔管道。編排器負責根據輸入來確定流,并相應地執行預定義任務。在執行流時,編排器確保任務上下文的持久化,可以在下一個任務執行之前對其進行恢復。然后,編排器利用 Quartz 作為任務調度引擎對任務進行順序處理。
在編排器啟動期間,會有一個流管理器來預加載流定義并激活負責編排任務執行的任務監聽器。此外,流管理器還支持任務重試或在必要時跳過特定任務等功能。編排器的內部功能如下所示:
圖片來源:https://tech.ebayinc.com/engineering/ebays-common-automation-solution-for-platform-evolution/
之前已經報道了 eBay 開始使用契約測試來安全地演化內部 API 和滿足客戶端團隊的需求。
eBay 的平臺演進涉及可重用任務和組件,包括可以跨不同流共享的強化通用任務。平臺團隊認為,他們基于管道的自動化解決方案將是支持未來基礎設施和框架升級的關鍵能力。
-
自動化
+關注
關注
29文章
5620瀏覽量
79526 -
應用程序
+關注
關注
38文章
3292瀏覽量
57835
原文標題:eBay的平臺自動升級解決方案
文章出處:【微信號:AI前線,微信公眾號:AI前線】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論