从零到壹我们是这样打造高可用公有云Redis服务 冯伟源@腾讯
2020-03-01 84浏览
- 1.8 1 从零到壹 我们是这样打造高可用公有云 Redis服务 T D C C 0 2 腾讯 高级工程师 冯伟源
- 2.个人经历 平安 数据库工程师(Oracle) 2012 SQL与实例优化、迁移备份监控 0 2 8 1 保险银行投资等金融业务支持 腾讯 T D C C 2014 高级数据库工程师(Redis) 海量NoSQL运营保障 自动化运维开发、运营规划 2015 唯品会 数据库工程师(MySQL) 订单商品网站业务DB支持 主流开源技术与架构
- 3.目录 contents 01 02 方案简介 PRODUCT DESCRIPTION 8 1 架构设计 ARCHITECTURE DESIGN 0 2 03 C C T 运营系统 SUPPORT SYSTEM D 04 运营思考 OPERATE THINK
- 4.PART 01 8 1 0 2 T D 方案简介 C C
- 5.Redis外部环境 人类活动 海量并发 NoSQL 远程字典服 务器 Redis 简洁、极 致,高效、 开源 T D C C 0 2 8 1 结构丰富、 生态活跃 2018 DBEngine KV 类第二
- 6.腾讯云CRS-Cloud Redis Store 漫游 消息 数据保障 托管部署 平滑拓展 数据迁移 T D 8 1 0 2 C C 全面监控 自动容灾 群 特点 资料 关系 超高性能 QQ 自定告警 海量 海量 用户 在线 分布式NoSQL技术 费用低廉
- 7.应用场景-游戏 CDB CVM 游戏逻辑服 玩家基础数据 负载均衡 游戏逻辑服 0 2 C C T D 游戏逻辑服 8 1 游戏对战服 活动信息 道具、金币 游戏排行榜 弹性缓存 云存储Redis 有序集合
- 8.客户案例 T D C C 0 2 8 1
- 9.PART 1 02 8 0 2 T D 架构设计 C C
- 10.C C 0 2 8 1 有哪些传统的Redis使用方法? T D
- 11.单实例和主从同步架构 Client Client 8 1 直连 T D 可靠性 数据易丢失 服务不可靠 0 2 C C Redis Redis 同步 Redis 自动化 无法自动容灾切换
- 12.C C 0 2 8 1 自动容灾切换-CRS主从版 T D
- 13.CRS-主从版 就近接入 反向鉴权 死机探测 负载均衡 CVM 业务逻辑层 接入机 名字服务 管理机 配置服务 心跳服务 运维服务 C C T D 存储层 存储主机 同步 配置客户端 运维客户端 8 1 0 2 接入机 存储备机 IP,port,权重,地域 IP,port,权重,地域 ...... 接入机 增加心跳上报 命令屏蔽 增加监控埋点 路由寻址 流式转发 超时上报
- 14.C C 0 2 8 1 容量与性能的扩展-CRS集群版 T D
- 15.集群架构-Client-Base Client Redis 分库分表 多套实例 客户端实现分片逻辑 8 1 0 2 C C T D Redis 特点 Redis 不足 开发者分片麻烦 静态分片,缺乏动态扩容能力 可运维性差 不支持跨Key命令和事务
- 16.其他集群实现方案 Twemproxy Codis Redis Cluster 持 久 化 时 质 量 抖 动 8 1 0 2 C C T D 内 存 碎 片 内 存 溢 出 CRS集群版 存 活 误 判 监 控 告 警 备 份 回 档 流 水 审 计 数 据 安 全 权 限 分 级 多 租 户 资 源 隔 离 差
- 17.CRS-集群版 就近接入 反向鉴权 死机探测 负载均衡 CVM 业务逻辑层 名字服务 管理机 配置服务 心跳服务 运维服务 T D 存储主机 同步 存储备机 8 1 0 2 C C 接入机 接入机 存储主机 同步 IP,port,权重,地域 IP,port,权重,地域 ...... 接入机 存储主机 同步 存储备机 存储备机 一致性 hash寻址 多块共享内存 多个读写进程 定时快照 写流水
- 18.数据分片 • 物理机->虚拟节点 • 按hash(key)寻址 • 一致性hash • • • • • 自动计算配置 无限平行扩展 打散热点 迁移最小化 数据均匀分布(±3%) T D C C 0 2 8 1
- 19.私有内存VS共享内存 私有内存 VS C C T D 预留两倍内存 页表复制带来抖动 8 1 数据安全与版本发 布更容易 0 2 重启数据释放 COW机制 共享内存 遍历+流水 占用内存更少 不存在页表复制
- 20.CRS接入机 客户端 1. 客户请求 前端连接管理组件 2. 协议解析派发 断链通知, 关闭会话 协议解析组件 3A. 简单命令 转发 配置 中心 配置 中心代 理组件 事务 会话 管理 组件 普通命令 转发组件 4A. 按KEY寻址, 获取ip C C 5A. 转发请求, 获取应答 事务执行组 件 T D 5B. 执行事务, 加锁、解锁等 Cache连接池管理 存储机A 存储机B 存储机C 命令队列 路由功能 流式转发 链接池 命令统计 8 1 0 2 3B. 事务命令缓 存 4B. 缓存命令 Auth鉴权 命令过滤 死机探测 基本 安全 写远程流水 进阶 事务会话 防雪崩的超时机制 读写端口(实现中) 热Key导流(实现中)
- 21.CRS配置中心和心跳管理 配置加载:配置表-> 服务端配置 签名对比:筛选出需要接收配置的机器 配置推送:将配置推送到指定机器 上报心跳:上报心跳并更新客户端状态 存活更新:将服务器记载的各机器状态做更改 4.配置推送 配置客户端 ...... 0 2 C C 3.签名对比 配置客户端 T D 客户端 状态 5.上报心跳 8 1 服务器 状态 6. 存活更新 配置中 心 2.配置加载 织云 1.配置修改 配置数据 库
- 22.分布式KV系统管理模块总结 运维模块 C C 烽火台 配置模块 行政中枢 8 1 0 2 心跳管理 T D 工兵 巡检模块 信息外报 巡逻部队 对外信使
- 23.微服务化的公共支撑系统 远程日志系统 ULS,统一远程日志服务 01 04 流水中心 记录写流水,快照回档 与审计 配额管理系统 根据配置对资源限额限流 02 05 Monitor监控 T D 多维监控 0 2 C C 监控系统 8 1 03 06 名字服务 CMLB,带负载均衡、死机 探测、回包统计、反向鉴权 功能的名字服务系统 冷备系统 微服务定义:微服务是一种软件架构风格,它是以专注于单一责任与功 能的小型功能区块为基础,利用模组化的方式组合出复杂的大型应用程 序,各功能区块使用与语言无关 的 API 集相互通讯。
- 24.PART 03 8 1 0 2 运营系统 C C T D
- 25.运营保障的重要性 运维本质 系统运维的本质是人与计算 机共同参与的一项系统性工 程 成本投入 上线前 上线后 0 2 C C T D 8 1 40-90%的开销在运营阶段 1年研发 3-5年运营
- 26.运营问题 监控数据异常 超时 设备死机 环境(网络、OS) 阻塞请求 来源分析 管 理 权 限 空 调 故 障 单机容量上限 报错分析 8 1 安全问题 毛刺与抖动 网络割接 僵 设计(持久化、碎片) 死 0 丢 2 开发(慢查询、连接风暴) 慢查询 C 包 C T 用户(处理能力极限) D 全内存成本高 交 换 多版本支持 机 拥 堵 命令分析 持 久 化 时 性 能 颠 簸 Key回档 单线程 CPU瓶颈 连接风暴 进 程 配置不当 数据一致性 资源不匹配 (需求<->供给) 热Key 数 据 同 步 链接数满 硬 盘 故 障 光纤挖断 链接闪断 OOM
- 27.运营挑战 挑战一:元信息的一致性管理? 8 1 挑战二:万台设备的作业方 式? 0 2 C C 挑战三:如何实现智能调度? T D
- 28.挑战一:元信息管理 元信息混乱带来的不一致性 8 1 地域?机房?交换机? T D C C 0 2 集群,IP,端口? 实例,容量,配置?
- 29.挑战一:元信息管理 织云 调度中心 信息互联,消除孤岛 数据同步和一致性保障 统一配置与元信息 基础信息的统一管控 全 准 入 作业平台 决策平台 8 1 消费 0 2 DB-CMDB(数据库层的统一元信息管理) C C T D 集群 设备 实例 梳理元信息,公共特征,分类建模, 抽象属性与方法,定义数据结构, 设计API,定制同步。 配置
- 30.挑战一:元信息管理 T D C C 0 2 8 1
- 31.挑战二:万台设备的作业方式 C C 0 2 8 1 T D 大家是怎么做批量作业的?
- 32.挑战二:万台设备的作业方式 手工式运维 万台设备 亿级QPS 0 2 C C T D 8 1 堆人力扛业务 规模上来后, 原始的运维方式无法应对 难积累与传承
- 33.作业平台 表单控 件、前端 交互、对 外接口 应用接口 外围支撑 CMDB 流程 工具 流程 工具 底层工具 批量命令 包发布 …… 工具 执行 引擎 执行 引擎 T D 密码服务 智能 8 1 0 2 C C …… 流程 支撑 模块 任务 支撑 模块 流程注册 管理、调 度、执行引 擎相 任务的管 理、调度、 执行,RPC 接口,异步 同步接口 统一日志 权限管理 名字服务 冷备系统 监控系统 …… OA系统
- 34.作业平台 T D C C 0 2 8 1
- 35.运营效率提升 运营操作前后耗时(min) 实例清空 实例缩容 实例隔离 实例迁移 版本发布 机器下架 机器上架 集群扩容 备机重建 效率提升 300% 0 2 C C 0 T D 8 1 50 100 现在 最初 150 200
- 36.挑战三:如何实现智能调度? 如何实现咖啡运维? 0 2 8 1 运维闭环的构造 T D C C
- 37.挑战三:如何实现智能调度? 决策平台 调度中心 决策树 注册 AI决策 时间调度 专家规则 T D 8 1 0 2 C C 绑定事件对应的决策树 作业平台 事件调度 流程 任务 引擎 绑定结果对应的作业流
- 38.智能调度全流程 监控系统 2.告警捕获 3.决策请求 决策平台 专家规则 资源推理 1.监控上报 迁移原机(高负载) Redis Redis 8 1 调度中心 4.作业请求 0 2 C C T D 作业平台 Redis 迁移目标机(低负载) Redis 运维作业 目标匹配 实例新建 数据同步 状态检测 结果返回 资源释放 DBCMDB 同步 路由切换 Redis
- 39.注册事件 注册事件并关联决策 树: 触发单点事件后的处 理: T D C C 0 2 8 1
- 40.决策平台 依据专家规则,组成一棵树形决策流程 CRS集群版单点处理决策 是 是 否 原机重建 T D 是 忽略 8 1 0 2 C C 否 否 是 业务进程正常? 正在同步? Seq差异减少? 机器健康状态? 原机重建 否 建新备机 建新备机
- 41.织云For DBMS 织云门户 决策平台 调度中心 监 控 中 心 公共 支撑 名字服务 权限系统 API网关 配置替换 数据库 Redis 0 2 C C T D 命令通道 8 1 作业平台 包发布 资源管理 DB-CMDB 集群 设备 实例 配置 一致性监控 包管理 CDB Mongo DB TDSQL HBase 变 更 管 理
- 42.8 PART 04 1 0 2 T D C 运营思考 C
- 43.云运营管理之道 服务白皮书 最佳实践指南 C C 版本测试报告 成本与预核算 用户走访与培训 统一服务台 问题与事件管理 T D 8 1 0 2 服务等级协议 海量运营之道 能力、质量、效率、成本 用户报障 质量监控 问题分析 组件优化 形成工具 共性提炼
- 44.运维成熟度的衡量 手工式 脚本式 标准化 工具化 0 2 C C 业务增值 成本优化 T D 支 持 8 1 智能化、 深度学习 推 动 引 领 可视化 流程化 平台化 自动化
- 45.云时代下对DBA的全面要求 产品 运维 社 区 开发 8 1 产品 D 0 2 DBA C C T 服务一体 DO合一 源码 架 构
- 46.@织云 0 2 8 1 D C 謝 C T 企业级智能一体化 运维平台 @我
- 47.