企业事件驱动架构指南

2020-12-10 02:09:41

企业严重依赖技术来构建可扩展,敏捷和高可用性的业务。事件驱动架构正在成为使现代企业实时运行,快速适应变化并做出明智业务决策的关键基石。

“事件驱动架构(EDA)是一种设计范例,其中软件组件响应收到一个或多个事件通知而执行。”

将敏捷方法论与可以快速响应实时事件的平台相结合,使企业能够做出手动或自动的智能决策,并实现真正的企业敏捷性。然后,可以利用从服务器到可穿戴设备的各种来源的事件来支持许多工业用例。

采用此类架构的大型组织需要将事件以及其API和业务服务视为其平台的一流公民。

本指南描述了事件驱动架构(EDA)如何使组织受益,采用基于OpenSource技术的EDA的逐步方法,可支持快速创新的敏捷实践以及一些实际用例。还将探讨Wipro的数字集成即服务(DIaaS)和Red Hat Integration如何支持组织采用事件驱动的体系结构。

拥抱事件驱动架构的企业可以利用可扩展且可靠的实时通信的优势。这可以帮助推动跨IoT,电子商务,跨系统,数据和应用程序的数据集成,边缘和财务欺诈检测等众多战略计划。

在其系统和应用程序中添加事件驱动的体系结构的公司可以提高应用程序的可伸缩性和响应能力。他们还可以访问更好的业务决策所需的数据和上下文,例如流处理,数据集成或网站活动跟踪。

事件是从一系列事件源中捕获的。从总体上讲,这些事件被分类为业务/功能或技术。

所有企业都以一种形式或另一种形式产生事件。他们可能只是没有一个可以利用这些事件来产生有形业务价值的系统。当企业开始采用EDA时,对于他们而言,在构建正确的体系结构时确定其特定要求很重要。这些事件可能跨越各种模式,例如实时事件和决策,流处理和复杂事件处理。

建立这样的事件平台以开始获取事件驱动的架构的好处可能很简单,但是像每一次旅程一样,拥有一张到达目的地的地图会有所帮助。以下指南概述了组织应考虑和考虑的事项,以及为建立可满足多种模式和业务要求的可靠EDA而应采取的措施。

将其视为参考架构,并根据每个组织的特定需求选择正确的元素和模式,这可以帮助构建新的用例并实现巨大的商业价值。

第一步解决构成事件网格运行时的核心技术组件。这包括摄取,排队,处理,存储和提供事件的技术。典型的大型企业可能具有一个或多个Pub-Sub Message Broker平台,事件流平台,云消息传递平台以及分布在各种技术和位置的事件消费者和生产者。这些平台往往位于筒仓中,不被视为统一事件网格的一部分。为了解决这个问题,组织应该:

确定围绕事件驱动架构的需求,这些需求可能存在于集成,应用架构和分析组中

制定计划以填补满足组织的事件处理要求所需的技术能力中可能存在的空白。

设置参考体系结构并定义模式的参考实现,例如用于管理跨多个数据库的逻辑事务和数据完整性,事件源和CQRS的模式。

该技术工具包可能是使用Kafka,JMS代理或消息代理或AMQ Interconnect来构建大规模消息网络的跨消息流的多个组件的组合。

Apache Kafka拥有坚如磐石且超快速的事件流主干,仍然是所有流用例的默认选择。它具有多种用途,包括活动跟踪,日志聚合,流处理,更改数据捕获,物联网(IoT)遥测等。 Red Hat AMQ Stream通过上游项目Strimzi使在Red Hat OpenShift上本地运行和管理Apache Kafka变得容易。

事件平台还需要处理框架,该框架提供处理样式,例如复杂事件处理(CEP),更常见的事件流处理样式,以及包括SQL在内的多层编程抽象,以查询快速移动的数据。处理框架还应该能够与机器学习框架集成以对模型进行评分。大多数流处理框架,包括AMQ Streams,都为所有这些编程模型提供支持。红帽决策管理器为CEP和做出明智的决策提供了坚实的基础。

大多数事件直接映射到业务概念,并且如果置于业务用户的手中,它们将是实现业务敏捷性的强大工具。用户界面允许用户根据时间窗内事件或事件组合的发生来定义处理规则,这将是业务敏捷性的重要杠杆。 Wipro DIaaS业务洞察力正是为了帮助您提供实时洞察力。

接收到事件后,它们需要由微服务进行消费和处理,以为组织带来业务价值。 Quarkus是超音速的亚原子Java,它是一种这样的运行时,它允许命令式和反应式(事件)编程范例的统一,它对消息传递具有强大的内置支持,非常适合构建需要高性能运行时的EDA微服务。

