【行業資訊】TriggerMesh:開源事件驅動應用程式

譽天教育ict認證培訓 發佈 2024-03-05T05:36:20.215977+00:00

事件驅動的架構正在重塑產生信息的服務和使用信息的服務之間共享信息的方式。隨著軟體架構不斷從API驅動過渡到事件驅動,以及實時事件流不斷流行,空閒和等待數據的系統正變得越來越過時。隨著公司、項目和基礎設施的發展,對多雲實時數據流的需求也在增長。

事件驅動的架構正在重塑產生信息的服務和使用信息的服務之間共享信息的方式。隨著軟體架構不斷從API驅動過渡到事件驅動,以及實時事件流不斷流行,空閒和等待數據的系統正變得越來越過時。

隨著公司、項目和基礎設施的發展,對多雲實時數據流的需求也在增長。企業需要為DevOps工程師提供更簡單的工作流、測試完成時的實時警報,以及跟蹤不同軟體即服務(SaaS)應用程式之間的安全日誌。

在當今不斷增長的雲原生生態系統中,所有這些都是必要的,如果沒有開源工具或供應商鎖定的限制,它們很難找到。

TriggerMesh是一個無伺服器事件路由器,有一個簡單的主要目標:實時處理事件並將其路由到正確的使用者。這是一個多用途工具,有越來越多的用例。

TriggerMesh的開源集成平台為用戶提供了一個配置驅動的解決方案,Ansible、Chef和Terraform等基礎設施即代碼(IaC)產品的用戶會感到熟悉。它建立在Kubernetes之上,包括一個聲明性API,用於以編程方式將來自多個源的數據和服務快速連接到事件驅動的應用程式中。

消息使用來源包括AWS SQS、Google Pub/Sub、Azure Event Hub和Kafka。TriggerMesh過濾和轉換消息,將處理功能與無伺服器功能相結合,並將它們與連結Elasticsearch、AWS Simple Storage Service(S3)和Apache Kafka的消息sink連接起來。

TriggerMesh還連接到傳統服務總線,以在應用程式或數據匯與其他系統(如Azure data Lakes或Snowflake)之間創建工作流。

TriggerMesh的產品經理Jonathan Michaux表示:「人們通常會用它來觸發功能、服務或微服務。」

他補充道,TriggerMesh還可以在更大的流媒體生態系統中發揮作用,例如提供「處理事件的功能,並將其推送到Kafka等另一個系統,以便稍後進行進一步處理。」

為了快速進行比較,可以考慮亞馬遜的EventBridge。這一事件路由器於2019年推出,允許開發人員編寫規則,一旦亞馬遜S3存儲桶中發生事件,就可以採取行動。

TriggerMesh是開源的替代方案,提供類似的功能,不會導致供應商鎖定。最近,TriggerMesh推出了其最新的開源產品Shaker,該產品繼續推動更廣泛地採用TriggerMesh。Shaker刪除了Kubernetes的要求,並為TriggerMesh提供了在Docker上運行的功能。

開源提供了免於供應商鎖定的自由。這意味著TriggerMesh完全與雲無關,允許用戶在多個雲和預處理數據中心之間進行生產和使用。

Michaux說:「想想如果我們可以簡單地使用任何應用程式並通過事件將其連接起來,它會有多強大。你可以在任何Kubernetes集群或任何在OpenShift、亞馬遜、Azure或谷歌上擁有Docker的機器上,將其部署到想要的任何地方。」

軟體治理公司Fianu Labs的聯合創始人Michael Edenzon表示,TriggerMesh的雲無關「在讓開發人員更容易構建事件驅動的應用程式。」

案例研究和用例

組織是如何在其事件驅動架構中使用TriggerMesh的?這裡有兩個例子。

ManoMano:節省運行微服務的成本

ManoMano是一家總部位於歐洲的家居裝飾市場,是一家提供網絡和移動體驗的電子商務網站。它的許多業務需求需要數百個微服務。有了這麼大的代碼庫,它依賴於不同的性能測試。

通過將TriggerMesh添加到其堆棧中,ManoMano的站點可靠性工程(SRE)團隊現在擁有了正確的軟體工具,可以提供無伺服器事件體驗,允許測試開發人員在特定AWS事件發生時執行代碼,讓測試開發人員訂閱特定事件。

