“全”事件觸發(fā):阿里云函數(shù)計(jì)算與事件總線(xiàn)產(chǎn)品完成全面深度集成
作者:史明偉(世如)阿里云高級(jí)技術(shù)專(zhuān)家
隨著云原生技術(shù)的普及和落地,企業(yè)在構(gòu)建業(yè)務(wù)系統(tǒng)時(shí),往往需要依賴(lài)多個(gè)云產(chǎn)品和服務(wù),產(chǎn)品互聯(lián)、系統(tǒng)協(xié)同的需求越來(lái)越強(qiáng)。事件驅(qū)動(dòng)架構(gòu)將事件應(yīng)用于解耦服務(wù)之間的觸發(fā)和交互, 能夠幫助用戶(hù)很好實(shí)現(xiàn)產(chǎn)品、系統(tǒng)之間的互聯(lián)互動(dòng)。函數(shù)計(jì)算作為事件驅(qū)動(dòng)架構(gòu)的最佳選擇,需要為用戶(hù)提供豐富的事件源觸發(fā)能力。
為什么是 EventBridge?
事件標(biāo)準(zhǔn)化:EventBridge 遵循業(yè)界標(biāo)準(zhǔn)的 CloudEvents 事件規(guī)范,匯聚了來(lái)自阿里云生態(tài)和 EventBridge 合作伙伴豐富事件源的各種事件,同時(shí)提供了完善的事件投遞機(jī)制和消費(fèi)策略,整個(gè)系統(tǒng)事件流轉(zhuǎn)遵循統(tǒng)一的事件標(biāo)準(zhǔn);
接入標(biāo)準(zhǔn)化:函數(shù)計(jì)算選擇和 EventBridge 集成,無(wú)論是產(chǎn)品服務(wù)類(lèi)型眾多的阿里云官方事件源,還是第三方 SaaS 系統(tǒng),EventBridge 都能夠?yàn)楹瘮?shù)計(jì)算和其它系統(tǒng)集成提供統(tǒng)一的集成界面,函數(shù)計(jì)算無(wú)需關(guān)注上游事件源的具體實(shí)現(xiàn)細(xì)節(jié),只需要專(zhuān)注于事件處理,將事件的集成和投遞全部交給 EventBridge 來(lái)處理;

同時(shí),EventBridge 能夠提供來(lái)自事件源(例如 MQ、OSS、RDB等)的實(shí)時(shí)數(shù)據(jù)流,并將該數(shù)據(jù)路由到阿里云函數(shù)計(jì)算作為目標(biāo)。您可以設(shè)置路由規(guī)則來(lái)確定發(fā)送數(shù)據(jù)的目的地,以便構(gòu)建能夠?qū)崟r(shí)響應(yīng)所有數(shù)據(jù)源的應(yīng)用程序架構(gòu)。
函數(shù)計(jì)算?+?EventBridge 帶來(lái)的變化
01、提供 90+ 事件源接入
在和 EventBridge 集成之前, 函數(shù)計(jì)算已經(jīng)實(shí)現(xiàn)了和阿里云部分核心系統(tǒng)的集成,隨著函數(shù)計(jì)算 EventBridge 的深度集成,阿里云生態(tài)大量服務(wù)實(shí)現(xiàn)了和函數(shù)計(jì)算集成, 這些服務(wù)或產(chǎn)品的事件將作為事件源觸發(fā)函數(shù);目前函數(shù)計(jì)算觸發(fā)器類(lèi)型已經(jīng)從原來(lái)的 15+ 增加到 90+,并隨著 EventBridge 上游接入系統(tǒng)的增加而不斷豐富;02
EventBridge 和函數(shù)計(jì)算控制臺(tái)數(shù)據(jù)互通,用戶(hù)在 EventBridge 控制臺(tái)能夠以事件為主體選擇函數(shù)計(jì)算作為事件處理目標(biāo),在 EventBridge 控制臺(tái)享受一站式服務(wù);同樣在函數(shù)計(jì)算控制臺(tái),用戶(hù)能夠根據(jù)不同觸發(fā)器類(lèi)型根據(jù)對(duì)應(yīng)的事件類(lèi)型編寫(xiě)函數(shù);用戶(hù)無(wú)需在函數(shù)計(jì)算控制臺(tái)和事件總線(xiàn)控制臺(tái)來(lái)回跳轉(zhuǎn);
03、保證數(shù)據(jù)一致性和穩(wěn)定性
對(duì)于數(shù)據(jù)消費(fèi)場(chǎng)景,EventBridge 負(fù)責(zé)了上游系統(tǒng)的對(duì)接和數(shù)據(jù)消費(fèi),用戶(hù)無(wú)需關(guān)心事件源系統(tǒng)數(shù)據(jù)具體消費(fèi)方式,這部分工作統(tǒng)一由 EventBridge 完成;對(duì)于函數(shù)計(jì)算用戶(hù),只需要考慮數(shù)據(jù)投遞的邏輯;用戶(hù)可以直接選擇 EventBridge 提供的下游 Target 實(shí)現(xiàn)數(shù)據(jù)投遞,也可以在代碼層面僅使用 EventBridge 提供的 SDK 實(shí)現(xiàn)數(shù)據(jù)的投遞,大大簡(jiǎn)化了數(shù)據(jù)投遞的復(fù)雜度。
觸發(fā)器業(yè)務(wù)應(yīng)用場(chǎng)景
下面就讓我們一起探索, 實(shí)際的業(yè)務(wù)生產(chǎn)環(huán)境,我們?nèi)绾卫眠@兩把利器讓這一切簡(jiǎn)單的發(fā)生:
01、自動(dòng)化運(yùn)營(yíng)分析和展示
業(yè)務(wù)系統(tǒng)會(huì)產(chǎn)生大量動(dòng)態(tài)指標(biāo)數(shù)據(jù),需要提取指標(biāo)數(shù)據(jù)做運(yùn)營(yíng)分析和展示,通過(guò) EventBridge 和 FC 異步化串聯(lián)實(shí)現(xiàn)自動(dòng)化運(yùn)營(yíng)分析和展示。傳統(tǒng)方案需要基于實(shí)時(shí)計(jì)算或者離線(xiàn)計(jì)算產(chǎn)品做數(shù)據(jù)提取和分析,整個(gè)方案較重,配置復(fù)雜。數(shù)據(jù)分析結(jié)果需要做預(yù)定義的展示渲染和推送,需要手工對(duì)接業(yè)務(wù)系統(tǒng),步驟繁瑣。
采用新的 EDA 架構(gòu),采用 EventBridge 對(duì)接業(yè)務(wù)自定義事件數(shù)據(jù),規(guī)則驅(qū)動(dòng)過(guò)濾邏輯簡(jiǎn)單。采用 FC 可以輕量化實(shí)現(xiàn)常見(jiàn)的數(shù)據(jù)分析操作,代碼編寫(xiě)調(diào)試更簡(jiǎn)單;同時(shí)利用 EventBridge 豐富的推送能力,可以實(shí)現(xiàn)分析結(jié)果快速觸達(dá)受眾。

