阿里游戏 资深技术专家李运华-阿里游戏异地多活设计之道

检嘉祥

2017/11/14 发布于 技术 分类

异地多活方案是业务高可用的关键,能够让业务在极端故障的情况下也能正常对外提供服务,但异地多活设计也很复杂,很多技术人员面对异地多活设计方案的时候都无法把握关键,无法做出正确的设计方案。我们结合阿里游戏多个成功上线且业务特点差异很大的异地多活方案,提炼出一些通用的原则和做法,希望能够对不同行业不同业务做异地多活设计有一定的帮助。

文字内容
2. 阿里游戏异地多活设计之道 李运华@阿里游戏(资深技术专家) DevOpsDays 2017·上海站
3. 目录 1 异地多活 – 1个原理 2 异地多活 – 3大原则 3 异地多活 – 4大步骤 4 阿里游戏实践 DevOpsDays 2017·上海站
4. 大道至简– CAP理论 异地多活本质上是一个AP方案 DevOpsDays 2017·上海站
5. 大道至深 – CAP细节 • CAP关注的粒度是数据,而不是系统 • CAP是忽略网络延迟的 • 正常运行情况下,可以同时满足CA • 放弃 != 无为,需要为分区恢复后做准备。 DevOpsDays 2017·上海站
6. 目录 1 异地多活 – 1个原理 2 异地多活 – 3大原则 3 异地多活 – 4大步骤 4 阿里游戏实践 DevOpsDays 2017·上海站
7. 原则1 – 只保证核心业务 丢車保帥:只保证登录的异地多活 DevOpsDays 2017·上海站
8. 原则2 – 只能做到最终一致性 复制肯定有时间窗,抛弃实时一致性的幻想 DevOpsDays 2017·上海站
9. 原则3 – 只保证绝大部分用户 不要为了0.01%的用户,而影响了99.9%的用户 DevOpsDays 2017·上海站
10. 目录 1 异地多活 – 1个原理 2 异地多活 – 3大原则 3 异地多活 – 4大步骤 4 阿里游戏实践 DevOpsDays 2017·上海站
11. 异地多活设计步骤 1. 业务分级 2. 数据分类 3. 数据同步 4. 异常处理 DevOpsDays 2017·上海站
12. 步骤1 – 业务分级 Ø访问量大 登录 > 注册 > 修改密码 Ø核心场景 聊天>朋友圈>摇一摇 Ø收入来源 订单>搜索>编辑 优先保证核心业务 DevOpsDays 2017·上海站
13. 步骤2 – 数据分类 Ø数据量 修改数据量 Ø一致性 余额、库存:强一致性 用户信息:最终一致性 Ø唯一性 账号:全局唯一; 昵称:全局不唯一 Ø可丢失性 账户余额变更:不可丢失; 微博:可丢失; Session:可丢失; Ø可恢复性 微博:重发即可(体验?) 用户密码:“忘记密码”找回 新闻:可以让运营人员重发 (工作量?) 不同数据不同处理方式 DevOpsDays 2017·上海站
14. 步骤3 – 数据同步 多管齐下,“不择手段” DevOpsDays 2017·上海站
15. 步骤4 –异常处理 Ø业务逻辑兼容 数据短时间不一致:业务有损,旧数据 数据无法获取:转账申请,支付核对中 Ø事后补偿 礼包、红包; 礼物、物品(暴雪炉石回档补偿); Ø人工修正 人工订正数据,达到最终一致性; 重要事情说三遍:日志、日志、日志 “客户第一”,要亏自己亏 DevOpsDays 2017·上海站
16. 目录 1 异地多活 – 1个原理 2 异地多活 – 3大原则 3 异地多活 – 4大步骤 4 阿里游戏实践 DevOpsDays 2017·上海站
17. 阿里游戏接入系统异地多活 1. 业务分级 登录、支付 2. 数据分类 session、角色id、账号密码 3. 数据同步 session:不同步,重复生成 角色id:全局唯一,消息队列同步 +算法重复生成 账号密码&支付:第三方管理,无需处理 4. 异常补救 人工修复 礼包、代金券补偿 DevOpsDays 2017·上海站
18. 阿里游戏接入系统异地多活 机房掉电、DDOS攻击。。。这都不算个事 DevOpsDays 2017·上海站
19. 会议 培训 咨询 • 8月18日 DevOpsDays 上海 • 全年 DevOps China 巡回沙龙 • 11月17日 DevOps金融上海 DevOpsDays 2017·上海站 • EXIN DevOps Master 认证培训 • DevOps 企业内训 • DevOps 公开课 • 互联网运维培训 • 企业DevOps 实践咨询 • 企业运维咨询 商务经理:刘静女士 电话 / 微信:13021082989 邮箱:liujing@greatops.com
20. Thanks 荣誉出品 高效运维社区 国际最佳实践管理联盟 DevOpsDays 2017·上海站
21. 想第一时间看到 高效运维社区公众号 的好文章吗? 请打开高效运维社区公众号,点击右上角小人,如右侧所示设置就好 DevOpsDays 2017·上海站