天天看點

“全”事件觸發:阿裡雲函數計算與事件總線産品完成全面深度內建

作者:史明偉(世如)阿裡雲進階技術專家

随着雲原生技術的普及和落地,企業在建構業務系統時,往往需要依賴多個雲産品和服務,産品互聯、系統協同的需求越來越強。事件驅動架構将事件應用于解耦服務之間的觸發和互動, 能夠幫助使用者很好實作産品、系統之間的互聯互動。函數計算作為事件驅動架構的最佳選擇,需要為使用者提供豐富的事件源觸發能力。

對于函數計算而言,事件源接入需要清晰地了解上遊每一個事件源的諸多細節和鑒權要求,同時事件處理和系統錯誤追蹤變得越加困難,內建效率成為阻礙産品能力的最大障礙。為了加速事件源內建的效率,函數計算需要找到一種統一标準的事件源接入方式,基于通用的接入層進行基礎能力和可觀測性的建設,為客戶提供豐富的事件源觸發選擇。

在這樣的背景和需求下,阿裡雲函數計算(Function Compute)和阿裡雲事件總線(EventBridge)産品完成全面深度內建。這意味着函數計算和阿裡雲生态各産品及業務 SaaS 系統有了統一标準的接入方式,意味着函數計算将具備接入 EventBridge 所有事件源的觸發能力,Serverless 函數計算将實作觸達阿裡雲全系産品服務的“最後一公裡”,為基于阿裡雲生态産品提供重要的架構擴充能力。

為什麼是 EventBridge?

阿裡雲事件總線(EventBridge)是一種無伺服器事件總線,支援将使用者的應用程式、第三方軟體即服務(SaaS)資料和阿裡雲服務的資料通過事件的方式輕松的連接配接到一起,這裡彙聚了來自雲産品及 SaaS 服務的豐富事件,EventBridge 具備事件标準化和接入标準化的能力:

  • 事件标準化:EventBridge 遵循業界标準的 CloudEvent 事件規範,彙聚了來自阿裡雲生态和 EventBridge 合作夥伴豐富事件源的各種事件,同時提供了完善的事件投遞機制和消費政策,整個系統事件流轉遵循統一的事件格式;
  • 接入标準化:函數計算選擇和 EventBridge 內建,無論是産品服務類型衆多的阿裡雲官方事件源,還是第三方 SaaS 系統,EventBridge 都能夠為函數計算和其它系統內建提供統一的內建界面,函數計算無需關注上遊事件源的具體實作細節,隻需要專注于事件處理,将事件的內建和投遞全部交給 EventBridge 來處理;

EventBridge  + Function Compute 的結合讓事件驅動型應用程式的建構變得簡單,因為它可以為您完成事件攝取和傳遞、安全保障、授權以及錯誤處理工作。允許您建構松散耦合和分布的事件驅動型架構,幫助提高開發人員靈活性和應用程式彈性。函數計算系統提供了完善的函數建立, 釋出和運作體系,靈活的建構能力結合極緻的運作時彈性能力将幫助業務建構雲原生時代最富顯著特征的事件驅動型架構。

“全”事件觸發:阿裡雲函數計算與事件總線産品完成全面深度內建
“全”事件觸發:阿裡雲函數計算與事件總線産品完成全面深度內建

同時,EventBridge 能夠提供來自事件源(例如 MQ、OSS、RDB等)的實時資料流,并将該資料路由到阿裡雲函數計算作為目标。您可以設定路由規則來确定發送資料的目的地,以便建構能夠實時響應所有資料源的應用程式架構。

函數計算 + EventBridge 帶來的變化?

提供 90+ 事件源接入

在和 EventBridge 內建之前, 函數計算已經實作了和阿裡雲部分核心系統的內建,随着函數計算 EventBridge 的深度內建,阿裡雲生态大量服務實作了和函數計算內建, 這些服務或産品的事件将作為事件源觸發函數;目前函數計算觸發器類型已經從原來的 15+ 增加到 90+,并随着 EventBridge 上遊接入系統的增加而不斷豐富;

控制台享受一站式服務

