写点什么

构建数据网格分布式架构的四项原则

用户头像
俞凡
关注
发布于: 3 小时前

Data Mesh 是最近随着微服务开始流行起来的数据架构,以一种分布式、可扩展、用户友好的方式管理数据,提供更好的数据洞察能力和更灵活的数据治理能力。原文:Data Mesh: The Four Principles of a Distributed Architecture[1]


数据网格(Data Mesh)是一个相对较新的术语,其本质上是最近数十年来关于数据架构[2]的思考、研究和实验的演进结果,下面我们会进一步介绍这一概念。


数据网格是由 Zhamak Dehghani 设计的分布式架构,他是 Next Tech 孵化器的董事、Thoughtworks 首席顾问和技术咨询委员会成员。


根据 Thoughtworks[3]的定义,数据网格旨在“解决传统集中式数据湖或数据平台架构的常见故障模式”,依赖于现代分布式架构和“自服务数据基础设施”。

数据网格的关键用例

数据网格的主要目的是帮助我们分析数据并从历史事实中获得价值[4],它可以灵活应对数据场景的频繁变化、数据源激增以及各种数据的转换和处理,可以根据对变化的反应速度灵活调整。


数据网格有很多用例:

  • 从分散的数据源构建虚拟数据目录

  • 帮助研发和 DevOps 团队直接运行不同来源的数据查询

  • 得益于数据网格的自服务平台基础设施,数据团队可以引入一种通用的、领域无关的、自动化的数据标准化方法。


接下来我们详细看一下支撑数据网格分布式架构的四个关键原则。

分布式架构的四个核心原则

这些原则本身并不新鲜,它们已经以这样或那样的形式存在了很长一段时间。然而,当我们把它们放在一起之后,得到的是(正如 Datameer 描述的那样[5])“一个连接分布式数据集以实现大规模数据分析的新架构范例”,允许不同的业务领域以用户友好的方式托管、共享和访问数据集。

1. 面向领域的去中心化数据所有权和体系架构

去中心化体系架构的趋势始于几十年前——由面向服务体系架构所驱动,然后出现了微服务。它能提供更大的灵活性,更好的可伸缩性,更容易并行工作,并允许功能的复用。与老式的单体数据湖和数据仓库(DWH,data warehouses)相比,数据网格提供了一种灵活得多的方法来管理数据。


在历史上,有多种不同的方式实现数据的去中心化,包括去中心化 DWH、联邦 DWHs[6],甚至 Kimball 的数据集市(DWH 的核心),这些方法都是面向域的[7],由独立的部门支持和实现。我们将这种方法应用于多个软件工程团队协同工作的情况,总体复杂度很高。


在一个财务咨询项目中,我们客户的分析部门根据所覆盖的财务领域被分成几个小组,这意味着大多数决策和分析数据集的创建可以在团队内部完成,而团队成员仍然可以读取全局数据集,使用通用工具集,遵循相同的数据质量、演示和发布的最佳实践。

2. 数据即产品

这意味着将广泛使用的产品思维应用到数据中,并在此过程中使数据成为一等公民,数据所有者将和开发团队一起支持运营。


创建数据集并保证其质量并不足以生产出数据产品,还需要便于用户查询、读取和理解,并且也应该遵循版本控制、监控、安全等全局性规则。

3. 自助式数据基础设施即平台

数据平台实际上是企业用于运行、维护和监控其服务的平台的扩展,但使用的技术栈截然不同。创建自助基础架构的原则是提供工具和用户友好的界面,以便有能力的开发人员能够开发数据分析产品。在没有这个平台之前,由于运维平台所涉及的范围非常广泛,使得开发数据分析产品非常困难。

4. 联邦计算治理

这是第一原则造成的必然结果。无论在何处部署分布式服务(例如微服务),都必须引入总体规划和规则来管理它们的操作,正如 Dehghani 所言,“在中央集权和地方分权之间保持平衡”至关重要。


本质上,这意味着整个平台有一个“共同点”,即所有数据产品都遵循一套共享的规则,在必要时为自主决策留下足够的空间,这最后一点是去中心化和集中化方法的关键区别。

数据网格的挑战

虽然数据网格提供了更好的可伸缩性,但和其他范式一样,不应被视为适用于所有场景的完美解决方案。与所有去中心化数据架构一样,它也面临着一些常见的挑战:

  • 确保跨团队的工具集和方法(在适用的地方)是一致的。

  • 尽量减少不同团队之间的重复工作和数据,而集中化的数据管理通常难以在公司范围内实现。

  • 协调数据和统一展示,跨多个数据产品读取互连数据的用户应该能够确保正确映射数据。

  • 通过全面的文档,使数据产品易于查找和理解。

  • 建立一致的监测、告警和日志记录。

  • 保护数据访问控制,特别是在数据产品之间存在多对多关系的地方。

总结

随着数据分析越来越多的成为社会日常运作的工具,组织必须超越单体数据架构,采用真正的数据驱动方法[8]的原则。而数据湖和数据仓库不够灵活,难以满足现代需求。


数据网格使数据对那些需要它的人来说更可用、更容易发现,同时又能够确保安全和可互操作。


Reference:

[1] https://medium.datadriveninvestor.com/data-mesh-the-four-principles-of-a-distributed-architecture-59514eba1e52

[2] https://eleks.com/services/data-science-services/?utm_source=medium&utm_medium=refferal&utm_campaign=Republ-BlockchainBusiness-Blog

[3] https://www.thoughtworks.com/radar/techniques/data-mesh

[4] https://labs.eleks.com/2021/02/data-science-project-life-cycle.html

[5] https://www.datameer.com/blog/data-mesh/

[6] https://www.zentut.com/data-warehouse/federated-data-warehouse-architecture/

[7] https://www.kimballgroup.com/1999/12/the-matrix/

[8] https://eleks.com/blog/dataops-efficient-data-ecosystem/


你好,我是俞凡,在 Motorola 做过研发,现在在 Mavenir 做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI 等技术始终保持着浓厚的兴趣,平时喜欢阅读、思考,相信持续学习、终身成长,欢迎一起交流学习。微信公众号:DeepNoMind

发布于: 3 小时前阅读数: 5
用户头像

俞凡

关注

还未添加个人签名 2017.10.18 加入

俞凡,Mavenir Systems研发总监,关注高可用架构、高性能服务、5G、人工智能、区块链、DevOps、Agile等。公众号:DeepNoMind

评论

发布
暂无评论
构建数据网格分布式架构的四项原则