最近,ManoMano考慮其長期運行的微服務的幾個問題:它們是否需要長期運行並始終處於運行狀態?它們的使用是否證明了計算資源和相關成本的持續消耗是合理的?

答案是否定的,這促使該公司希望只在需要的基礎上運行服務。調查顯示,這些服務中的許多每天只處理少數請求,大部分時間都在閒置。

ManoMano用容器替換了長時間閒置的任務,這些容器按需調度以運行EKS以響應AWS S3事件。這要歸功於新的事件驅動架構,該架構從AWS服務收集事件,將它們接收到一個集中的代理中,並允許開發人員訂閱特定的事件以供使用。該平台將安全和基礎設施問題抽象化。

Fianu Labs:內部自動化軟體治理

Fianu Labs的全自動化、事件驅動的軟體治理工具在整個CI/CD過程中提供工具,並在整個軟體開發生命周期中捕獲事件,並將其與預定義的策略和自動化合規文檔進行比較。

TriggerMesh位於Google Kubernetes Engine with Knative之上,是Fianu架構的關鍵部分,貫穿其工作流。雖然沒有大規模運行,但Fianu需要冗餘和可靠性,同時支持200000個代碼存儲庫,大約每分鐘可分解為500到1000個事件。

Fianu Labs的Edenzon表示:「TriggerMesh工具和我們使用它的方式使我們能夠保持一個強大的、事件驅動的、整潔的系統。」

Fianu中典型的TriggerMesh工作流的一個示例從事件的接收開始。隨著事件的接收,Fianu使用TriggerMesh功能(Fianu採用嵌入式Python,但TriggerMesh也有Node.js和Ruby選項)對有效載荷進行轉換和計算。

Edenzon討論了將字符串更改為浮點值以確保傳入數據與策略一致的示例。可能有一個傳入的數據源,可能需要許多不同的輸出,TriggerMesh功能可以抽象出創建核心工具的需要。

他說:「在不創建無伺服器功能的情況下,我們可以嵌入TriggerMesh功能來執行一些業務邏輯。」

TriggerMesh Targets是Endezon指出的TriggerMesh功能的另一個方面。Targets允許Fianu的客戶在Fianu軟體的基礎上構建定製,因為它有助於處理複雜的事件目的地,通過抽象去往Kafka流或slack的事件的複雜性。

TriggerMesh不僅幫助Fianu開發人員,還幫助公司的客戶。Fianu為其最終用戶提供了許多開箱即用的功能,雖然該公司沒有提供特定的TriggerMesh工具,但由於TriggerMesh的高抽象級別,客戶可以用任何語言將自定義插件編寫為Knative功能,並將其加到運行的實例中,因為TriggerMesh將它們視為另一個事件處理器。

Edenzon說:「作為開發人員,如果我們只需要專注於業務功能,我們就會非常高效。這是我們喜歡TriggerMesh的地方之一。它讓我們很容易隔離和測試業務功能。」

嵌入SaaS應用程式

TriggerMesh使SaaS應用程式可以接收來自多個雲提供商的事件,轉換事件以匹配特定的模式,然後將這些事件發送到任何目的地。

Michaux說:「TriggerMesh使將新的事件源引入應用程式變得非常容易。B2B SaaS供應商可以擴展其應用程式的生態系統,同時讓開發團隊專注於核心產品。」

在網絡安全中,這意味著將不同的雲安全事件轉換為標準化架構,如最近宣布的開放網絡安全架構框架,然後將其發送到客戶首選的安全解決方案進行分析和威脅檢測。

這對安全社區的價值非常高。由於安全威脅是實時發生的,其價值不僅在於收集數據或集成應用程式,還在於在事件發生時對其進行處理。

Michaux說:「一個典型的例子是,有人試圖登錄系統失敗,例如Oracle或AWS這樣的雲提供商。這是威脅檢測系統感興趣分析的事件。TriggerMesh可以幫助接收事件,並以正確的格式實時將其發送到安全系統,而無需太多麻煩。」

結論

TriggerMesh是滿足需求並允許需求加速與技術交互的用例示例。它是開源的,唯一的要求是帶有新發布的Shaker的Docker,使採用變得更加容易。

Edenzon說:「通過正確的應用程式設計,當充分使用TriggerMesh時,它可以讓你隔離業務功能,不必擔心數據流向何處的機制,這樣你可以只關注業務功能。」

關鍵字: