品高企业身份管理平台(BingoIAM)是全方位管控用户、设备、应用、资源的访问与授权、实现企业全场景身份治理的身份安全平台。
作为企业信息化基础设施建设的身份安全基石,IAM在运行过程中通常会发生成千上万的事件(如:用户登录、员工入职、角色授权等),由此产生的数据量是成倍增长的。
BingoIAM事件自动化解决方案旨在基于IAM实时、持续的数据流,将产生的不同事件进行管控、分发和响应,为BingoIAM企业身份治理、应用数据策略、安全风险管控等场景提供价值。
BingoIAM事件自动化是基于事件驱动架构(EDA,Event-Driven Architecture)和可视化事件编排技术的下一代身份领域业务策略和数据策略的解决方案。
本文我们将从核心原理出发,进一步介绍如何基于原理进行技术选型与实现,最终呈现整体架构设计,全面阐述事件自动化解决方案如何为IAM赋能。
EDA事件驱动架构
EDA事件驱动架构(Event-Driven Architecture)是一种异步架构模型,是BingoIAM事件自动化解决方案的基础架构模型,其核心能力在于能够时刻收集系统重要业务产生的数据,并将这些数据以及描述数据的元信息作为纽带,推送至各个应用,应用根据其自身业务需求针对该事件定制灵活的响应,从而实现不同应用系统的异步解耦。
如上图EDA事件驱动架构所示,有几个主要组成部分:
>>事件:在EDA中,我们把关键业务时刻产生的数据以及描述数据的元数据称为“事件”,各个业务系统可以定义其专属的业务事件语义。
>>事件Schema:事件的格式定义,它描述了事件体的数据格式和类型,以实现跨异构系统之间的可靠数据交换。
>>事件源:事件的定义方和提供方,它需根据BingoIAM提供的规范接口定义事件Schema、触发事件并推送至事件处理器。事件源可以是业务应用/服务、MQ等中间件,也有可能是某个流程编排。
>>事件处理器:事件处理器是对事件流的过滤、转换、路由的组件,我们基于SQL-native的流处理模型来实现事件处理器,下文对其进行详尽描述。
>>事件目标:事件的响应方,最终消费事件的一方,一般事件目标会根据自身业务需求对事件进行相应的响应。同样的,事件目标可以是业务应用/服务、MQ等中间件,也有可能是流程编排引擎。
SQL-native的流处理模型
流处理是对实时变化的数据进行处理,换句话说,就是能够实时接收数据流并利用定义好的算子对每个经过的数据进行即时处理。而SQL-native的流处理模型,是指基于标准SQL接口的能力,将声明式SQL转换成一系列流算子,来支持流处理作业的创建和运行。
示例说明
下面以“实时统计租户在线用户数”为例,展示SQL-native流处理模型将声明式SQL语言转换成一系列流算子以及流处理的过程:
1.定义“用户上线”事件,其中online_events为“用户上线事件表”,user_id为上线用户的ID,tenant_id为上线用户所属租户的ID。
2.创建流计算任务,用于实时计算租户的在线用户数,且在线用户数大于1。
3.将SQL接口转换为算子树。
4.模拟用户上线以及用户下线操作
5.实时数据流处理:在SQL-native的流处理模型中,任何一个算子的输入和输出都一定是有特定结构(Schema)的关系(Relation)。我们用一系列的INSERT和DELETE操作流程来表示增量变更,所有算子的输入和输出都是关系(Relation)的变更。上面的例子在增量变更的计算模型如下图所示,“+”代表INSERT,“-”代表DELETE,基表online_events的变更经过一个个算子,计算出目标的变更流。
流程编排引擎
事件编排技术是一种自动化工具,它通过定义一系列事件和相应的响应动作来管理复杂的工作流程。其中,事件的触发可以导致一连串动作的执行,这些动作可以是顺序的、条件的或是并行的。事件编排通常用于集成不同的系统和服务,确保它们能够协同工作,自动响应特定的事件或触发条件。
总的来说,事件编排主要有以下三种场景:
>>事件驱动编排:指一个编排的启动是由特定的事件触发的,当编排引擎检测到该事件时,相应的编排会自动开始执行。
>>编排驱动事件:指编排在执行过程中会触发特定的事件,这些事件经常是编排中的关键业务时刻,用于通知其他系统组件或服务,或者作为进一步操作的信号。
>>事件回调编排:指运行中编排在等待某个事件时挂起,当该事件被触发时,会通过回调机制来恢复或继续执行编排流程。
这三种场景并不只会单独出现,在实际使用中,两两混合使用甚至三种混合组成某个业务流程编排都是常有的。
技术选型与实现
基于CloudEvents的事件规范
CloudEvents是一个开放的规范,旨在提供事件数据的一致描述方式。它允许事件生产者和消费者之间以标准化的方式交换事件信息,无论它们运行在何种平台或编程语言上。它提供了跨服务、平台与系统的互操作性。如下图所示,描述了一个CloudEvents规范的“员工入职”事件。
※ CloudEvents作为CNCF组织的项目之一,在软件行业内具有广泛的应用:
基于RisingWave事件驱动架构
RisingWave是一个分布式架构的SQL流式数据库,能简单、高效、可靠地处理流数据。选择基于RisingWave实现事件驱动架构,除了其SQL-native流处理模型的特性之外,主要从以下几方面出发:
>>RisingWave可实现持续的事件摄取和处理,允许应用实时对事件作出响应。RisingWave的事件时间处理能力不仅支持有序事件,还能有效应对无序事件和处理延迟数据。
>>RisingWave支持强大的有状态处理能力,使其能够在连续的多个事件流中保持上下文的连贯性,并执行更为复杂的数据处理。RisingWave对键控状态的支持还允许事件驱动型应用能够针对数据流中的每个独立键维护其状态信息,从而提高数据处理的灵活性和准确性。
>>RisingWave可与各种上游和下游系统(如:Apache Kafka、PostgreSQL和MySQL等)直接集成。这使得事件驱动应用能够利用这些系统进行事件流和存储,从而更容易构建端到端的事件驱动架构。
上图展示RisingWave在事件驱动架构所处的位置
※ 使用RisingWave进行实时流处理可为不同行业的业务创新带来显著优势。以下是对这些应用案例的描述:
Serverless Workflow编排引擎
Serverless Workflow 是事件驱动型流程编排引擎,它支持开发者构建复杂的、事件驱动型的流程编排。基于 CNCF Serverless Workflow规范,Serverless Workflow编排引擎实现了顺序、分支、循环等流控制逻辑,并支持重试、超时、异常处理等标准工作流特性。其核心优势主要包括:
√ 强大的事件驱动能力:支持监听、触发和响应各类事件,能够基于事件进行灵活的流程编排。
√ 多样化的触发机制,包括手动、定时和事件触发。
√ 函数节点丰富且具有灵活的扩展能力。
√ 内置流程调式工具以及数据模拟能力,便于开发和测试。
上图所示Serverless Workflow编排引擎架构,主要由以下三部分组成:
>>API:为外部系统或用户的提供接口,用于编译工作流定义、管理运行时工作流、注册函数等。
>>Runtime:提供工作流的运行时环境,包括工作流实例的执行、任务调度和事件处理等。
>>Core:定义工作流模型、函数和实例等。
※ CNCF Serverless Workflow是一个开源、供应商中立的无服务器工作流规范,已被多个工作流技术领先的行业厂商采用实现:
架构设计
事件自动化架构设计
事件自动化架构设计如上图所示,事件源会由于业务触发事件形成输入事件流,输入事件流会经由Runtime提供的SourceConnector持续流入RisingWave进行处理,最终行程输出事件流。经由SinkConnector流出到ServerlessWorkflow Engine并触发编排运行。
>>API(事件自动化的服务层):主要提供API服务给用户或应用服务定义事件自动化。其中,SchemaService用于事件Schema的定义,EventStreamService用于定义事件流处理任务,WorkflowService主要用于定义编排服务。
>>Runtime(事件自动化的运行时):主要负责收集来自各个事件源触发的事件,根据与定义的事件流处理任务,将事件流交由RisingWave进行统一的流处理,并将处理好的事件路由至编排引擎以触发相应的业务流程。
>>RisingWave(事件自动化的底层计算和存储服务):主要负责存储基础业务数据、事件定义数据,以及事件流处理。
>>ServerlessWorkflow Engine(流程编排引擎):它会根据定义好的流程编排以及CloudEvent事件触发相应的业务流程执行。
IAM事件自动化设计
IAM事件自动化主要过程:
☞函数节点扩展:IAM扩展编排引擎,添加扩展的函数节点以支持特定的业务逻辑。
☞基础数据同步:同步IAM基础数据至事件中心,为流处理提供必要数据。
☞任务定义:用户或应用服务定义自动化任务,IAM在事件中心定义流处理任务,并在编排引擎定义业务流程编排。
☞数据捕获和事件生成:任何IAM业务操作导致的数据变更都会被CDC捕获,并交由EventHandler处理行事件流推送至事件中心。
☞事件处理与路由:事件中心通过Connector持续接收IAM推送的事件流,根据定义的流处理任务进行处理,并将流处理结果推送至流程编排引擎。
☞流程编排执行:流程编排引擎响应事件,根据事件触发相应的编排,最终根据编排的业务调用IAM扩展的函数节点。
总结与展望
本文深入探讨了BingoIAM事件自动化的原理与架构,揭示了其在企业全场景身份治理中的核心价值。随着企业对身份治理和安全风险管控需求的不断增长,BingoIAM事件自动化的未来发展将更加注重以下几个方面:
√智能化增强:通过引入机器学习和人工智能技术,提升事件处理的智能化水平,实现更精准的风险预测和响应。
√集成性提高:加强与公司标准产品的集成,包括网关的API编排、低代码的事件编排、和聆客消息转事件处理等,以更通用的服务能力,赋能品高其他产品,实现能力复用与降本增效。
√用户体验优化:通过低代码和可视化工具,简化事件自动化的配置和管理,降低技术门槛,提高最终用户的满意度。
√安全性强化:在确保数据处理的灵活性和效率的同时,加强数据安全和隐私保护,以应对日益复杂的网络安全威胁。
√应用场景扩展:将事件自动化技术应用于更多业务场景,如物联网设备管理、供应链协同和客户服务自动化,以实现更广泛的业务价值。
随着技术的不断进步和市场需求的演变,BingoIAM事件自动化将继续引领企业身份治理的创新,为企业提供一个更加安全、智能和高效的运营环境。
参考材料
《流计算系统图解》:https://book.douban.com/subject/36473860/
CloudEvents官网:https://cloudevents.io/zh-cn/
RisingWave官方文档:https://zh-cn.risingwave.com/docs/current/intro/
RisingWave专栏文章:https://www.zhihu.com/column/c_1434958074263638016
ServerlessWorkflow官网:https://serverlessworkflow.io/
联系我们