TriggerMesh:开源事件驱动应用程序

事件驱动的架构正在重塑产生信息的服务和使用信息的服务之间共享信息的方式。随着软件架构不断从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时,它可以让你隔离业务功能,不必担心数据流向何处的机制,这样你可以只关注业务功能。”

原文链接:

https://thenewstack.io/triggermesh-open-sourcing-event-driven-applications/

ab5e7fd48d33786468d5399c01b9bb6e.jpeg

bbce2d64520b390f1f94387ad28a22dc.jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值