Drasi是一種新型數(shù)據(jù)處理系統(tǒng),能夠簡(jiǎn)化對(duì)復(fù)雜基礎(chǔ)設(shè)施中關(guān)鍵事件的檢測(cè)流程,并根據(jù)業(yè)務(wù)目標(biāo)立即采取行動(dòng)。無(wú)論是在物聯(lián)網(wǎng)集成或是增強(qiáng)安全協(xié)議,亦或是管理復(fù)雜的應(yīng)用程序方面,企業(yè)開(kāi)發(fā)人員和軟件架構(gòu)師都可以在各種事件驅(qū)動(dòng)場(chǎng)景中使用這個(gè)功能。微軟Azure孵化團(tuán)隊(duì)非常高興地宣布,Drasi現(xiàn)已作為開(kāi)源項(xiàng)目對(duì)外提供,您可以掃描下方二維碼了解并使用Drasi。
#1 事件驅(qū)動(dòng)架構(gòu)
事件驅(qū)動(dòng)系統(tǒng)雖然在實(shí)現(xiàn)實(shí)時(shí)響應(yīng)和高效解耦服務(wù)方面功能強(qiáng)大,但在實(shí)際場(chǎng)景中也面臨諸多挑戰(zhàn)。隨著系統(tǒng)根據(jù)業(yè)務(wù)需求不斷擴(kuò)展,事件的頻率和復(fù)雜性逐漸增加,跨組件檢測(cè)相關(guān)變化可能變得極其復(fù)雜。此外,數(shù)據(jù)以不同的格式和孤立的數(shù)據(jù)孤島形式存儲(chǔ),進(jìn)一步增加了復(fù)雜性。確保這些系統(tǒng)中的實(shí)時(shí)響應(yīng)至關(guān)重要,但由于網(wǎng)絡(luò)延遲、擁堵或事件處理緩慢,可能會(huì)導(dǎo)致處理延遲。
目前,開(kāi)發(fā)人員很難建立事件處理機(jī)制,因?yàn)楝F(xiàn)有的庫(kù)和服務(wù)很少能提供端到端的、統(tǒng)一的變更檢測(cè)和響應(yīng)框架。開(kāi)發(fā)人員往往需要將多個(gè)工具拼湊在一起,才可以實(shí)現(xiàn)所需功能,而這也帶來(lái)了一個(gè)問(wèn)題,就是架構(gòu)復(fù)雜、脆弱,難以維護(hù)和擴(kuò)展。例如,現(xiàn)有解決方案可能依賴低效的輪詢機(jī)制,或需要不斷查詢數(shù)據(jù)源,這就會(huì)導(dǎo)致性能瓶頸和資源消耗增加。此外,許多變更檢測(cè)工具采用批處理、數(shù)據(jù)整理或延遲事件分析,缺乏真正的實(shí)時(shí)功能。這對(duì)于需要依靠實(shí)時(shí)數(shù)據(jù)立即做出響應(yīng)的企業(yè)來(lái)說(shuō),即使是輕微的延遲也可能導(dǎo)致錯(cuò)失良機(jī)或帶來(lái)風(fēng)險(xiǎn)。
簡(jiǎn)而言之,企業(yè)迫切需要一種全面的解決方案來(lái)檢測(cè)并準(zhǔn)確解讀關(guān)鍵事件,并自動(dòng)做出適當(dāng)且有價(jià)值的響應(yīng)。
#2 Drasi為事件驅(qū)動(dòng)系統(tǒng)而生
Drasi簡(jiǎn)化了動(dòng)態(tài)系統(tǒng)中智能反應(yīng)的自動(dòng)化過(guò)程,能夠在無(wú)需傳統(tǒng)數(shù)據(jù)處理的情況下,提供實(shí)時(shí)可操作的洞察。它采用輕量級(jí)方法,通過(guò)觀察日志和變更源中的事件來(lái)跟蹤系統(tǒng)變化,無(wú)需將數(shù)據(jù)復(fù)制到中央數(shù)據(jù)湖或反復(fù)查詢數(shù)據(jù)源。
應(yīng)用開(kāi)發(fā)人員使用數(shù)據(jù)庫(kù)查詢來(lái)定義需要跟蹤的變更,并通過(guò)邏輯條件來(lái)評(píng)估變更數(shù)據(jù)。然后,Drasi判斷是否有任何變更觸發(fā)了查詢結(jié)果集的更新。如果有,它將根據(jù)業(yè)務(wù)需求執(zhí)行基于上下文的響應(yīng)。這個(gè)簡(jiǎn)化的流程降低了復(fù)雜性,確保在數(shù)據(jù)最相關(guān)時(shí)能夠及時(shí)采取行動(dòng),并防止重要變更被忽略。該流程由Drasi的三個(gè)組件執(zhí)行:數(shù)據(jù)源、持續(xù)查詢和響應(yīng)。
數(shù)據(jù)源(Sources)——連接到系統(tǒng)中的各種數(shù)據(jù)源,持續(xù)監(jiān)控關(guān)鍵變化。數(shù)據(jù)源可跟蹤應(yīng)用程序日志、數(shù)據(jù)庫(kù)更新或系統(tǒng)指標(biāo),并實(shí)時(shí)收集相關(guān)信息。
持續(xù)查詢(Continuous Queries)——Drasi使用持續(xù)查詢來(lái)替代手動(dòng)的定點(diǎn)查詢,根據(jù)預(yù)定義的標(biāo)準(zhǔn)不斷評(píng)估傳入的變化。這些查詢使用Cypher查詢語(yǔ)言編寫(xiě),能夠在不需要預(yù)先整理數(shù)據(jù)的情況下整合多個(gè)數(shù)據(jù)源的信息。
響應(yīng)(Reactions)——當(dāng)持續(xù)查詢完成變化評(píng)估時(shí),Drasi會(huì)執(zhí)行已注冊(cè)的自動(dòng)化響應(yīng)。這些響應(yīng)可以發(fā)送警報(bào)、更新其他系統(tǒng)或執(zhí)行修復(fù)步驟,所有操作都是根據(jù)您的運(yùn)營(yíng)需求量身定制
Drasi的架構(gòu)設(shè)計(jì)在兩個(gè)集成點(diǎn)(Sources和Reactions)上實(shí)現(xiàn)了可擴(kuò)展性和靈活性。除了目前可用的預(yù)構(gòu)建Drasi源和響應(yīng)(包括PostgreSQL、Microsoft Dataverse和Azure Event Grid)外,您還可以根據(jù)業(yè)務(wù)需求或系統(tǒng)要求創(chuàng)建自己的集成。這種多樣性使得Drasi能夠輕松適應(yīng)和定制特定環(huán)境。
#3 探索Drasi GitHub代碼庫(kù)
為了展示Drasi的實(shí)際應(yīng)用,我們來(lái)看一個(gè)近期構(gòu)建的解決方案,該方案將根據(jù)車隊(duì)車輛的連接遙測(cè)數(shù)據(jù)進(jìn)行分析,從而為業(yè)務(wù)運(yùn)營(yíng)提供支持。以前的解決方案需要跨多個(gè)系統(tǒng)進(jìn)行集成,需要查詢車輛及其維護(hù)記錄的靜態(tài)數(shù)據(jù),批量處理車輛遙測(cè)數(shù)據(jù)并將其與靜態(tài)數(shù)據(jù)結(jié)合,最后觸發(fā)警報(bào)?,F(xiàn)在,Drasi簡(jiǎn)化了這一過(guò)程,它作為唯一的組件對(duì)變更做出檢測(cè)并自動(dòng)執(zhí)行響應(yīng)。
在該解決方案中,單個(gè)Drasi實(shí)例使用了兩個(gè)不同的數(shù)據(jù)源:一個(gè)連接到Microsoft Dynamics 365用于收集維護(hù)記錄,另一個(gè)連接到Azure事件中心(Azure Event Hubs)用于獲取遙測(cè)數(shù)據(jù)流。兩個(gè)持續(xù)查詢分別根據(jù)預(yù)測(cè)的計(jì)劃保養(yǎng)維修標(biāo)準(zhǔn)(例如,車輛將在接下來(lái)的30天內(nèi)完成1萬(wàn)英里的行駛里程)和需要立即處理的關(guān)鍵警報(bào)來(lái)評(píng)估遙測(cè)事件。根據(jù)這些持續(xù)查詢的結(jié)果集,Dynamics 365 Field Service的單個(gè)響應(yīng)會(huì)發(fā)送信息,生成關(guān)鍵事件的物聯(lián)網(wǎng)警報(bào),或通知車隊(duì)管理員車輛即將達(dá)到保養(yǎng)時(shí)間點(diǎn)。
另一個(gè)示例展示了Drasi在智能樓宇管理中的實(shí)際應(yīng)用。設(shè)施管理員通常使用儀表板來(lái)監(jiān)控樓宇的舒適度,并需要在出現(xiàn)偏差時(shí)發(fā)出警報(bào)。借助Drasi,管理員可創(chuàng)建一個(gè)準(zhǔn)確的儀表板,輕松查看樓宇舒適度數(shù)據(jù)。樓宇空間被定義為Microsoft Azure Cosmos DB數(shù)據(jù)庫(kù)中的記錄,該數(shù)據(jù)庫(kù)存儲(chǔ)了變化的更新數(shù)據(jù)。Drasi的數(shù)據(jù)源讀取Azure Cosmos DB數(shù)據(jù)庫(kù)的變更日志,并將這些變更數(shù)據(jù)傳遞給持續(xù)查詢,這些查詢計(jì)算各個(gè)房間的舒適度,并提供整個(gè)樓層和建筑的匯總值。響應(yīng)接收到持續(xù)查詢的輸出,并直接驅(qū)動(dòng)基于瀏覽器的儀表板從而實(shí)現(xiàn)數(shù)據(jù)更新。
為了展示Drasi如何為企業(yè)帶來(lái)益處,以下是我們的預(yù)覽合作伙伴Netstar提供的反饋。Netstar系統(tǒng)處理大量的車隊(duì)監(jiān)控和管理數(shù)據(jù),并為客戶提供有價(jià)值的實(shí)時(shí)洞察。
我們相信Drasi對(duì)我們的產(chǎn)品和客戶具有重要價(jià)值。該平臺(tái)的靈活性表明它可以適應(yīng)各種使用場(chǎng)景,例如提供關(guān)于客戶車隊(duì)的最新信息,以及提醒Netstar注意我們自身環(huán)境中的運(yùn)營(yíng)問(wèn)題。Drasi的靈活性使我們能夠簡(jiǎn)化和優(yōu)化我們的分析和軟件架構(gòu)。我們期待繼續(xù)嘗試使用Drasi,并向Drasi團(tuán)隊(duì)提供反饋。
——Daniel Joubert
Netstar總經(jīng)理
#4 Drasi:一種全新類別的數(shù)據(jù)處理系統(tǒng)
在不斷發(fā)展的系統(tǒng)中管理變化并不一定是一項(xiàng)復(fù)雜、容易出錯(cuò)的任務(wù)。通過(guò)整合多個(gè)數(shù)據(jù)源、持續(xù)監(jiān)控相關(guān)變化并觸發(fā)智能自動(dòng)響應(yīng),Drasi簡(jiǎn)化了整個(gè)流程。我們無(wú)需構(gòu)建復(fù)雜的系統(tǒng)來(lái)檢測(cè)變化、管理大型數(shù)據(jù)湖,或在現(xiàn)有生態(tài)系統(tǒng)中整合現(xiàn)代檢測(cè)軟件。Drasi化繁為簡(jiǎn),讓您的系統(tǒng)高效運(yùn)行,讓您的業(yè)務(wù)保持敏捷。
我很高興地與大家分享,Drasi已作為沙盒項(xiàng)目提交給云原生計(jì)算基金會(huì)(CNCF)。這意味著如果被接受,它將受益于CNCF社區(qū)的指導(dǎo)、支持、管理、最佳實(shí)踐和資源。微軟致力于通過(guò)為云和邊緣應(yīng)用創(chuàng)建開(kāi)放、靈活的技術(shù),使開(kāi)發(fā)人員能夠在任何平臺(tái)上、使用任何語(yǔ)言構(gòu)建應(yīng)用程序。Azure孵化團(tuán)隊(duì)定期推出Dapr、KEDA、Copacetic和最近的Radius等云中立和開(kāi)源項(xiàng)目,為實(shí)現(xiàn)這一目標(biāo)做持續(xù)做出貢獻(xiàn)。這些項(xiàng)目都可以在GitHub上找到,并且是CNCF的一部分。
我們相信,我們的最新成果Drasi將成為云原生領(lǐng)域的重要組成部分,并幫助推動(dòng)云原生技術(shù)的發(fā)展。
#5 立即體驗(yàn)Drasi
作為一個(gè)開(kāi)源項(xiàng)目,Drasi采用Apache 2.0許可授權(quán),體現(xiàn)了微軟在技術(shù)社區(qū)中推動(dòng)創(chuàng)新與合作的承諾。我們歡迎開(kāi)發(fā)人員、解決方案架構(gòu)師和IT專業(yè)人士共同構(gòu)建和改進(jìn)Drasi。您可以參考以下資源,開(kāi)始使用Drasi:
-Drasi(https://github.com/drasi-project)
-Drasi.io(https://drasi.io/)
-Discord(https://discord.com/invite/gpPeyKcH)