大梁-解密腾讯社交业务高可用架构的关键运维技术

运维自动化是我们所渴望获得的,但是我们在一味强调自动化能力时,却忽略了影响自动化落地的一个关键因素。那便是跟运维朝夕相处,让人又爱又恨的业务架构。

1. GOPS 全球运维大会 2018 2018.4.13-4.14 中国·广东·深圳·南山区 圣淘沙大酒店(翡翠店) GOPS 全球运维大会2018·深圳站
2. 解密腾讯社交业务高可用架构的关键运维技术 梁定安 腾讯织云 GOPS 全球运维大会2018·深圳站
3. 个人简介 梁定安(大梁) • 2年产品,10年运维 • 腾讯织云负责人,腾讯云布道师,腾讯学院讲师 • GOPS金牌讲师,复旦大学客座讲师 GOPS 全球运维大会2018·深圳站
4. 目录 1 腾讯高可用架构的演进 2 面向运维的架构设计 3 织云的架构技术实践 GOPS 全球运维大会2018·深圳站
5. 为什么要高可用架构? 开发:让服务活着 运维:不背黑锅 ITIL:保障业务的连续性 DevOps:实现业务价值 GOPS 全球运维大会2018·深圳站
6. 典型的架构演进的过程 巨石架构 逻辑分拆 数据与逻 辑分离 消息队列 缓存服务 分库分表 负载均衡 读写分离 主备切换 柔性有损 sql与 nosql 名字服务 • 更大的业务量:高并发、高可用、可扩展 GOPS 全球运维大会2018·深圳站
7. 移动互联网时代,腾讯的架构演进 • 接入层与逻辑层独立vip接入,数据层共用 • PC与手机的发布变更不相互干扰 • 运维保障可区分优先级对待(容量、监控等) • 架构调整简单可快速实现 域名 域名 接入层 接入层 物理 部署 独立 逻辑层 逻辑层 数据层 GOPS 全球运维大会2018·深圳站
8. PC与移动端分离 域名 vip(BGP) 接入层 逻辑层 物理 部署 独立 统一接入框架 接 入接 接 接 层入 逻 入 逻 入 逻 辑A 辑 B 辑 C 读逻辑 逻 1 辑 层 读逻辑 2 写逻辑 1 写逻辑 2 数据层 GOPS 全球运维大会2018·深圳站
9. SET条带化 域名 vip(深圳) vip(上海) 接入层 读 写 逻 逻 辑 辑 数据层_ 读 (常用) 统一接入框架 接 入接 接 接 层入 入 入 逻 逻 逻 辑A 辑B 辑C 统一接入框架 接 入接 接 接 层入 入 入 逻 逻 逻 辑A 辑B 辑C 逻 读逻辑 1 辑 层 读逻辑 2 写逻辑1 写逻辑2 数据层_读 (常用) 读逻辑 逻 1 辑 层 读逻辑 2 写逻辑1 写逻辑2 数据层_读 (常用) 数据层_读 (全量) 回源读请求 数据层_写 GOPS 全球运维大会2018·深圳站 • 数据层读写分离,多地读单点写 • 条带化运维管理,抽象运维对象,效率提 升 • SET化管理,容灾调度快速决策,SET内服 务/网络异常,按SET为单元调度 • 用户就近接入,速度提升 • SET容量(支撑用户量)标准化管理,SET 数量按需部署
10. 异地多活 • 多读多写,用户就近接入,体验最优 • 专区按业务量部署,异地互备,数据安全性高 • 可按不同业务场景建设不同专区 • 可实现接入智能调度容错 PC专区 接入 层 逻辑 层 数据 层 华北地区 手机专区1 接入 层 逻辑 层 数据 层 手机专区2 接入 层 逻辑 层 数据 层 PC专区 接入 层 逻辑 层 数据 层 华南地区 手机专区1 接入 层 逻辑 层 数据 层 手机专区2 接入 层 逻辑 层 数据 层 建成可靠的数据同 步机制,实现多读 多写,异地多活 华东地区 手机专区3 接入 层 手机专区4 接入 层 逻辑 层 逻辑 层 数据 层 数据 层 西部地区 手机专区3 手机专区4 接入 层 接入 层 逻辑 层 逻辑 层 数据 层 数据 层 GOPS 全球运维大会2018·深圳站
11. 目录 1 腾讯高可用架构的演进 2 面向运维的架构设计 3 织云的架构技术实践 GOPS 全球运维大会2018·深圳站
12. 优秀的架构对运维的重要性 GOPS 全球运维大会2018·深圳站
13. 优秀的架构对业务的重要性 规划与设计 产品 开发 功能实现 Bug修复 客服 测试 度量验收 故障处理 监控与运营 运维 用户 发布与交付 投诉与建议 GOPS 全球运维大会2018·深圳站
14. 运维想从高可用架构得到什么? GOPS 全球运维大会2018·深圳站
15. 腾讯海量运营之道 有损服务 动态运营 GOPS 全球运维大会2018·深圳站 运营意识 大系统小做 先扛住再优化 干干净净 边重构边生活 容灾 过载保护 负载均衡 柔性可用 分SET部署 灰度发布 立体监控
16. 7个核心技术手段 容灾 Ⅰ • 硬件容灾 • 业务逻辑容灾 • 数据层容灾 Ⅱ 过载保护 • 轻重分离 • 频率控制 • 容量管理 • 动态调节 负载均衡 Ⅲ • 轮循均衡 • 权重轮循均衡 • 处理能力均衡 • …… GOPS 全球运维大会2018·深圳站 柔性可用 Ⅳ • 重要接口重点保障 • 次要接口有损可用 分SET部署 Ⅴ • 独立自治,规模量化 • SET间专线窄带化 • 分布规整(同IDC) 灰度发布 Ⅵ • 灰度发布的优势 • 灰度发布的纬度 立体监控 Ⅶ • 系统层监控 • 应用层监控 • 用户层监控
17. 目录 1 腾讯高可用架构的演进 2 面向运维的架构设计 3 织云的架构技术实践 GOPS 全球运维大会2018·深圳站
18. 求:一张运维的护身符 路由服务 名 负 流 字 载 量 服 均 调 务 衡 度 • LVS • HAProxy • Nginx • DNS 内网寻址? GOPS 全球运维大会2018·深圳站
19. 路由服务的两种模式 GOPS 全球运维大会2018·深圳站
20. 织云路由的技术架构 写入配置变更 Web管理系统 DB 读取配置变更记录 路路由由sesrevrevrer • 负载均衡 • 本地决策 • 秒级调度 配置更新 路由 Agent GetRRoouuttee获报R取e调suip用l:tpU结oprtd果a路te上由api 业务进程 路由api 业务进程 根据ip:port请求 返回 GOPS 全球运维大会2018·深圳站 主调机器 被调服务集群
21. 织云路由L5的收益 • 质量提升 • 效率提升 • 覆盖率>95% • SNG运营规范 • 多语言支持 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 月故障总数 L5接入率 GOPS 全球运维大会2018·深圳站
22. 功能特点与算法 就近访问,异地容灾 一致性hash寻址 过载保护 精细的服务质量监控 单机容错&自动恢复 流量调度 负载均衡 名字服务 Agent计算各被调节点权重W(k)的算法描述如下: 1. 服务器k的最终权重 W(k) = 动态权重Wd(k) * 静态权重 Ws(k) 2. 服务器k的动态权重 Wd(k) = 1/load(k) 3. 服务器k的负载值load(k) = delay_load(k) * 延时倍率 + ok_load(k) * 成功率倍率 4. 服务器k的延时负载值delay_load(k) = delay(k) / min(delay(0) .. delay(n)) 5. 服务器k的成功率负载值ok_load(k) = max(ok_rate(0) .. ok_rate(n)) / ok_rate(k) 6. 从上面的公式我们可以看出动态权重Wd(k)与被调节点的成功率ok_load(k)正相关, 与时延delay_load(k)反相关。静态权重可用于手动调节节点权重,用于灰度,压 测等; GOPS 全球运维大会2018·深圳站
23. 与业务其他方案对比 对比功能项 就近访问寻址 故障风险 负载均衡 容错能力 过载保护 部署维护 监控统计 使用门槛 织云路由 LVS/F5 DNS 支持 不支持 支持,根据不用国家、省份、 运营商进行调度 只提供寻址,不转发业务数据;有缓存 机制,故障对业务几乎无影响 需集中转发业务数据;故障对 业务是致命的(通过规范标准 的集群容灾规避整集群故障) 有缓存机制;故障对业务有影 响 基于业务应用层反馈,可靠性更高;支 持权重,动态自适应调节; 负载均衡算法比较简单。 基于简单的轮询机制 支持RS自动容错,恢复 支持自动容错; 无 有 无 无 主调机器安装agent即可 需要专用设备,或对系统进行 特殊配置 系统缺省提供 基于API上报,对服务的请求量、成功率 和返回码进行统计,实现服务质量的精 无法提供业务纬度的精细监控 无法提供业务纬度的精细监控 细化管理 低,需业务代码调用API 无,VIP方式,对业务透明 低,需业务调用域名查询API GOPS 全球运维大会2018·深圳站
24. 织云路由架构演进1:路由配置中心 GOPS 全球运维大会2018·深圳站
25. 织云路由架构演进2:无代码侵入 服务注册: x.x.x L5 Server 路由 下发 L5 Agent 获取名字服务被 调IP+Port 监听本机udp:53 提供dns解析服务 DNS Agent /etc/resolv.conf nameserver 127.0.0.1 nameserver y.y.y.y … L5 API ApiGetRout e ApiRouteRes ultUpdate 主动探测服务被调是否 存活 获取服务被调IP+Port 业务应用 访问服务被调 GOPS 全球运维大会2018·深圳站 业务应用 getaddrinfo x.x.x 操作系统DNS解析 从host文件等寻 址 第一个ns解析域 名 失败选择下一ns … 访问服务被调
26. 织云路由与运维场景的融合 灰度发布 自动上线 防雪崩 故障自愈 容量调匀 请求权重 服务监控 在线压测 条带化调度 哈希路由 秒级容错 就近接入 集中管理 绘制拓扑 服务发现 • 从架构的源头解决问题 • 从架构支撑运维自动化的实现 GOPS 全球运维大会2018·深圳站
27. Thanks 高效运维社区 开放运维联盟 荣誉出品 GOPS 全球运维大会2018·深圳站
28. 想第一时间看到高效运维社区 的新动态吗? GOPS 全球运维大会2018·深圳站