构建现代应用程序是一项艰巨的工作,为现代应用程序构建可靠的数据模型是现代应用程序架构中最困难但最重要的部分之一。
未能创建合理的数据架构可能会导致应用程序在许多方面失败,包括与性能、数据完整性、数据主权、数据安全和可扩展性相关的问题。糟糕的数据架构可能会让您的应用程序和公司陷入困境。
构建适当的数据架构对于所有现代架构的长期成功至关重要。为了帮助您的应用程序现代化过程,在构建或重新构建应用程序数据时需要遵循以下五个规则。
构建数据的第一个也是最重要的决定是了解您需要什么类型的数据库来存储和访问数据。您是否需要:
您需要回答这些问题才能确定需要使用的数据库类型。根据这些答案,您可以选择 SQL 数据库、简单的键值存储、内存驻留缓存、简单的对象存储或高度结构化的数据存储。
您选择的数据库类型将决定您的数据库最终能够执行的操作以及它在您的应用程序用例中的执行情况。确定可扩展性和可用性要求等与应用程序密不可分的事情会受到数据库选择的显着影响。
一个看似简单但重要的问题是,数据应该存储在哪里?根据数据和您的应用程序,您是否需要将数据存储在例如应用程序的前端或后端?您可以将数据存储在消费者本地吗?还是需要与许多其他消费者共享数据?
大多数数据存储在后端。但有些数据必须存储在边缘或客户端中。为了优化性能、可用性、可靠性和可扩展性,通常需要在前端存储数据。
现代应用程序必须能够扩展以满足企业客户不断增长的需求。对于所有企业和所有应用程序都是如此。
构建可扩展以满足不断增长的需求的应用程序的绝对最困难的部分是扩展数据存储。无论是扩展以增加需要为不断增长的客户群存储的数据量,还是扩展以允许更多人同时使用您的应用程序而不降低性能,数据扩展都很困难,除非您从一开始就做好计划。
然而,大多数应用程序架构似乎都将数据扩展视为一个可以留待以后处理的附带需求。一旦建立了主要的应用程序架构,这是应用程序开发人员要考虑的事情。
稍后强制扩展到数据架构中是一项极其困难的任务,并且随着数据集大小的增长,它会变得更加困难。到目前为止,构建可扩展性最简单的时间是在应用程序需要扩展之前的开始阶段。如果不进行重大数据重构,等到以后可能会导致扩展变得更加困难,甚至可能无法实现。
许多云专家建议,集中应用程序数据是管理大型应用程序的大型数据集的正确模型。他们认为,集中数据可以更轻松地应用机器学习和其他高级分析,从数据中获取更多有用的信息。
但这个策略是错误的。集中数据是无法轻松扩展的数据。扩展数据的最有效方法是将其分散并将其存储在拥有数据的单个服务中。您的应用程序如果由数十或数百个分布式服务组成,则会将您的数据存储在数十或数百个分布式位置。
该模型可以更轻松地扩展并支持全方位服务所有权模型。服务所有权使开发团队能够更加独立地工作,并鼓励服务之间建立更强大的 SLA。这可以促进更高质量的服务,并通过本地化使数据更改更安全、更高效。
但是,如果您的企业需要对所有这些数据执行分析或机器学习怎么办?我仍然推荐这里描述的分布式数据模型。但是,为了使您的数据可用于分析和机器学习,请将相关数据的副本发送到后端数据仓库系统。在该数据仓库系统中,以适合您的分析目的的方式构建数据,并将此版本用于您的分析和机器学习算法。该数据仓库版本与您的应用程序记录数据是独立且不同的,后者仍然存储在各个服务中。
最后,确定谁将使用这些数据以及他们的地理位置。随着全球商业带来更多机会,确定数据和用户位置变得越来越重要,而区域数据治理限制使管理全球数据变得更加困难。
在创建数据架构之前,您必须回答以下关键问题:
这些问题的答案将决定您是否提供全球或区域数据、可以和不能使用该数据的位置,以及何时以及如何在区域之间同步数据。
数据架构是构建高度扩展、高度可用、全球可访问的现代应用程序的关键部分。数据架构中的错误可能会导致扩展、可用性甚至法律合规性问题。在应用程序增长后更改数据架构是困难且痛苦的。预先解决您的关键数据需求要容易得多。
通过在数据架构过程的早期遵循这五个规则,您可以避免将来出现严重问题。