
Drasi 是一种新型数据处理系统,能够简化对复杂基础设施中关键事件的检测流程,并根据业务目标立即采取行动。无论是在物联网集成或是增强安全协议,亦或是管理复杂的应用程序方面,企业开发人员和软件架构师都可以在各种事件驱动场景中使用这个功能。微软 Azure 孵化团队非常高兴地宣布,Drasi 现已作为开源项目对外提供,您可以扫描下方二维码了解并使用 Drasi。

#1
事件驱动架构
事件驱动系统虽然在实现实时响应和高效解耦服务方面功能强大,但在实际场景中也面临诸多挑战。随着系统根据业务需求不断扩展,事件的频率和复杂性逐渐增加,跨组件检测相关变化可能变得极其复杂。此外,数据以不同的格式和孤立的数据孤岛形式存储,进一步增加了复杂性。确保这些系统中的实时响应至关重要,但由于网络延迟、拥堵或事件处理缓慢,可能会导致处理延迟。
目前,开发人员很难建立事件处理机制,因为现有的库和服务很少能提供端到端的、统一的变更检测和响应框架。开发人员往往需要将多个工具拼凑在一起,才可以实现所需功能,而这也带来了一个问题,就是架构复杂、脆弱,难以维护和扩展。例如,现有解决方案可能依赖低效的轮询机制,或需要不断查询数据源,这就会导致性能瓶颈和资源消耗增加。此外,许多变更检测工具采用批处理、数据整理或延迟事件分析,缺乏真正的实时功能。这对于需要依靠实时数据立即做出响应的企业来说,即使是轻微的延迟也可能导致错失良机或带来风险。
简而言之,企业迫切需要一种全面的解决方案来检测并准确解读关键事件,并自动做出适当且有价值的响应。
#2
Drasi 为事件驱动系统而生

Drasi 简化了动态系统中智能反应的自动化过程,能够在无需传统数据处理的情况下,提供实时可操作的洞察。它采用轻量级方法,通过观察日志和变更源中的事件来跟踪系统变化,无需将数据复制到中央数据湖或反复查询数据源。
应用开发人员使用数据库查询来定义需要跟踪的变更,并通过逻辑条件来评估变更数据。然后,Drasi 判断是否有任何变更触发了查询结果集的更新。如果有,它将根据业务需求执行基于上下文的响应。这个简化的流程降低了复杂性,确保在数据最相关时能够及时采取行动,并防止重要变更被忽略。该流程由 Drasi 的三个组件执行:数据源、持续查询和响应。
数据源(Sources)——连接到系统中的各种数据源,持续监控关键变化。数据源可跟踪应用程序日志、数据库更新或系统指标,并实时收集相关信息。
持续查询(Continuous Queries)——Drasi 使用持续查询来替代手动的定点查询,根据预定义的标准不断评估传入的变化。这些查询使用 Cypher 查询语言编写,能够在不需要预先整理数据的情况下整合多个数据源的信息。
响应(Reactions)——当持续查询完成变化评估时,Drasi 会执行已注册的自动化响应。这些响应可以发送警报、更新其他系统或执行修复步骤,所有操作都是根据您的运营需求量身定制
Drasi 的架构设计在两个集成点(Sources 和 Reactions)上实现了可扩展性和灵活性。除了目前可用的预构建 Drasi 源和响应(包括 PostgreSQL、Microsoft Dataverse 和 Azure Event Grid)外,您还可以根据业务需求或系统要求创建自己的集成。这种多样性使得 Drasi 能够轻松适应和定制特定环境。

#3
探索 Drasi GitHub 代码库
为了展示 Drasi 的实际应用,我们来看一个近期构建的解决方案,该方案将根据车队车辆的连接遥测数据进行分析,从而为业务运营提供支持。以前的解决方案需要跨多个系统进行集成,需要查询车辆及其维护记录的静态数据,批量处理车辆遥测数据并将其与静态数据结合,最后触发警报。现在,Drasi 简化了这一过程,它作为唯一的组件对变更做出检测并自动执行响应。
在该解决方案中,单个 Drasi 实例使用了两个不同的数据源:一个连接到 Microsoft Dynamics 365 用于收集维护记录,另一个连接到 Azure 事件中心(Azure Event Hubs)用于获取遥测数据流。两个持续查询分别根据预测的计划保养维修标准(例如,车辆将在接下来的30天内完成1万英里的行驶里程)和需要立即处理的关键警报来评估遥测事件。根据这些持续查询的结果集,Dynamics 365 Field Service 的单个响应会发送信息,生成关键事件的物联网警报,或通知车队管理员车辆即将达到保养时间点。
另一个示例展示了 Drasi 在智能楼宇管理中的实际应用。设施管理员通常使用仪表板来监控楼宇的舒适度,并需要在出现偏差时发出警报。借助 Drasi,管理员可创建一个准确的仪表板,轻松查看楼宇舒适度数据。楼宇空间被定义为 Microsoft Azure Cosmos DB 数据库中的记录,该数据库存储了变化的更新数据。Drasi 的数据源读取 Azure Cosmos DB 数据库的变更日志,并将这些变更数据传递给持续查询,这些查询计算各个房间的舒适度,并提供整个楼层和建筑的汇总值。响应接收到持续查询的输出,并直接驱动基于浏览器的仪表板从而实现数据更新。
为了展示 Drasi 如何为企业带来益处,以下是我们的预览合作伙伴 Netstar 提供的反馈。Netstar 系统处理大量的车队监控和管理数据,并为客户提供有价值的实时洞察。

我们相信 Drasi 对我们的产品和客户具有重要价值。该平台的灵活性表明它可以适应各种使用场景,例如提供关于客户车队的最新信息,以及提醒 Netstar 注意我们自身环境中的运营问题。Drasi 的灵活性使我们能够简化和优化我们的分析和软件架构。我们期待继续尝试使用 Drasi,并向 Drasi 团队提供反馈。
——Daniel Joubert
Netstar 总经理
#4
Drasi:一种全新类别的
数据处理系统
在不断发展的系统中管理变化并不一定是一项复杂、容易出错的任务。通过整合多个数据源、持续监控相关变化并触发智能自动响应,Drasi 简化了整个流程。我们无需构建复杂的系统来检测变化、管理大型数据湖,或在现有生态系统中整合现代检测软件。Drasi 化繁为简,让您的系统高效运行,让您的业务保持敏捷。
我很高兴地与大家分享,Drasi 已作为沙盒项目提交给云原生计算基金会(CNCF)。这意味着如果被接受,它将受益于 CNCF 社区的指导、支持、管理、最佳实践和资源。微软致力于通过为云和边缘应用创建开放、灵活的技术,使开发人员能够在任何平台上、使用任何语言构建应用程序。Azure 孵化团队定期推出 Dapr、KEDA、Copacetic 和最近的 Radius 等云中立和开源项目,为实现这一目标做持续做出贡献。这些项目都可以在 GitHub 上找到,并且是 CNCF 的一部分。
我们相信,我们的最新成果 Drasi 将成为云原生领域的重要组成部分,并帮助推动云原生技术的发展。
#5
立即体验 Drasi
作为一个开源项目,Drasi 采用 Apache 2.0 许可授权,体现了微软在技术社区中推动创新与合作的承诺。我们欢迎开发人员、解决方案架构师和 IT 专业人士共同构建和改进 Drasi。您可以参考以下资源,开始使用 Drasi:
• Drasi (https://github.com/drasi-project)
• Drasi.io (https://drasi.io/)
• Discord (https://discord.com/invite/gpPeyKcH)





