数据库选型最佳实践(一)

本文涉及的产品
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
云原生数据库 PolarDB 分布式版,标准版 2核8GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 数据库选型最佳实践(一)

开发者学习笔记【阿里云云数据库助理工程师(ACA)认证:数据库选型最佳实践(一)】

课程地址https://edu.aliyun.com/course/3112080/lesson/19077

 

数据库选型最佳实践(一)


内容介绍

一、上云,数据库如何选型?自建,还是云数据库?

二、云数据库的基本形态,如何选型?

三、上云姿势的选择:备份,原生复制,还是DTS?

四、业务不同的发展阶段,数据库和 DBA 如何选择?

 

课程目标

学习完本课程后,你将能够:

1.了解云数据库相比自建数据库的优势

2.云数据库的基本形态,如何选择

3.如何选择多种产品组合,解决特定的场景问题

 

课程目录

1.上云,数据库选择自建,还是云数据库?

1.1自建模式的问题

1.2云数据库的优势

2.云数据库的基本形态,如何选型?

3.选择云数据库,如何实现不停机上云迁移

4.如何选择多种产品组合解决特定的场景问题

5.上云,DBA如何做职业的规划与选择?

 

一、上云,数据库如何选型?自建,还是云数据库?


以 MySQL 为例,来看一下自建数据库的优势和劣势。

自建数据库经常采用的模式是:购买一台 ECS 云主机挂在一个云盘,构建一个一主一从的主从复制模式。然后采用 MHA 或者Keepalived 来实现数据库的高可用切换,这种模式是很多自建所通用的模式。

1.优势和劣势

(1)优势

①跟IDC一样,熟悉的架构,熟悉的味道

②自主运维,可控性很强

※自建 nagios 实现监控

※自建 Amoeba 实现读写分离

※出问题自主诊断,自主解决,万事不求人

(2)劣势

①开源组件,没人兜底:内核、监控、读写分离……

②配置和运维复杂;需要针对MySQL特点开发额外脚本会有脑裂的问颇,一旦在业务高峰期出现问题宁可修复,也不敢切换。

③运维这样的模式需要一支能力很强的团队运维

图片202.png2.云上数据库提供一站式服务

以 RDS 为例,RDS 提供了99.99%的服务性,从 RDS 的部署模式中可以看到 RDS 是采用了一主一备的模式,当原主库发生故障之后,会自动化地切换到新主库。因为使用了数据库代理的模式,所以老连接会中断,从而在新的主库上构建起新的连接。所以在发生高可用切换之后大部分连接在实际上都可以保持连接,不会发生中断。


这样类型的架构是构建在云管控之上由云管控做生命周期的管理,包括有监控、高可用检测等都是在云管控中完成。所以它具备了一些特点。

图片203.png

(1)决策:准

①分布式高频探测

②网络/硬件/OS/数据库多重监控

③智能决策系统

④数据一致性保护

(2)执行:轻

①新连接直接到备节点

②空闲的老连接,自动切换到备节点;

③事务中或运行中的老连接,等待10s后切换到备节点,超时Kil。

④总共用时<60s

3.RDS 优势概览

RDS 是由资源和附加价值两部分来构成的,资源占 RDS 三分之二的成本,另外三分之一的成本是 AliSQL 带来的附加价值。

AliSQL 指的是 Ali 在 RDS 中所使用的发行版本。


阿里巴巴在长期实践中所构建的修改过许多漏洞、做过十分多的性能优化的的 MySQL 发行版本。它的附加价值在于提供了灵活多变的规格构成,实现了99.9999%的数据持久保障以及99.99%的可用性保障。它提供了全链路加密安全保障、自动化读写分离代理以及慢查询,SQL限流、CloudDBA智能诊断,监控告警,透明切换,AliSQL,内核优化还可以提供自动化备份与时间点恢复,短连接链路池优化,弹性敏捷,在线升降配。

图片204.png

 

二、云数据库的基本形态,如何选型?


1.云数据库具备灵活的版本选择

云数据库提供了基础版、高可用版、三节点企业版、专属集群版,四种版本的选择。基础版提供用于云服务一样的成本,提供的是高性价比的选择,是 laaS 的基础设施资源,提供的是PaaS 的服务。云上中用的最多的,大部分顾客的选择是高可用版本。高可用版本是一个主节点,一个备节点,从而做到主从的复制,它提供了业务的连续性和多项企业级功能。三节点企业版是采用三个节点,数据的复制采用 Raft 一致性算法,它提供的是金融记得数据安全性,做到了三机房部署和数据0丢失。专属集群版是 RDS 的高级形态,它采用的是灵活的调度和自主调控的模式,对资源做完整的跨主题的资源调度。

