企业数据架构师不应构建大型集中式数据平台,而应创建分布式数据网格。 ThoughtWorks 的首席技术顾问 Zhamak Dehghani 在旧金山 QCon 的演讲和相关文章中表示,这种方法的改变需要范式转变。随着数据变得越来越普遍,传统的数据仓库和数据湖架构变得不堪重负,无法有效扩展。Dehghani 认为,分布式数据网格方法可以通过采用面向领域的数据所有权来克服这些固有的低效率。
“我建议下一个企业数据平台架构是分布式域驱动架构、自助平台设计和数据产品思维的融合。”
她的演讲包括一些现实世界的例子,但主要集中在新的管理原则上,伴随着新的语言来支持这种心态。例如,服务过度摄取,发现和使用过度提取和加载。
Dehghani 看到了传统数据平台架构中的三种故障模式。首先,它们是中心化的、单一的;将所有类型的数据放在一起可能适用于小型组织,但对于拥有大量数据源和不同数据消费者的企业最终会失败。
其次,是 Dehghani 描述为“耦合管道分解”的问题。几代架构师已经将数据平台架构分解为“数据处理步骤的管道”。这些管道步骤与变化轴正交,新功能需要对所有步骤进行更新。
孤立和超专业的所有权是最终的失败模式。集中式架构自然会创建提供数据的数据源团队和检索处理数据的消费者团队的类别。中间是数据和机器学习专家。虽然两个外部小组是面向领域的,但中央团队必须与领域无关。
Dehghani 将这些挑战与 N 层单体的挑战进行了比较,其中新的客户需求需要修改所有层。微服务更好地与变化的元素保持一致,但需要不同的设计方法。成功实施数据网格架构需要类似的、戏剧性的思维转变。
“为了分散整体数据平台,我们需要扭转我们对数据、数据的位置和所有权的看法。域不需要将数据从域流到集中拥有的数据湖或平台,而是需要托管和服务其域数据集以一种易于消费的方式。”
所设想的架构侧重于将域数据产品作为一流的组件,每个组件都由了解该域的团队拥有相应的所有权。单一的、僵化的数据管道不再是主要的设计关注点,数据也没有明确地划分为源和消费模式。分散的团队能够使用他们需要的数据,并且可以将他们的输出提供回网格中以供其他团队使用。
要使这样的架构成功,数据产品必须是可发现的、可寻址的、可信赖的、自描述的、可互操作的、安全的,并受全局访问控制的约束。这些特征是各个数据产品所有者的责任,并得到联合治理和提供数据基础设施的平台的帮助。
- Image Credit: Zhamak Dehghani
数据仓库和数据湖仍然可以存在于这种架构中,但它们只是网格中的另一个节点,而不是一个集中的单体。 如果团队仍然需要由数据仓库和湖泊来完成的功能,那么他们应该可以自由地接受它。同样,微服务和多语言解决方案的采用也存在相关性。
Dehghani 的 QCon 演示文稿“数据平台架构中的数据网格范式转变”将在未来几周内发布。她的文章《如何从单一数据湖迁移到分布式数据网格》现已发布。她还将成为 InfoQ 播客的嘉宾。