渲染后台故障演练实践

渲染后台架构

渲染集群几个机房,每个机房有proxy、renderservice、redis、mysql

  • Proxy:控制节点,角色为 master 或 slave,每个集群至少部署 2 个以成环;
  • Render:渲染节点,每个集群有上百个;
  • Redis:存储任务信息、配置信息等等,以主备的方式部署;
  • MySQL :存储任务调度信息、任务结果等持久化数据。

演练项

(图片来自网络)

渲染后台是较为底层的服务,redis是主要依赖的中间件,也是发生故障最多的地方。所以演练的重点是redis;

Redis

  • 单点故障:kill one sentinel,kill all sentinel,kill master,
  • 主从切换:来回 kill master
  • 服务器宕机:one sentinel宕机,all sentinel 宕机,master宕机,all 宕机
  • 网络异常: one sentinel网络不通,master网络不通
  • 内存异常:redis maxme meroy打满,服务器内存耗尽
  • CPU异常:one sentinel满载,master满载
  • 磁盘异常:disk io 高,磁盘写满
  • 备用redis切换

proxy

  • 单点故障
  • master 选举
  • 负载均衡
  • proxy 高负载压测

后续目标:

  • CPU异常、网络异常、内存异常、磁盘异常
  • 千台大集群proxy验证

mysql

  • 网络异常
  • 异常重连

网络

淮南机房目前渲染服务器接近一半的渲染资源在淮南机房。淮南机房公网出口为了稳定性保障,网络组已经部署两条电信线路:合肥和 江苏 ,目前现网渲染业务走合肥线路,江苏线路做为备份线路

主要模拟场景:当合肥线路中断后,防火墙自动切换到江苏线路后,业务层面使用域名DNS地址从合肥ip地址切换到江苏ip地址,保证业务能正常运行

演练目的

  • 预案有效性:主要验证“备胎”靠不靠谱;系统强依赖的模块需要有降级、备用方案;需要对这类方案做有效性验证;
  • 监控报警:报警的有无、提示消息是否准确、报警实效是5分钟还是半小时;
  • 故障复现:故障的后续Action是否真的有效,完成质量如何,只有真实重现和验证,才能完成闭环。发生过的故障也应该时常拉出来练练,看是否有劣化趋势;
  • 架构容灾测试:主备切换、负载均衡,流量调度等为了容灾而存在的手段的时效和效果,容灾手段本身健壮性如何;
  • 参数调优:限流的策略调优、报警的阈值、超时值设置等;

关注我们

酷家乐质量效能团队热衷于技术的成长和分享,几乎每个月都会举办技术分享活动(海星日),每半年举办一次技术专题竞赛分享(火星日),并将优秀内容写成技术文章。

我们尽可能保障分享到社区的内容,是我们用心编写、精心挑选的优质文章。如果您想更全面地阅读我们的文章,请您关注我们的微信公众号"酷家乐技术质量"。