“全”事件觸發:阿里雲函式計算與事件匯流排產品完成全面深度整合
作者 :史明偉(世如)阿里雲高階技術專家
隨著雲原生技術的普及和落地,企業在構建業務系統時,往往需要依賴多個雲產品和服務,產品互聯、系統協同的需求越來越強。事件驅動架構將事件應用於解耦服務之間的觸發和互動, 能夠幫助使用者很好實現產品、系統之間的互聯互動。函式計算作為事件驅動架構的最佳選擇,需要為使用者提供豐富的事件源觸發能力。
對於函式計算而言,事件源接入需要清晰地瞭解上游每一個事件源的諸多細節和鑑權要求,同時事件處理和系統錯誤追蹤變得越加困難,整合效率成為阻礙產品能力的最大障礙。為了加速事件源整合的效率,函式計算需要找到一種統一標準的事件源接入方式,基於通用的接入層進行基礎能力和可觀測性的建設,為客戶提供豐富的事件源觸發選擇。
在這樣的背景和需求下,阿里雲函式計算(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
\