图片205.png

2.选型进阶:数据库专属集群

专属集群级两者之大成,融合了 RDS 和 ECS 自建,集两者之大成的一种选择。

RDS 的优势在于它是AliSQL内核,淘宝大促验证过的云数据库;以及高可用,99.99%可用性;全托管,简单易用;完善的备份、恢复、回档;提供了 CloudDBA , DMS 工具支持。它的劣势在于比ECS自建略贵;灵活性差,不开放主机和 mysql root 权限以及底层运维依赖于阿里支持体系,不能自主操作。


ECS 自建的优势在于成本低;自主运维,从OS到DB,掌控力强,为 DBA 提供强管控能力;所以从头到尾可以体现DBA价值。但它的劣势在于开源内核,不稳定,依赖社区做bug修复;自主搭建高可用,存在数据一致性漏洞;生态支持工具不完整,需要自主搭建;运维管理投入成本高。


所以专属集群是集两者之大成,即融合了 RDS 的优势,又融合了自建的优势。它的内核采用 AliSQL ,提供99.99%的可用性保障,采用全托管的方式,简单易用。


以及像备份、恢复以及回档,工具等均是内嵌完成的。同时也融合了自建的优势,成本非常;提供了自主运维,也是从操作系统到数据库,体现 DBA 的价值。所以这是一种云自服务和自主运维相结合体现 DBA 价值的集两者优势大成的专属集群。它即提供了灵活的资源复用,又降低了数据库整体的拥有成本。

图片206.png

3.选型进阶:PolarDB 实现云原生弹性

PolarDB 云原生数据库是采用计算与存储分离架构带来的巨大的成本优势。它可以实现数据库随需弹性扩缩容。


首先假设有一套电商的业务,在日常情况下没有那么大的流量时可以选择最小模式,最小模式是一主一从,采用分布式的共享存储做数据的存储。最小模式因为有两个节点,每一个节点采用的规格是2核,4G,一共是2个节点。这样的一套最小规格在阿里云的是560一个月。


当峰值到来做一部分大促时,可以从日常最小规格扩大成最大规格,最大规格每一个节点可以扩展到88核,710G。一共可以支持16个节点,16个节点中1个是主节点,15个是指独节点。这样可以提供一个巨大的数据库的处理能力,最大规格在阿里云的列表价格是每个月56.3万元。从成本上来看,提供了一千倍的的资源弹性。所以说这样的架构是满足了一些业务诉求,首先来说是存储容量的诉求。这样的一套 PolarDB 在单实例上面可以承载上百个 TB 的存储。而且对于存储来说,采用的是按使用量计费。在不使用的情况下可以不做计费,等同于提供了无限大的存储空间的能力。也可以做到资源规格灵活变配,按需调整。从最小规格升级到最大规格,可以实现分钟级的快速扩缩容。


这种解决方案满足了弹性变配与读写分离的要求,提供了1000倍的弹性变配的能力,分钟级的扩缩容能力,在扩缩容的过程中对业务没有影响。以及提供了读写分离的扩展,最大可支持1主15从,单实例提供了100TB的超大容量。存储容量不需要提前购置,用到多少按多少来计费。是一种非常灵活的模式。

