几十年来,我一直在为大公司开发软件,数据管理一直是一个主要的架构问题。在我职业生涯的早期,人们对单一企业范围的数据模型非常感兴趣,这些数据模型通常存储在单一企业范围的数据库中。但我们很快就发现,让过多的应用程序访问共享的数据存储是一种耦合的灾难。即使没有这些,也存在着更深层次的问题。企业的核心理念,比如“客户”,需要不同业务单元中的不同数据模型。企业收购进一步搅乱了局面。
为了应对这种情况,聪明的企业分散了他们的数据,将数据存储、模型和管理推到不同的业务单元中。这样,在他们的领域中最了解数据的人就负责管理这些数据。他们通过定义良好的API与其他领域数据协作。由于这些API可以包含行为,我们在如何共享数据,以及更重要的是,如何随着时间的推移发展数据管理方面有更大的灵活性。
虽然这已经越来越多地成为日常运营的方式,但数据分析仍然是一个更加集中的活动。数据仓库旨在提供一个管理关键信息的企业存储库。但这样一个中央集权的团队却在工作和客户的冲突中挣扎,特别是因为他们对数据或客户的需求没有很好的理解。数据湖的出现得益于对原始数据的普及,让分析师能够更接近原始数据来源,但它太容易变成一个缺乏理解和来源的数据沼泽。
数据网格(Data Mesh)试图将我们从操作数据中学到的经验应用到分析数据领域。业务单元域负责发布分析数据(通过API),与发布操作数据的方式相同。通过将他们的数据视为一级产品,他们传达了数据的含义和来源,并与他们的消费者进行合作。为了实现其中的工作,企业需要提供一个构建和发布这些数据产品的平台,以及一个联合的治理结构,以保持所有这些产品的一致性。所有这些都体现了对技术卓越重要性的认识,这样平台和产品就可以随着业务需求的变化而迅速发展。
因此,在本质上,数据网格是一个相当简单,或许是显而易见的应用,应用一个完善的数据管理原则到分析数据的世界。然而,在实践中,要使其落地需要做大量的工作,特别是由于供应商的大量投资集中在了集中式模型上,而不支持系统开发人员所知道的对软件健康运行至关重要的实践(如测试、抽象构建和重构),从而加剧了这种情况。
Zhamak在这方面一直走在最前端,为我们的客户在前进的道路上提供建议,从他们的挫折和成功中学习,并推动供应商生产工具,使构建这些平台更容易。这本书收集了她和她的同事在这个早期重要阶段采用数据网格的知识。在回顾这本书的时候,我已经了解了很多关于这些实用的困难,我相信任何希望他们的组织更好地利用他们的数据资源的人都会发现这本书列出了我们对前进道路的最好理解。
Martin Fowler
Thoughtworks首席科学家
前言数据网格将我们带到了处理数据的新轨道上:在数据规模上以及数据分析和人工智能领域,我们如何想象数据,我们如何捕获和分享数据,以及我们如何从数据中创造价值。这种新轨道将我们从数据和所有权的集中化转移到去中心化的模型上。这条新道路包含了组织的复杂性、数据的快速变化和持续增长。它的目标是使组织能够大规模地从数据中获得价值,尽管数据混乱且组织复杂。
回顾我们的行业历史,我们以前就被推动过。Unix的诞生和它对"编写只做一件事的程序,并且把它做好。编写一起工作的程序……"的哲学也许就像蝴蝶扑扇着翅膀,为我们在几十年后通过分布式架构、面向服务的设计、通过标准API的通信和自治领域团队组织来解决软件核心的复杂性创造了条件。 我希望数据网格为解决最需要数据的领域的复杂性、分析和人工智能的新途径创造条件。
我在2018年制定了数据网格的论文,在观察了大型和技术领先的公司在数据中获取价值的常见失败模式后,这些公司在数据技术上进行了大量投资。观察到他们在扩展数据管理解决方案和组织以满足他们雄心勃勃的数据抱负方面所做的努力,我们不禁质疑几十年来关于如何从数据中获取价值的陈旧假设:我们收集它,我们集中存储它,我们让一个数据团队负责它,然后我们把它释放给不同的用户和用例。这些假设必须重新考虑。
大约在同一时间,我在纽约的一个O 'Reilly会议上分享了数据网格背后的想法。我把它叫做“Beyond the Lake”,因为我正在努力解决技术上最困难的问题之一,“naming things(命名事物)”。尽管我害怕受到严厉的批评,但当我说出从根本上改变我们对数据看法的亵渎之词时,听众们积极地接受了我的演讲。数据用户(数据分析师或科学家)的痛苦是真实的;他们都在努力及时获取高质量和值得信赖的数据。数据工程师们也有同样的烦恼,他们夹在数据提供者和数据用户之间,试图从不可靠的上游获取数据的意义,并将其转换成其他人可以使用的形式,而这些都是在没有与业务密切接触的情况下完成的。听众中的领导者点头表示,他们的数据和分析解决方案的回报一般。离开会议后,我对数据湖以外的未来更加有信心。几个月后,我错过了在中国举行的为期一周的技术顾问委员会会议。我三岁的女儿在飞离美国的前一天晚上退烧了。我成功地登上了飞机,把与生病的孩子分开的绝望情绪隐藏了一个星期,但当飞行员向机组人员宣布要确保舱门安全时,我的情绪崩溃了。我下了飞机。现在我有一个星期的时间来隐藏和把关于数据网格的想法和经验用文字表达出来,这篇文章是由Martin Fowler主编的,名为“如何超越单片数据湖到分布式数据网格” “How to Move Beyond a Monolithic Data Lake to a Distributed Data Mesh”。这篇文章获得了巨大的成功,读者数量惊人,就好像我刚刚说出了其他人正在默默思考的话语。三年过去了,这本书深入探讨了为什么需要数据网格,什么是数据网格,以及如何实现数据网格。
我为什么写这本书,为什么是现在在数据网格创建以来的短短几年里,它得到了实施它的主要采用公司的巨大支持。它鼓励供应商尝试调整他们的产品以适应数据网格实现。它创造了一个蓬勃发展的学习社区来分享他们的经验。
尽管变化如此之快,但我写这本书的时间可能比我希望的要早一些。在共享和创建用于分析和机器学习(ML)用例的数据方面,我们仍处于一种完全不同的方法的早期阶段。但我们的行业有一种趋势,就是把新的概念和流行语渗透到人们认不出来的地方。因此,我决定写这本书,为数据网格实现的未来发展建立一个共同的基础。我想确保,在我们开始构建新的技术解决方案之前,我们明白为什么我们需要做出改变,我们试图解决的问题是什么,以及我们如何努力做到这一点。
这本书建立了数据网格的目标的基础,为什么我们应该麻烦,这是首要原则。我们将介绍如何应用首要原则来创建高级架构,并留给您实现它的工具,转变组织和文化的工具。
谁该读本书这本书是为具有不同角色和技能集的人编写的。数据网格是一种范式转变,它需要许多互补角色和学科的共同努力,使其成为任何组织的现实,从架构师、实践者和基础设施工程师到产品经理、数据领导者和高管。
以下是读者角色的一个快速总结,以及他们可以从这本书中学到的东西:
分析数据的用户,例如,数据科学家和分析师应该阅读这本书,以理解数据网格为他们提供了什么,以及他们如何成为这个运动的一部分,作为网格的活跃成员,反过来,提供他们的见解和推论,作为新的数据产品在网格上共享。
数据提供者,如应用程序团队或数据工程师,应该阅读这本书来理解数据网格如何集成两个层面:操作和分析数据和应用程序数据。他们将看到自己的角色如何转移到跨职能领域的团队中,以及他们将构建什么样的体系结构来支持数据网格。
基础设施产品所有者、架构师和工程师应该阅读这本书,以理解自助式数据平台的角色和设计,从而创建一组集成良好的服务,使数据能够在规模上和跨职能领域团队之间分散共享。
数据治理团队应该阅读这本书,以理解实现治理目标的新结构和方法,这种方式有利于数据的独立域所有权,消除组织瓶颈,并严重依赖自动化和计算。本书介绍了数据治理的新角色和新形态。
数据领导者、经理和高管应该阅读这本书,以理解即将到来的范式转变,并学习制定基于数据网格的数据战略,执行其转型,并在此过程中培养他们的组织。
这本书是为具有传统数据和分析背景的人,以及更关注软件和应用程序交付的人而写的。数据网格缩小了这两组之间的差距。
如果你来自传统的数据背景,也许曾经是一名数据工程师或数据分析师,我建议你放下过去的偏见。勇于探索解决分析数据管理和处理问题的新方法。将计算和自动化作为数据不可或缺的伙伴。
如果你有应用程序开发、软件架构或应用程序基础设施工程的背景,请带着对数据和分析的同情读这本书。将自己视为共享数据和从数据中获取价值以改进应用程序的解决方案的一部分。想象一个新的未来,数据工作和应用程序开发是使您的解决方案成功的两个互补部分。
如何阅读本书我强烈建议你从序言:想象数据网格开始。这个简短的章节可以帮助你感受和可视化数据网格在实际操作中的样子。它展示了数据网格对日常生活的影响。它通过一个虚构的数字流媒体公司Daff, Inc.的故事,展示了数据网格的原理。
本书的其余内容分为五个部分:
第一部分,“什么是数据网格?”
本部分介绍了每一个数据网格的首要原则,并描述了它们对转换的影响。我希望每个人都能读到这本书的这一部分,因为这里的内容告诉了所有关于数据网格的讨论。
第二部分,“为什么需要数据网格?”
如果您不确定数据网格是否适合您,或者您想了解它解决了什么问题以及如何解决这些问题,或者只是想影响他人,请阅读本书的这一部分。它将数据网格与过去进行了比较,并讨论了为什么让我们走到今天的东西不会带我们走向未来。我鼓励所有读者仔细阅读这些内容。
第三部分,“如何设计数据网格体系结构”
这部分适用于所有的技术人员、领导者或实践者。本书的这一部分的章节主要关注数据网格组件的高级架构。它们可以帮助您设计数据网格体系结构,并评估现有的与数据网格对齐的技术。
第四部分,“如何设计数据产品架构”
这一部分是数据网格的一个核心概念,即数据产品的详细设计。它意在简化复杂的概念,但不在必要的细节上妥协。它应该对所有角色、经理、领导或从业者都是可接近的。然而,将在技术领导位置实现数据网格的各个方面的人将从这一部分得到最大的收获。
第五部分,“如何开始”
这部分是对那些角色的指导,这些角色会影响数据策略的整体执行和组织更改。它给出了一些可行的建议,包括如何渐进地执行数据网格转换,以及如何围绕团队结构、激励机制、文化等做出组织设计决策。
致谢我想把这本书献给我的伴侣Adrian Paoletti和女儿Arianna Paoletti。 没有他们的耐心、无私的爱和支持,这本书就不会存在。 在过去的一年里,为了完成这本书,我们错过了很多假期和周末。 我将永远感激你的理解和爱。 我还想把这本书献给我的母亲奈尔·达佩(Nayer Dadpay)和妹妹帕里萨·德加尼(Parisa Dehghani),他们的爱和鼓励的话语温柔地推动着我完成了这本书。 我爱你们所有人。
人们说写一本书是一种孤军奋战的努力,但我却不是这样。 我要感谢我的早期审稿人,他们在我的写作过程中,慷慨地分享了他们的时间和反馈。 排名不分先后,Andy Petrella,感谢你以谦逊和幽默的方式分享你作为数据科学家的观点。 Chris Ford,谢谢你对架构的评论,这常常开阔了我的视野。 Mammand Zadeh,感谢您带来一位经验丰富但务实的数据基础设施领导者的声音,并一直帮助我将想法与现实联系起来。 Martin Fowler,感谢您为我阐明了整个蓝图,向我展示了其中的差距,并帮助我阐明了复杂的概念。 Danilo Sato和Sam Ramji,感谢你们的指导,智慧和时间。
Thoughtworks的员工参与创造了科技行业的许多划时代运动:微服务、持续交付、敏捷等等。 这背后的一个原因是,Thoughtworks的领导层为追求软件卓越的分配创造力创造了合适的条件。 排名不分先后,Rebecca Parsons 和Chris Murphy,感谢你们支持我写这本书。 我要感谢我在Thoughtworks过去和现在的同事(没有特别的顺序):Gagan Madan, Zichuan Xiong, Neal Ford, Samia Rahman, Sina Jahangirizadeh, Ken Collier, Srikar Ayilavarapu, Sheroy Marker, Danilo Sato, Emily Gorcenski, David cols, Erik Nagler,以及其他许多人。
我要感谢O’Reilly公司的所有人,是他们使这本书的出版成为可能。 在O’Reilly这个美妙而充满激情的家庭中,我要提到加里·奥布莱恩(Gary O 'Brien)。 Gary,谢谢你一直以来的支持,感谢你从家人那里抽出所有的周末来回顾我的内容,回答我的问题,鼓励我度过低谷和疑惑,让我回到正轨。Melissa Duffield,谢谢你让这本书出版,帮助我迈出第一步,用你不可否认的人类同情心支持我。
最后,我要感谢我的老师和导师Martin Fowler。 Martin ,谢谢你指引我前进的每一步。