EventBridge 和函數計算控制台資料互通,使用者在 EventBridge 控制台能夠以事件為主體選擇函數計算作為事件處理目标,在 EventBridge 控制台享受一站式服務;同樣在函數計算控制台,使用者能夠根據不同觸發器類型根據對應的事件類型編寫函數;使用者無需在函數計算控制台和事件總線控制台來回跳轉;

保證資料一緻性和穩定性

使用者無論是在函數計算控制台上通過建立觸發器的方式處理指定事件源的事件;還是在 EventBridge 控制台使用函數計算作為事件處理目标,提供統一的資源視圖;同時在底層系統實作上,由于後端系統 API 的深度內建,能夠保證上層業務邏輯采用統一的 API 及處理邏輯,從技術層面確定了多個入口功能實作的一緻性,為客戶系統穩定運作奠定堅實的基礎; 

簡化資料消費投遞的複雜度

對于資料消費場景,EventBridge 負責了上遊系統的對接和資料消費,使用者無需關心事件源系統資料具體消費方式,這部分工作統一由 EventBridge 完成;對于函數計算使用者,隻需要考慮資料投遞的邏輯;使用者可以直接選擇 EventBridge 提供的下遊 Target 實作資料投遞,也可以在代碼層面僅使用 EventBridge 提供的 SDK 實作資料的投遞,大大簡化了資料投遞的複雜度。

觸發器業務應用場景

下面就讓我們一起探索, 實際的業務生産環境,我們如何利用這兩把利器讓這一切簡單的發生:

自動化營運分析和展示

業務系統會産生大量動态名額資料,需要提取名額資料做營運分析和展示,通過 EventBridge 和 FC 異步化串聯實作自動化營運分析和展示。傳統方案需要基于實時計算或者離線計算産品做資料提取和分析,整個方案較重,配置複雜。資料分析結果需要做預定義的展示渲染和推送,需要手工對接業務系統,步驟繁瑣。

采用新的 EDA 架構,采用 EventBridge 對接業務自定義事件資料,規則驅動過濾邏輯簡單。采用 FC 可以輕量化實作常見的資料分析操作,代碼編寫調試更簡單;同時利用EventBridge 豐富的推送能力,可以實作分析結果快速觸達閱聽人。

“全”事件觸發:阿裡雲函數計算與事件總線産品完成全面深度內建

異步解耦

以交易引擎為例,交易系統引擎作為最核心的系統,每筆交易訂單資料需要被幾十幾個下遊業務系統關注,包括物品批價、發貨、積分、流計算分析等等,多個系統對消息的處理邏輯不一緻,單個系統不可能去适配每一個關聯業務。結合 EventBridge 事件中心和函數計算靈活的邏輯擴充能力建構業務邏輯。

“全”事件觸發:阿裡雲函數計算與事件總線産品完成全面深度內建

新零售大促場景 Serverless + EDA 整合

大型新零售場景會伴随不定期大促,平時流量不大的業務在大促場景也會産生系統流量突增,極緻彈性和穩定解耦的架構至關重要。基于傳統模式開發穩定可靠、高彈性的背景服務人力不足、工期緊張;大促場景保障峰值流量需要預留大量資源,平時低峰期資源閑置浪費。新零售大促場景利用函數計算 + EventBridge + API 網關搭建 Serverless 模式服務中台,支撐海量請求通路, 系統具備極緻彈性,無需預留管理 IaaS 資源,極大程度降低閑置成本;同時函數計算提供靈活開發結合 EventBridge 低代碼異步驅動,業務疊代效率大幅提升。

“全”事件觸發:阿裡雲函數計算與事件總線産品完成全面深度內建
“全”事件觸發:阿裡雲函數計算與事件總線産品完成全面深度內建

總結

如果說事件背後的服務是阿裡雲生态服務的積木, 那麼 Serverless 函數計算将是能夠将這些積木通過輕巧的方式組合起來藝術化的最佳手段;你可以利用函數計算為這些積木塗上更絢麗的色彩,同時能夠将他們串聯起來,搭建一個具有無比想象空間的 SaaS/PaaS 服務藝術品。

EventBridge 觸發器現已在阿裡雲函數計算控制台所有地域(Region)開放,歡迎大家點選

此處

進行使用體驗!

關于觸發器具體建立,配置,參考阿裡雲函數計算官方幫助文檔:

https://help.aliyun.com/document_detail/146104.html