如何使用Camel构建混合多云事件网格?

该博客有关如何使用Camel构建混合多云事件网格。 在这一部分中,我将探讨什么启发了我进行演示,以及如何在结构上将所有内容组合在一起。 我将使用Red Hat OpenShift(Kubernetes)作为网格的平台。 然后使用Kafka作为主干来流式传输/持久化事件,最后但并非最不重要的一点是使用Apache Camel(在Red Hat Integration中)在Service Now,Amazon AWS,Microsoft Azure和Google Cloud Platform之间编织网格。

混合多云网络面临的挑战

我们采访的超过50%的CTO和架构师正在将至少部分工作负载转移到单个云或多个云中。毫不奇怪,大多数人还将拥有内部数据中心并购买SaaS服务。这让我开始思考,桥接和连接一切的可能方法是什么?尝试连接点时将面临哪些挑战?

从集成方面来看。随着在地理,数据中心和云中部署更多的应用程序,服务和功能,您将开始发现出现的问题:

服务孤岛:可能的原因可能是地理法规,公司如何组织团队,部署策略或特定于供应商的功能。无法有效地重复使用服务,仅是因为很难获得。甚至在不同的团队之间都不知道。

数据完整性:跨多云保持数据同步可能是一项挑战。事件驱动架构可以通过跨多个云同时简化实时事件来提供帮助,可以根据状态,请求或命令更改事件。为了实现最终的一致性,事件越快到达越广的范围,它可以实现的实时性就越高。

整合混乱:点对点太多可能会导致连接混乱。这肯定会影响为您的应用程序交付更改的速度。因为没有关于事件进行的方向和事件的订阅者的有组织的整体视图。

混乱的网络整合
混乱的网络整合

建立事件网格

Event Mesh
Event Mesh

网格中有许多组件,首先需要一个可靠的流平台,该平台能够处理高吞吐量的事件。在这里,我使用的是Red Hat的Kafka平台。在集群中,我们可以创建主题,每个主题负责特定类型的事件,例如,库存清除请求,订单状态或帐户的交易日志。要访问这些事件,您将需要一个连接器,这里我使用的是Camel,用于连接点和构建事件网格。从上图可以明显看出。拥有连接器可以使您的网格灵活!如果需要,您可以轻松地从网格中插入和拔出电源。 (当然,如果需要访问数据库或简单应用程序中的状态事件,则可以将某些连接器切换到Debezium。)

一旦建立了网格的基础,它将是最困难的部分。定义系统中需要的事件。域驱动设计(DDD)可以帮助您入门。确定域的上下文后,定义实体。这些实体是您要视为事件基础的位置。考虑一下您是否需要提供实体的状态更改?那可能是一个事件,那些对实体的查询请求呢?我是否需要合并实体以进行分析?在我的演示中,用例很简单,我有两个事件,一个是我从ServiceNow收集到的服务请求,第二个是将用于在Telegram中显示的结果事件。

示意图
示意图

一些无服务器工作负载

无服务器本身也是受事件驱动的,并非网格中的所有节点都需要7*24H全天候运行。 必须缩小连接器使其具有0个正在运行的实例的待机状态,这将优化云上的资源分配并降低运行网格的成本。我使一些连接器节点无服务器。 为了证明网格不仅是灵活的体系结构,而且在物理上和预算上都是友好的。

示例

Demo
Demo

演示首先创建一个连接器(Camel Quarkus),该连接器从ServiceNow收集事件任务,在收集的同时,它过滤并将传入的数据事件转换为较小的有效负载,以降低入口/出口成本。 然后,有效负载将被网格中的其他节点拾取,并将事件推送到AWS,Azure和GCP,具体取决于请求的类型。

对于Azure,我将事件发送到Eventhub(Azure中的流传输)和ServiceBus来触发Azure功能。 在AWS上,事件将发送到SNS,并将由Lambda函数接收。 最后,事件是通过pub / sub发送的,并由Google Cloud Platform上的Cloud函数使用。 我们将使用无服务器连接器(Kamelet)从每个云订阅任何结果通知。 当结果事件发生时,无服务器功能将按比例放大并将结果返回给电报。

我过去构建的技术栈非常简单。 OpenShift用于现场混合平台,Red Hat Integration用于设置基础流平台-Kafka,并使用Apache Camel构建连接器。

整合结构
整合结构
SO资源郑重声明:
1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!3187589@qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!

SO资源 » 如何使用Camel构建混合多云事件网格?