02、異步解耦
以交易引擎為例,交易系統(tǒng)引擎作為最核心的系統(tǒng),每筆交易訂單數(shù)據(jù)需要被幾十幾個(gè)下游業(yè)務(wù)系統(tǒng)關(guān)注,包括物品批價(jià)、發(fā)貨、積分、流計(jì)算分析等等,多個(gè)系統(tǒng)對(duì)消息的處理邏輯不一致,單個(gè)系統(tǒng)不可能去適配每一個(gè)關(guān)聯(lián)業(yè)務(wù)。結(jié)合 EventBridge 事件中心和函數(shù)計(jì)算靈活的邏輯擴(kuò)展能力構(gòu)建業(yè)務(wù)邏輯。

大型新零售場(chǎng)景會(huì)伴隨不定期大促,平時(shí)流量不大的業(yè)務(wù)在大促場(chǎng)景也會(huì)產(chǎn)生系統(tǒng)流量突增,極致彈性和穩(wěn)定解耦的架構(gòu)至關(guān)重要。基于傳統(tǒng)模式開(kāi)發(fā)穩(wěn)定可靠、高彈性的后臺(tái)服務(wù)人力不足、工期緊張;大促場(chǎng)景保障峰值流量需要預(yù)留大量資源,平時(shí)低峰期資源閑置浪費(fèi)。新零售大促場(chǎng)景利用函數(shù)計(jì)算 + EventBridge + API 網(wǎng)關(guān)搭建 Serverless 模式服務(wù)中臺(tái),支撐海量請(qǐng)求訪問(wèn), 系統(tǒng)具備極致彈性,無(wú)需預(yù)留管理 IaaS 資源,極大程度降低閑置成本;同時(shí)函數(shù)計(jì)算提供敏捷開(kāi)發(fā)結(jié)合 EventBridge 低代碼異步驅(qū)動(dòng),業(yè)務(wù)迭代效率大幅提升。
總結(jié)
關(guān)于觸發(fā)器具體創(chuàng)建,配置,參考阿里云函數(shù)計(jì)算官方幫助文檔:

社區(qū)官網(wǎng)

Serverless Devs
http://www.serverless-devs.com/https://github.com/Serverless-Devs/Serverless-Devshttps://serverlessdevs.resume.net.cn/zh-cn/desktop/index.htmlhttp://serverlessdk.oss.devsapp.net/docs/tutorial-dk/intro/reacthttps://serverlessdevs.resume.net.cn/zhcn/cli/index.htmlhttps://serverlesshub.resume.net.cn/#/hubs/special-view
點(diǎn)擊原文,即可查看函數(shù)計(jì)算更多信息!