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

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

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])“一个连接分布式数据集以实现大规模数据分析的新架构范例”,允许不同的业务领域以用户友好的方式托管、共享和访问数据集。


image.png


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/


目录
相关文章
|
1天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【5月更文挑战第18天】 随着企业加速迈向数字化时代,云原生架构作为支撑快速迭代、高效部署和弹性伸缩的关键技术,已成为推动创新与维持竞争力的重要工具。本文深入探讨了云原生技术的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)和DevOps实践,并分析了这些技术如何共同作用以支持企业的敏捷运营。通过具体案例分析,揭示了云原生架构如何助力企业在不断变化的市场环境中实现快速响应和业务连续性。
|
1天前
|
敏捷开发 监控 API
构建高效微服务架构:从理论到实践
【5月更文挑战第18天】 在当今快速发展的软件开发领域,微服务架构已经成为一种流行的设计模式,它通过将大型应用程序分解为一系列小型、独立的服务来提高系统的可伸缩性、弹性和维护性。本文旨在探讨如何从理论走向实践,构建一个高效的微服务架构。文章首先介绍微服务的基本概念和优势,然后详细讨论了在设计和部署微服务时需要考虑的关键因素,包括服务划分、通信机制、数据一致性、容错处理和监控策略。最后,结合具体案例分析,展示如何在现实世界中应用这些原则,确保微服务架构的高效运行。
|
1天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【5月更文挑战第18天】 随着企业加速其数字化转型的步伐,云原生架构已成为推动创新、灵活性和资源优化的重要技术趋势。本文将深入探讨云原生技术的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)以及DevOps文化,并分析这些组件如何共同促进企业的敏捷性和竞争力。此外,文中还将提供成功实施云原生架构的策略,以及面临的挑战和解决方案,为决策者和技术专家提供实用的指导。
|
1天前
|
监控 持续交付 开发者
构建高效微服务架构:后端开发的新范式
【5月更文挑战第18天】 随着现代软件开发的复杂性日益增长,传统的单体应用架构已难以满足快速迭代和灵活部署的需求。本文聚焦于一种新兴的解决方案——微服务架构,探讨其如何为后端开发带来革命性的改变。我们将深入分析微服务的核心概念、优势与挑战,并通过具体案例来阐述如何在实际项目中实施微服务架构。文章旨在为开发者提供一种系统化的方法,帮助他们理解并应用微服务架构,以提升系统的可维护性、扩展性和技术敏捷性。
9 2
|
1天前
|
测试技术 持续交付 API
构建高效的微服务架构:后端开发的现代实践
【5月更文挑战第18天】在数字化转型的浪潮中,微服务架构已成为企业追求敏捷、可扩展和容错能力的关键解决方案。本文将深入探讨微服务的核心概念,包括其设计原则、技术栈选择以及实施过程中的挑战与对策。通过对微服务架构实践的详细剖析,旨在为后端开发人员提供一套构建和维护高效微服务系统的实用指南。
|
1天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【5月更文挑战第17天】 随着企业加速其数字化转型的步伐,云原生架构已经成为推动创新和实现敏捷运营的重要技术基石。本文将深入探讨云原生技术如何通过提供灵活、可扩展的解决方案,帮助企业快速响应市场变化,同时确保系统的稳定性和安全性。我们将分析微服务、容器化、持续集成/持续部署(CI/CD)以及DevOps文化等关键技术的实践应用,并讨论它们如何共同促进企业的技术生态系统进化。
|
1天前
|
Kubernetes API 数据库
构建高效微服务架构:后端开发的新趋势
【5月更文挑战第17天】 随着云计算的普及和容器化技术的成熟,微服务架构已成为企业软件开发的首选模式。该架构通过将大型应用程序拆分为一系列小型、自治的服务来提供灵活性和可扩展性。本文将探讨微服务架构的关键概念,包括服务的细粒度划分、独立部署、以及如何通过容器编排实现高可用性。同时,我们将讨论微服务实施的最佳实践和面临的挑战,为后端开发者提供构建和维护微服务系统的实用指南。
|
1天前
|
消息中间件 安全 数据库
构建高性能微服务架构的实践指南
【5月更文挑战第17天】 随着现代软件开发的复杂性增加,微服务架构已成为众多企业和开发团队的首选模式。本文旨在探讨如何构建一个高性能的微服务系统,涵盖从设计原则、技术选型到性能优化的关键步骤。我们将通过实际案例和最佳实践,展示如何在保证系统可扩展性、灵活性的同时,确保系统的响应速度和稳定性。
|
1天前
|
Kubernetes 持续交付 Docker
构建高效微服务架构:Docker与Kubernetes的完美搭档
【5月更文挑战第17天】在当今云计算和微服务架构的大潮中,Docker容器化技术和Kubernetes容器编排系统成为了后端开发领域的热门技术栈。本文将探讨如何通过Docker和Kubernetes的结合使用来构建一个高效、可扩展且易于管理的微服务环境。我们将从基础概念出发,深入到实际操作层面,最后讨论这种组合对持续集成和持续部署(CI/CD)流程的影响,旨在为开发者和企业提供一种可靠的后端服务解决方案。
|
1天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【5月更文挑战第17天】 随着企业不断探索在高度竞争的市场中保持敏捷和创新的方法,云原生技术已逐渐成为支持快速迭代、可扩展性和操作效率的关键因素。本文将深入探讨云原生架构的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)以及DevOps文化,并分析这些技术如何共同促进企业的数字化演变。通过采用云原生实践,组织能够更有效地管理复杂性,优化资源使用,并加速产品和服务的上市时间。