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