构建数据网格分布式架构的四项原则
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