网易游戏面向终态的应用交付管理实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 网易游戏面向终态的
应用交付管理实践
演讲人:林香鑫
网易游戏技术专家
全球敏捷运维峰会 广州站
2. 目录
CONTENTS
01 应用交付形态
02 问题和解决方案
03 当前成果
04 未来展望
全球敏捷运维峰会 广州站
3. 应用交付
资源管理 多环境需求 业务运维 效率和质量
计算资源 研测环境 开关网络 资源交付时间
存储资源 生产环境 服务启停 开服时间
网络资源 更新代码 问题排查
各中间件 … ...
全球敏捷运维峰会 广州站
4. 应用交付形态
shell脚本 流程工具 资源编排 应用编排
将命令组合成流程,完成单机
上特定的运维操作 将运维操作组合成流程,实
现流程可复用 以资源为中心的编排方式,快速
创建需要的资源 以应用为中心的编排方式,在多
环境下快速交付应用
代表:Ansible、Aladdin 代表:Terraform、helm、
CloudFormation 代表:KubeVela、Atlasx
代表:Bash/Zsh
结果:一致的操作
结果:一致的流程
结果:一致的基础设施
自动化程度
传统方式
全球敏捷运维峰会 广州站
云化方式
结果:一致的应用
5. 面临的挑战
大同小异?非也~
全球敏捷运维峰会 广州站
6. 面临的挑战
多样性
异构性
应用的异构性 (10+)
基础设施的异构性
资源种类的多样性 运维操作的多样性
(40+) (100+)
集群部署
架构
引擎
业务
网络
配置
SaaS
全球敏捷运维峰会 广州站
网络控制 服务扩缩容
代码更新 进程扩缩容
集群回收
7. 应用交付的目标
* N
不管是谁、什么时候、在哪部署、部署多少次,最后都是等价的。
全球敏捷运维峰会 广州站
8. 应用交付的目标
标准化、统一化的应用—— 一致性交付
不同环境能够一致定义
不同游戏类型能够一致定义
运维能力可描述、可管理、可插拔
全球敏捷运维峰会 广州站
9. 解决方案
基于命令式的交付:
1.
2.
3.
4.
5.
6.
基于声明式编排交付:
在 CMDB 上创建 xxx 群组,yyy 服务
申请 n 台机器,初始化,录入到配置系统
绑定群组-服务-机器信息
编写配置模板,渲染配置,同步到机器上
编写执行模块代码,定义运维流程
执行流程拉取代码,部署启动服务
1. 根据规范编写编排文件
2. 提交编排,启动服务
计算
资源
计算
资源
储存
资源
网络
资源
服务
架构
配置
全球敏捷运维峰会 广州站
储存
资源
网络
资源
服务
架构
配置
10. 解决方案
一致的用户交付体验
一致的架构定义(编排)
一致的资源访问行为
等价的环境能力
全球敏捷运维峰会 广州站
11. 解决方案
一致的用户交付体验
一致的架构定义(编排)
一致的资源访问行为
等价的环境能力
全球敏捷运维峰会 广州站
12. 解决方案
一致的用户交付体验
一致的架构定义(编排)
一致的资源访问行为
等价的环境能力
全球敏捷运维峰会 广州站
13. 解决方案
一致的用户交付体验
一致的架构定义(编排)
一致的资源访问行为
等价的环境能力
全球敏捷运维峰会 广州站
14. 解决方案
1 2 3 4
游戏架构定义 游戏集群编排 集群创建/交付 呈现游戏拓扑实例
描述整体业务架构 基于架构编写组件配置细
节和运维特征 根据编排自动创建所需组
件实例和配置,交付完整
集群 游戏拓扑实例化,可观测
全球敏捷运维峰会 广州站
15. 应用定义:应用交付的第一公里
全球敏捷运维峰会 广州站
16. 资源可定义
● 网络
● 容器
● SaaS
● 配置
● 服务
● ……
MongoDB 资源的描述示例
全球敏捷运维峰会 广州站
17. 架构可定义
容器
Mongo
Redis
编排文件
ETCD
填写参数实时部署
gid:10001
name:测试集群
…
MySQL
……
全球敏捷运维峰会 广州站
游戏服
18. 架构可定义
全球敏捷运维峰会 广州站
19. 运维可定义——案例1:网络访问状态控制
公网访问全部开放
只允许 QA 在办公网访问
QA 和玩家都无法访问
不需要关注网络细节,期望集群网络处于什么状态即可
全球敏捷运维峰会 广州站
20. 运维可定义——案例2:进程端口分配
靠人手工规划
按运维策略分配,
降低人工错误风险
全球敏捷运维峰会 广州站
21. 应用分层
应用可定义就够了吗?
AWS 发布的 ESC CLI V2 开发原则:
1. 默认创建现代化的应用。
2. 用户应该考虑的是架构,而不是基础设施。
3. 运维也应该是工作流的一部分。
4. 应用交付是持续的。
全球敏捷运维峰会 广州站
22. 应用分层
OAM:Open Application Model
● 区分使用者,关注点分离
● 运维能力模块化封装、可管理
● 状态可观测
全球敏捷运维峰会 广州站
23. 应用分层实现
OAM 扩展
●
●
●
●
●
Component
Trait
Environment(扩展)
Stack(扩展)
Strategy(扩展):全局 trait
全球敏捷运维峰会 广州站
24. 应用分层实现
全球敏捷运维峰会 广州站
25. 应用分层实现
全球敏捷运维峰会 广州站
26. 关注点分离——案例3:istio 微服务路由转发
全球敏捷运维峰会 广州站
27. 运维能力可管理——案例4:外网访问模式封装
云网关
EIP
游戏集群
Game
Manager
1
云网关
EIP
游戏集群
游戏集群
游戏集群
Gate Gate Gate Gate
Game Game Game Game
DB
Manager
研测环境直连
Game
Manager
DB
Manager
2 单集群独享 EIP
Game
Manager
DB
Manager
3 多集群共享 EIP
全球敏捷运维峰会 广州站
Game
Manager
DB
Manager
28. 应用编排的背后数据
应用拓扑实例数据的使用
计算
资源
计算
资源
储存
资源
网络
资源
服务
架构
信息围绕人
配置
储存
资源
网络
资源
服务
架构
配置
信息是自包含的
全球敏捷运维峰会 广州站
1. 配置信息汇聚
2. 关系数据自动化维护
29. 应用编排的背后数据
业务拓扑
全球敏捷运维峰会 广州站
整体拓扑
30. 当前成果
全球敏捷运维峰会 广州站
31. 当前成果
交付效率优化
一致交付, 动态组装, 快速交付
应用规模
10倍+
容器化,多集群,多资源
1200+
项目接入
20+
10w+
重点项目, 多游戏架构, 微服务
发布/操作频率
一键发布, 模板管理, 运维管理
当前成果
全球敏捷运维峰会 广州站
32. 未来展望
Make Game Application Develop & Deliver more enjoyable!
全球敏捷运维峰会 广州站
33. THANK YOU!
全球敏捷运维峰会 广州站