Golang 微服务在腾讯游戏用户运营领域的探索及实践

2020-02-27 239浏览

  • 1.Golang微服务 在腾讯游戏用户运营领域的探索及实践 刘家雄
  • 2.2017/4/18
  • 3.Web Architecture 关于我 刘家雄<@楚吟风>
  • 4.提纲 腾讯游戏用户运营介绍 服务化架构演进 DSL加速敏捷 基准数据 总结及展望
  • 5.腾讯游戏用户运营
  • 6.关于腾讯游戏用户运营 核心 用户 忠诚度 User Intervene 用户 干预 特权 Measure 服务 评估
  • 7.技术体系
  • 8.服务化架构演进
  • 9.演进历程 MVC Middleware Gateway MicroServic e
  • 10.经典LNMPA架构 先抗住再优化 业务混合部署 面向需求实现
  • 11.效率质量之痛 流程 敏捷 隔离 性能 安全 监控
  • 12.中间件技术选型 团队背景 CSP并发 生态趋势 运营成本 内部生态 内核稳定 多核友好 Golang 快速交付 开发成本 业务发展 自动GC 语法简洁 CGO集 成 开源库多
  • 13.数据中间件——指标服务 Golang 高性能 高可用 扩展性 安全性 可运营性
  • 14.业务发展驱动技术演进
  • 15.服务网关 过载保护 流控降级 SET部署 立体监控 敏捷集成
  • 16.微服务探索 问题 手段 • 标准接口 跨部门 解析适配 业务隔离 异构系统 IDL • 非标接口 Script 转码逻辑 托管接入 非标接口 • 字段约定 • 逻辑编码
  • 17.嵌入脚本选型 Custom Javascript(V8) 交互开销 Javascript (otto) 学习 线程 成本 安全 VM线程开 销 • Expression、Learning cost • CGO overhead • Performance Python/PHP • CGO / Thread Safe cLua/cLuaJIT • CGO / Thread overhead GopherLua • Performance / API friendly
  • 18.嵌入式Lua虚拟机 Gopherlua VM Pool Closure 隔离 即写即用
  • 19.One VM One Service, Write Once Run Anywhere
  • 20.微服务划分 策略 特征 指标 • 服务编排、运营策略 • 离线标签类画像, 触达 批量选取用户群 • 离线及实时用户指 标,单用户业务个 User Intervene 用户 干预 性化属性数值 Measure 评估 营销 • 短信、Tips、邮 件、站内信通知 • 礼包发放、积分 赠送、体验资格
  • 21.微服务实践 服务注册发现 负载均衡 • CDB + CKV / ETCD • CL5 / LVS CAE自动伸缩容 鉴权 • ID / Token / IP 流控 • Atomic + Inmem + Redis、令牌桶 降级 • 轻重分离、单元化部署、容错 日志监控告警 运行时类库 • 实时上报、缓存汇聚/本地文件、ELK • Bind Golang to Lua
  • 22.并发模型 异步Async 批量Batch 多核并行Parallel Lua协程绑定Go程 IO阻塞自动切换
  • 23.高可用 负载均衡 寻址 限流 缓存 降级 SLA保证
  • 24.并行执行单元 消息总线 屏蔽本地网络差异 微执行单元 水平伸缩
  • 25.运营监控 旁路实时上报 自定义告警策略 收敛算法 海量日志查询
  • 26.DSL加速敏捷
  • 27.微服务编排 Node Graph Flow API调用 条件分支 编排策略
  • 28.DSL设计
  • 29.应用落地 开发外包 运营自助 • 正职开发核心服务,流程编 排外包 • 运营填写表单,活动一键上 线 流程复用 • 策略嵌套、一键复制 自动测试 • 自动Mock、分支覆盖 模型沉淀 • 流程固化,沉淀运营模型
  • 30.基准数据
  • 31.基准数据
  • 32.总结及展望
  • 33.总结及展望 服务网关 快速集成 微服务 服务编排 敏捷迭代 流程沉淀 技术驱动 执行单元 业务优化 并发并行
  • 34.