图片207.png

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:详细步骤与最佳实践指南ali01n.xinmi1009fan.com
随着Web开发技术的不断进步,ASP.NET已成为一种非常流行的Web应用程序开发框架。在ASP.NET项目中,我们经常需要与数据库进行交互,特别是SQL数据库。本文将详细介绍如何在ASP.NET项目中连接SQL数据库,并提供最佳实践指南以确保开发过程的稳定性和效率。一、准备工作在开始之前,请确保您
202 3
|
3月前
|
消息中间件 缓存 监控
优化微服务架构中的数据库访问:策略与最佳实践
在微服务架构中,数据库访问的效率直接影响到系统的性能和可扩展性。本文探讨了优化微服务架构中数据库访问的策略与最佳实践,包括数据分片、缓存策略、异步处理和服务间通信优化。通过具体的技术方案和实例分析,提供了一系列实用的建议,以帮助开发团队提升微服务系统的响应速度和稳定性。
|
28天前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
52 2
|
2月前
|
关系型数据库 MySQL 数据库
MySQL数据库:基础概念、应用与最佳实践
一、引言随着互联网技术的快速发展,数据库管理系统在现代信息系统中扮演着核心角色。在众多数据库管理系统中,MySQL以其开源、稳定、可靠以及跨平台的特性受到了广泛的关注和应用。本文将详细介绍MySQL数据库的基本概念、特性、应用领域以及最佳实践,帮助读者更好地理解和应用MySQL数据库。二、MySQL
123 5
|
2月前
|
SQL 数据管理 数据库
文章初学者指南:SQL新建数据库详细步骤与最佳实践
引言:在当今数字化的世界,数据库管理已经成为信息技术领域中不可或缺的一部分。作为广泛使用的数据库管理系统,SQL已经成为数据管理和信息检索的标准语言。本文将详细介绍如何使用SQL新建数据库,包括准备工作、具体步骤和最佳实践,帮助初学者快速上手。一、准备工作在开始新建数据库之前,你需要做好以下准备工作
132 3
|
4月前
|
开发者 UED Java
Play Framework惊天秘密:如何让异常处理优雅得像芭蕾舞?
【8月更文挑战第31天】在Web应用开发中,异常处理至关重要,直接影响应用稳定性和用户体验。Play Framework作为轻量级Java Web框架,提供了基于Scala偏函数的灵活异常处理机制。通过实现`HttpErrorHandler`接口可定义全局异常逻辑,而在控制器中使用try-catch块则能捕获特定异常。定义自定义异常类也有助于表示特定错误情况。最佳实践包括保持处理一致性、提供有用错误信息、记录日志及分类处理异常。掌握这些技巧,能使Play应用更健壮可靠。
67 1
|
4月前
|
存储 C# 关系型数据库
“云端融合:WPF应用无缝对接Azure与AWS——从Blob存储到RDS数据库,全面解析跨平台云服务集成的最佳实践”
【8月更文挑战第31天】本文探讨了如何将Windows Presentation Foundation(WPF)应用与Microsoft Azure和Amazon Web Services(AWS)两大主流云平台无缝集成。通过具体示例代码展示了如何利用Azure Blob Storage存储非结构化数据、Azure Cosmos DB进行分布式数据库操作;同时介绍了如何借助Amazon S3实现大规模数据存储及通过Amazon RDS简化数据库管理。这不仅提升了WPF应用的可扩展性和可用性,还降低了基础设施成本。
89 0
|
4月前
|
Java 数据库连接 数据库
AI 时代风起云涌,Hibernate 实体映射引领数据库高效之路,最佳实践与陷阱全解析!
【8月更文挑战第31天】Hibernate 是一款强大的 Java 持久化框架,可将 Java 对象映射到关系数据库表中。本文通过代码示例详细介绍了 Hibernate 实体映射的最佳实践,包括合理使用关联映射(如 `@OneToMany` 和 `@ManyToOne`)以及正确处理继承关系(如单表继承)。此外,还探讨了常见陷阱,例如循环依赖可能导致的无限递归问题,并提供了使用 `@JsonIgnore` 等注解来避免此类问题的方法。通过遵循这些最佳实践,可以显著提升开发效率和数据库操作性能。
86 0
|
4月前
|
Java 开发者 前端开发
Struts 2、Spring MVC、Play Framework 上演巅峰之战,Web 开发的未来何去何从?
【8月更文挑战第31天】在Web应用开发中,Struts 2框架因强大功能和灵活配置备受青睐,但开发者常遇配置错误、类型转换失败、标签属性设置不当及异常处理等问题。本文通过实例解析常见难题与解决方案,如配置文件中遗漏`result`元素致页面跳转失败、日期格式不匹配需自定义转换器、`&lt;s:checkbox&gt;`标签缺少`label`属性致显示不全及Action中未捕获异常影响用户体验等,助您有效应对挑战。
92 0
|
4月前
|
Java Spring 开发者
Java Web开发新潮流:Vaadin与Spring Boot强强联手,打造高效便捷的应用体验!
【8月更文挑战第31天】《Vaadin与Spring Boot集成:最佳实践指南》介绍了如何结合Vaadin和Spring Boot的优势进行高效Java Web开发。文章首先概述了集成的基本步骤,包括引入依赖和配置自动功能,然后通过示例展示了如何创建和使用Vaadin组件。相较于传统框架,这种集成方式简化了配置、提升了开发效率并便于部署。尽管可能存在性能和学习曲线方面的挑战,但合理的框架组合能显著提升应用开发的质量和速度。
74 0