Docker在腾讯游戏的实践之路腾讯互娱运营部/存储与计算资源中心/刘雷levyliu@tencent.com选择docker?YesorNoDocker快敏捷灵活轻量生态标准Buildonce,runanywhere1、Docker如此多优点,和游戏结合能发生点什么?2、单纯一个docker还远远不够,还需要评估哪些因素?3、当前游戏的业务架构和运维模式能和docker无缝兼容吗?4、新技术的推广过程中势必会导致一些异常,如何可控?(特别是游戏)2、主机模式&集群服务模式DockerforOnlineservicewhyHowwhat1、Docker容器&VM&物理机3、build–ship–runrun–build–ship4、兼容运维习惯和原运维平台5、稳定,稳定,稳定。接入节奏,风险控制6、运维支撑7、其他评估要素(包含但不局限于)◆编排工具◆网络方案◆文件系统◆隔离性◆监控◆image标准&管理◆成本管理◆性能适配◆集群管理平台◆容器配置……主机模式的支撑方案典型页游手游server端架构接入层逻辑svr调度svr逻辑svr调度svr数据层接入(TGW)dirdirgsgsrouterdbproxyDBmailsnspay…公共服务层特点:分区分服类游戏。滚服策略。1、资源快速调度2、本地垂直升降配3、基于image的标准化主机模式-调度编排Kubernetes&DockerCPU:容器cpucore绑定;控制高负载情况下的资源强制。MEM:直接利用cgroup的memory限制DISK:devicemapper(doingoverlayfsintkernel2.0)对于log的存储,目前是host上面创建一个目录,xfs的projectquota。Net:每个容器都配置了一个可路由的独立IP地址;网络方案采用的是SR-IOV。解决当前游戏需要网络大包量的需求。主机模式-k8s的scheduler策略定制调度策略:◆IDCcampus◆机架◆集中分布&分散◆网络模式◆VF选择◆host黑白名单◆cpunumanode◆空闲资源主机模式-网络方案SRIOVBridge选择?NAT、HOST、BRIDGE、SRIOV、VXLAN◆大二层网络+千兆◆三层网络+万兆◆SRIOV+RPS◆VF终端绑定◆性能好,但受限于VF数主机模式-容器性能监控(1/2)1、复用原有的TMP性能和告警系统2、兼容运维的习惯3、减少不必要的重复建设工作主机模式-容器性能监控(2/2)主机模式-容器时间游戏开发阶段的模块单元测试,功能测试,对系统时间的调整是必要需求。Docker1Docker2Host主机模式-容器本地垂直升降配游戏Docker集群CPU:4000COREMEM:15TDISK:100T游戏Docker集群CPU:1000COREMEM:8TDISK:50TCPU:4core1coreMEM:15G8GDISK:100G50G单容器秒级完成Cpu&Mem:dockercgroup***DISK:xfs_quota案例:XX游戏业务:在线降配430台120秒...