万级实例规模下的数据库可用性保障实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 万级实例规模下的
数据库可用性保障实践
左兴宇 | vivo 互联网 存储运维总监
全球敏捷运维峰会 广州站
2. 标题
目录
1 vivo 数据库运维简介
2 可用性管理方法论和管理实践
3 业务规模&可用性管理挑战
4 平台能力对可用性的影响
5 可用性和成本的冲突和调和
全球敏捷运维峰会 广州站
3. 一、vivo 数据库运维简介
➢ 存储产品
存储产品数:8
2018
✓
✓
✓
✓
MySQL
Redis
MongoDB
ES
2019
+TiDB
2020
+磁盘KV
+对象/文件存储
全球敏捷运维峰会 广州站
2021
+MySQL-Proxy
4. 一、vivo 数据库运维简介
➢ 数据库运维规模增长趋势
20
70000
17.7
60000
15.8
62000+
50000
40000
48000+
20000
10000
10
8.2
30000
30000+
4.2
2700+
11000+
15
5
3700+
3400+
3100+
0
0
2018年
2019年
物理机数量
2020年
实例数量
实例密度
全球敏捷运维峰会 广州站
2021年
5. 一、vivo 数据库运维简介
➢ 业务 & SLA等级
核心
用户
业务
体验
营收
贡献
公司
24个核心业务:99.99%
其他 重要
业务 业务
113个重要业务:99.95%
227个一般业务:99%
19个其他业务:无
一般
口碑
业务
运维发起
业务评估
全球敏捷运维峰会 广州站
会签确认
6. 一、vivo 数据库运维简介
➢ SLA & 计算
i..n:表示项目对应的集群数量
核心业务
•全年可用性损失时长
99.99%
数据库SLA
重要业务
99.99%
Wi:项目对应的每个集群的权重
<53分钟
•全年可用性损失时长
<53分钟
i..n:表示集群内故障实例的数量 D
:表示故障实例在集群内部的权重 T
:指该实例的故障时间,单位是分钟
一般业务
99.95%
•全年可用性损失时长
<262分钟
全球敏捷运维峰会 广州站
7. 二、可用性管理方法论和管理实践
➢ 可用性管理四部曲
故障发现
故障复盘
100%发现故障,提高发现
效率,尽可能准确定位故障
点,收集故障上下游信息
01
吃一堑长一智,客观的分析
02
04
故障原因,挖掘故障背后的
根因,以点带面,长效解决
一类问题
03
故障预防
故障治愈
在可能出现故障的地方提 先止损,再调查;固定场景
前做工作,消灭故障在未 系统自愈,丰富自愈场景;
发生之时 建设故障预案
全球敏捷运维峰会 广州站
8. 二、可用性管理方法论和管理实践
•
故障预防
防止架构天然缺陷
架构
优化
是否都有高可用,是否都能自
动更新拓扑,是否都能重连
重 试,典型的无高可用,主
备同 物理机同交换机,通过
巡检主 动发现,触发报警。
应该如此,但可能不如此
功能
可靠
现在正常,将来不正常
随着数据量的持续增长,现在
没有问题不代表未来没有问题,
比较典型的主键ID越界,通过
巡检主动发现,提前处理。
数据
增长
故障预防
理论上应该具备的能力,实际
使用可能存在异常,环境的变
化,代码的变化都可能引起不
符预期。通过场景演练去发现。
全球敏捷运维峰会 广州站
数据库上下游问题
业务配置和数据库配置不匹配,
配置的变化和数据库没有联动,
典型的DB链接数超配。通过巡
检主动发现,提前处理。
上下游
9. 二、可用性管理方法论和管理实践
•
故障预防
工作依赖人,但人是极大的不确定因素
<20%人工
80%人工
100%人工
手工操作
脚本操作
全球敏捷运维峰会 广州站
平台化
建标准
建流程
自助化
10. 二、可用性管理方法论和管理实践
•
故障发现
平台可用性 99.98% | 告警延时 58.25s | 故障召回率 100% | 报警准确率 100%
全球敏捷运维峰会 广州站
11. 二、可用性管理方法论和管理实践
•
故障修复
自愈场景
• 主机故障主备自动切换
• MySQL链接数打满,自动扩容
• Redis连接数自动扩容
• ES进程自动拉起
• MySQL BINLOG自动清理
• Redis进程自动拉起
故障预案
• MySQL故障预案—13个场景
• Redis故障预案—9个场景
• ES故障预案—2个场景
• 磁盘KV故障预案—3个场景
• 对象存储故障预案—2个场景
全球敏捷运维峰会 广州站
12. 二、可用性管理方法论和管理实践
•
故障复盘
故障
复盘
问题简述
影响和损失
改进措施
责任方 故障详细过程 责任主体 回溯故障过程详 ➢ 问题根因 ➢ 改进措施
原因分析
➢ 故障背景 ➢ 故障等级 ➢ 问题影响 ➢ 时间相关 细时间点以及动 ➢ 重发问题 ➢ 任务描述
➢ 问题原因 ➢ 用户相关 作 ➢ 故障原因 ➢ 解决方案
➢ 简要过程 ➢ 经济损失 ➢ 责任人
➢ 可用性计算 ➢ 落地时间
➢ 主被动发现
全球敏捷运维峰会 广州站
13. 三、业务规模&可用性管理挑战
➢ 起步阶段
平台能力5%,借助开源工具管理数据库
2018年
11000实例
5人
元数据10%,各类信息靠excel表格+人脑记忆,混乱且不准确
数据库标准/规范5%,无体系化标准约束,依靠DBA经验
业务架构能力弱,业务数据高度耦合
闭源高可用方案
全球敏捷运维峰会 广州站
数据库平台第一行代码
梳理元数据信息
表格管理
编写数据库标准,
建立部分流程
业务共库整治专项
高可用架构改造
引入MHA
14. 三、业务规模&可用性管理挑战
➢ 建设阶段
平台能力60%,覆盖MySQL,Redis基本运维流程
2019年
30000实例
6人
元数据80%,平台管理流程,平台落地部分标准
数据库标准/规范70%,标准会签,业务宣导
数据库架构优化;数据库产品能力弱
机房迁移
全球敏捷运维峰会 广州站
数据库变更系统,数据
库查询系统,巡检系统
数据库挂载信息整理
编写数据库标准,
统一数据库版本
Redis cluster方案推广
数据库产品设计
机房质量和资源不足
迁移也是件好事
15. 三、业务规模&可用性管理挑战
➢ 稳固阶段
平台能力80%,上下游依赖更重
2020年
48000实例
8人
元数据90%,存在多属主资源场景
Redis非标准架构集群改造
线下环境管理没纳入DBA管理,可用性保障差
机房迁移
全球敏捷运维峰会 广州站
打通数据流程上下游,
多系统联动
资源归属整治专项
推动业务适配,不能整
改的输出故障预案
DBA接手线下4000+实
例,纳入平台管理
元数据校准
架构优化
16. 三、业务规模&可用性管理挑战
➢ 拓展阶段
平台能力85%,引入更多自研数据库产品
2021年
60000实例
10人
云下元数据99%,云上资源信息不全,覆盖不全
TiDB平台能力建设
KV存储平台能力建设
云资源全部打通
数据流向平台内闭环
大规模对象存储集群的可用性保障,KV存储大规模使用 操作流程标准化
高可用能力升级 MySQLProxy线上推广
故障预案
全球敏捷运维峰会 广州站
平台能力建设
/运维
加强故障事前排查,通
过预案提高修复效率
17. 三、业务规模&可用性管理挑战
➢ 总结
管理
心得
辨证看待
历史包袱 机房迁移动作在客观条件上看既然无法避免,那么就应该发挥它的最
大价值,被动大事件去驱动元数据梳理/架构改造,也是件好事。
统一标准 架构标准,部署标准,版本收敛,强化开发规范,把需要特殊处理的
场景减少,不确定因素也能相应减少。
平台能力
的重要性 平台建立在标准化之后,平台又能反向推动标准和流程的落地,平台
能力是大规模运维的基石。
全球敏捷运维峰会 广州站
18. 四、平台能力对可用性的影响
效率
提升
大规模运维交付能力的基石
大规模数据库资源的运维建立在各种标准之上,人是建立标准的主体,系统是保障
标准被执行落地的主体。平台能够大幅缩短运维工作的交付时间,并保证交付质量
的稳定。
大规模运维可用性保障的基石
可用性
提升
平台是标准化落地的载体,也是可用性保障的终极解决方案,在提高日常工作交付
效率的情况下,通过自助的方式把标准工作外包出去,减轻DBA的工作负担,对可
用性的保障起到关键作用。
全球敏捷运维峰会 广州站
19. 四、平台能力对可用性的影响
存储产品
• MySQL、TIDB,MySQL-Proxy
• MongoDB,ES
• Redis,Redis-Proxy,磁盘KV
• 对象/文件存储
业务场景
• 数据变更,数据查询,变更回滚,操作审计,
数据归档,导入导出
• 预算申请,服务申请,服务扩/缩容,服务回
收,配置变更,套餐升降配,服务监控
• 主机监控,实例监控,业务监控,Proxy监控
全球敏捷运维峰会 广州站
20. 四、平台能力对可用性的影响
巡检大盘
故障跟踪
慢查询
巡检上报
报警汇总
全球敏捷运维峰会 广州站
21. 五、可用性和成本的冲突和调和
B机房
A机房
A机房
1
Master
2
灾备
Slave
Master
Slave
2
Slave
Slave
3
Slave
全球敏捷运维峰会 广州站
1
22. 五、可用性和成本的冲突和调和
可用性优先阶段 精细化运营阶段
在此阶段,以可用性最优解为目标,标
准部署,提升可用性管理能力,收集数
据库运营数据 可用性管理趋于稳定,对线上业务形态
更多的掌控,可以根据实际业务场景,
做差异化的调整,释放非必要的资源。
核心业务:
核心业务:
• 一主多从
• 一主多从
• 独立物理机部署
VS
• 延迟从库
• 跨机房灾备;计算资源独立部署
其他业务:
• 一主两从
• 混合部署
• 独立部署+混合部署
• 延迟从库
• 部分跨机房灾备;计算资源混部
其他业务:
• 一主一从
• 混合部署
• 计算资源混部
全球敏捷运维峰会 广州站
23. THANK
YOU!
全球敏捷运维峰会 广州站
更多vivo数据库相关知识
敬请关注“vivo互联网技术”公众号