事件驱动的体系结构在无服务器环境中也起着重要的作用。无服务器应用程序可以响应需求,并根据需要自动缩放,可以通过事件驱动的执行模型进行。红帽OpenShift Serverless提供了企业级的无服务器平台,可在混合和多云环境中带来可移植性和一致性。

随着采用事件驱动的体系结构的规模不断扩大,其中发布和使用了数十个事件,因此拥有正式的实践和工具来管理事件的定义,设计,创建和使用就变得至关重要。这类似于API管理平台为API提供的功能。

一种界面定义语言,提供事件的数据结构以及使用该事件的机制,协议和位置URL的可读定义。诸如AsyncAPI之类的新兴标准提供了此功能。也有相关的努力来扩展Open API,以增加对事件驱动API的支持。事件的结构将引用并重用企业数据定义。

所有事件的可搜索注册表。与API一样,事件注册表为事件的元数据提供了可搜索的存储。注册表应能够按业务域对事件进行分类和组织,并允许事件所有者为其事件设置可见性规则和访问限制。

事件开发人员门户,其中包括上述注册表以及提供开发人员和事件所有者之间的协作,提供对文档,最佳做法,模板,客户端库等的访问的工具。

Wipro DIaaS事件中心提供上述功能,并与Red Hat Service Registry和Developer Portal集成,以提供事件和API管理平台的统一视图。它还提供了为每个事件关联AsyncAPI规范的支持。

下一步是建立统一的监视功能,以提供整个景观中已发布和使用的所有事件的视图。此统一控制台应为操作人员提供支持,以便(a)有效监视平台,(b)监视失败的事件,以及(c)编辑有效负载并再次从统一控制台在所有Message Broker中重新发布它们。

另一个关键功能是事件沿袭图的视图,该图显示了事件,其父事件及其子事件之间的联系。该图提供了跨多个服务和系统的整体事务的完整视图,这些服务和系统使用事件驱动的交互来协调其工作。当需要重新发布事件并检查此操作的下游副作用时,此功能也非常有用。

Wipro DIaaS事件中心提供上述监视和操作功能。它与Red Hat AMQ Streams和其他流行的基于JMS的消息传递平台集成,并可以对组织中的所有事件代理进行统一监视和管理。

红帽AMQ Streams还通过一套适用于AMQ Streams的Red Hat Operators框架,支持在Kubernetes平台上自动安装和配置。这些操作员负责部署和管理Apache Kafka群集,Kafka主题和Kafka用户。

传统上,客户非常依赖API,因为它们具有用于数据交换的标准接口,并且HTTP在开发人员中很流行。为了从EDA中获得收益,重要的是提供正确的工具和统一的开发人员平台,以帮助克服现有的技术限制并赢得开发人员。

让我们讨论一些建议,以便在旧有和未开发的架构中更快地采用事件。

确定业务驱动的用例,以创建将定义适当模式(例如简单事件,事件流,复杂事件处理)的试验。

从上一节中讨论的参考体系结构中选择正确的组件,以便根据业务需求构建合适的模式

通过内部支持和高水平的培训提供对体系结构,技术和流程的访问,从而使开发人员的采用变得容易。

使用参考体系结构中可用的技术工具包构建新的用例,以进一步加速业务转型并获得收益。

在Red Hat OpenShift容器平台上具有Red Hat AMQ的Wipro DIaaS为企业构建可靠,可扩展和分布式事件驱动的应用程序提供了一个可靠的平台,以实现快速的数字转换。 Red Hat AMQ是Red Hat Integration的一部分,它为数字集成带来了一个全面的开源云本机平台,以支持API管理,用于集成的Camel连接器,数据流和更改数据捕获等功能。当组织将其与Red Hat Process Automation结合使用时,他们可以更好地制定和控制事件管理,以构建高效而有弹性的EDA。

阿联酋航空NBD在Red Hat OpenShift上使用Red Hat Fuse和Apache Kafka支持实时银行业务和合作伙伴交互。

一位全球金融服务领导者实施了实时广告系列解决方案,该解决方案使广告系列转化率提高了约60%

一家全球物流提供商使用事件结构来提供其广泛的全球网络中货运的实时可见性

一家全球电子设备制造商使用基于事件的主动监视将服务维护呼叫的数量减少了45%。事件流分析有助于识别模式并确定警报响应的优先级。

一家欧洲银行使用事件驱动的体系结构来改善与客户的关系。基于轻量级事件总线的解决方案有助于使应用程序保持同步,并提供客户数据的单一视图,从而简化了客户体验。

在此处了解有关Wipro和Red Hat如何帮助客户进行数字现代化之旅的更多信息。 作者要感谢Wipro的Danesh Hussain Zaki对本文所做的有意义的贡献。 您在这里阅读了什么? 冰山一角。 您准备好成为兴奋的一部分了吗?