腾讯互娱高级工程师 刘家雄 - Golang 微服务在腾讯游戏用户运营领域的探索及实践

2020-02-27 675浏览

  • 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.嵌入脚本选型 交互开销 学习 成本 线程 安全 VM线程开 销 Custom • Expression、Learning cost Javascript(V8) • CGO overhead Javascript (otto) • 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 API调用 Graph 条件分支 Flow 编排策略
  • 28.DSL设计
  • 29.应用落地 开发外包 运营自助 • 正职开发核心服务,流程编 排外包 • 运营填写表单,活动一键上 线 流程复用 • 策略嵌套、一键复制 自动测试 • 自动Mock、分支覆盖 模型沉淀 • 流程固化,沉淀运营模型
  • 30.基准数据
  • 31.基准数据
  • 32.总结及展望
  • 33.总结及展望 微服务 敏捷迭代 服务网关 快速集成 服务编排 流程沉淀 技术驱动 业务优化 执行单元 并发并行
  • 34.