构建在线和运营应用程序的开发团队越来越多地选择一种新的数据库来支持它们。它被称为“NoSQL”或“Not Only SQL”,包括Redis,MongoDB等选项。从可用的NoSQL解决方案中选择正确的数据库是我们在设计新应用程序时可以做出的最重要决策之一。因此,如果你正在评估NoSQL数据库,本文可以作为一个参考。
选择数据库时,我们应遵循以下五个步骤:
- 定义 NoSQL数据库的目标。
- 确定吞吐量和延迟要求。
- 为正确的工作选择正确的数据库。
- 选择或做自己动手(DIY)的托管服务提供商之间。
- 确定 适合你的情况的***部署模式。
1. 为你的数据库定义目标
NoSQL数据库的目标可能是为移动设备上的数千名用户提供个性化数字体验,为后端支付处理应用程序存储数据,管理有一定时间生活的短暂数据,或将持久数据存储为系统记录。你甚至可以在特定方案的同一数据管道中涉及多种类型的数据库。
无论用例如何,在数据管道中定义NoSQL数据库的特定功能非常重要,包括如何收集,提取和提供数据以进行分析。
2. 确定吞吐量和延迟要求
在今天这个时代,用户期待即时体验。通常,这需要你的应用程序的响应时间<100毫秒。否则,它将被视为缓慢,你可能会失去用户的兴趣。但是,一些应用程序 - 例如游戏,通信和金融交易系统 - 要求其数据库的响应时间低至13毫秒。
除延迟外,我们还需要确定吞吐量要求。例如,数据库可以处理数千个同步数据流,延迟低至50毫秒或更长?
了解将对数据库提出的要求对于确保用户体验的质量非常重要。
3. 为正确的作业选择正确的数据库
通常,开发人员选择NoSQL数据库是因为它们需要半结构化或非结构化数据,具有灵活的模式,简单的查询模式,高速事务,大量数据以及通过分布式计算和存储的快速且廉价的可扩展性。你可以通过CAP定理进一步缩小选择范围,CAP定义定义如下:
- 一致性:每次读取都会收到最近的写入或错误。
- 可用性:每个请求都会收到(非错误)响应 - 不保证它包含最近的写入。
- 分区容差:尽管节点之间的网络丢弃(或延迟)任意数量的消息,系统仍继续运行。
根据CAP定理,你可以优先考虑CA,AP或CP特征。这有助于确定哪个数据库最适合你的应用程序。
4. 选择托管服务提供商和自己动手(DIY)
托管服务解决方案使用经验丰富的资源处理数据库的日常管理。这使你自己的资源能够专注于应用程序所需的创新和效率。如果朝这个方向发展,请评估提供数据库即服务选项的第三方选项,并选择能够在保证正常运行时间的同时处理吞吐量和延迟要求的提供商。
当然,外包可能并不总是可选的,在这种情况下,应该考虑哪些数据库提供商提供的软件版本支持大规模配置,调度和管理容器。请务必检查你最期望的功能,例如可伸缩性,主动 - 主动部署,吞吐量和延迟 - 并在概念验证试验期间对其进行验证。
5. 确定部署模式
理想情况下,你需要一个数据库提供程序,它允许在选择的任何环境(无论是公共还是私有)中运行数据库,并完全控制你的数据和配置。数据库软件也应该作为Docker镜像提供,这将允许企业开发人员在基于Docker的微服务架构中使用它。
如果使用私有平台即服务(PaaS),请确保你的数据库提供商支持私有PaaS环境中的无缝扩展和轻松高可用性。
如果选择托管服务提供商,请确认它们支持跨多云提供商的群集部署。
做出正确的NoSQL数据库选择的好处
经过深思熟虑的决策的一些优点包括:
- 加快开发,测试和生产环境之间的连续性,缩短产品上市时间。
- 与Docker编排工具集成时,高可用性和更轻松的可扩展性。
- 更快的吞吐量,最小的延迟和保证正常运行时间
- 全球多云部署选项
- 使用托管服务提供商可节省大量成本