技术开发 频道

MongoDB在网易游戏的应用及服务化实践

  【IT168 报道】2016年5月12日,第七届中国数据库技术大会(DTCC 2016)在北京国际会议中心拉开帷幕。作为国内数据库与大数据领域最大规模的技术盛宴,本届大会以"数据定义未来"为主题,云集了国内外顶尖专家,在为期三天的会议中,将围绕MySQL、NoSQL、Oracle、缓存技术、云端数据库、智能数据平台、大数据安全、数据治理、大数据和开源、大数据创业、大数据深度学习等领域的前瞻性热点话题与技术展开深入探讨。据悉,本届大会吸引5000多名IT人士参会。

  在下午的NoSQL技术实践专场,来自网易游戏的黄文宇与大家分享了MongoDB在网易游戏中的应用,以及MongoDB服务化的一些经验。

MongoDB在网易游戏的应用及服务化实践

  MongoDB在网易游戏的应用

  黄文宇,2005年加入网易游戏,已在网易工作超过10年,是网易游戏运维自动化平台负责人,MongoDB Team Leader。负责过非常多游戏的运维,包括前期的大话、梦幻等几个大型端游,现在还负责的有天下、天谕、功夫熊猫等游戏项目。

  虽然黄文宇主要的精力放在游戏运维资源平台的架构上,但MongoDB作为数据存储资源恰恰是这个环节的一个重要组成部分。

  在网易,MongoDB不仅是端游的数据中心还是手游的数据库,更是周边系统的数据库,因为易用、易扩展、高可用等原因,有过百游戏项目使用MongoDB。

  网易将MongoDB服务化实践

  服务化缘由

  为什么要将MongoDB服务化?黄文宇表示:“刚开始使用MongoDB的时候,MongoDB的资源是由项目SA/DBA搭建与管理。存在以下问题,比较大的阻碍了我们的使用。”

  1.   学习&运维成本高

  2.   资源浪费严重

  3.   交付效率低

  4.   可用性低

  为了解决这些问题,将MongoDB进行服务化是一个比较好的选择。

  服务化目标

  1.   减轻项目DBA/SA的学习及配置成本

  2.   为每个使用MongoDB的项目提供标准化的服务

  3.   统一调配及资源整合降低人力及硬件成本

  服务提供形式

  MongoDB服务化后会以什么样的形式提供?黄文宇表示主要是分成以下4块:

  首先最重要的当然是db的资源服务,这块我们主要是以3个config+3个node组成rs的shard的形式提供服务,无论用户申请多少资源,都会以这个形式。如果用户只要1个shard,那会是带3个config的shard,而不是一个简单的rs。

MongoDB在网易游戏的应用及服务化实践

  主要是从几个方面考虑这个问题:

  1、方便扩展,如果需要横向扩展,把shardkey加上,然后加资源即可。

  2、避免不同的程序驱动对rs高可用的不一致情况。

  3、虚拟化后config的资源消耗主要是磁盘io,其他cpu、内存、磁盘容量等都几乎可以忽略不计。

  4、统一资源形式,如果同时既提供rs也提供shard的话,对MongoDB不怎么熟悉的用户其实是很容易混淆。

  服务化成果

  最后,黄文宇展示了服务化成果:

  1.   项目运维不需要关注数据库的搭建与维护

  2.   硬件成本下降73%

  3.   资源交付秒达

  4.   2014年可用性99.99%

  5.   2015年可用性99.999%

  6.   2016年可用性99.99%

  其中硬件成本下降了73%,黄文宇表示:“主要是虚拟化后,CPU、内存、硬盘达到一个非常好的配比得到的收益。而资源交付速度,皆因MongoDB硬件需求相对特殊,需要采购、机房安装、初始化几个过程,整个流程最快也要按周算的,服务化后,给出去的shard实例只是虚拟机的创建,可以实现自助申请,只要1-2min左右即可。”

  最后,黄文宇还特别强调,MongoDB的特性(高可用、以扩展、低CPU占用),让它非常适合服务化。

MongoDB在网易游戏的应用及服务化实践
▲更多大会资讯,请查看大会专题 http://www.it168.com/redian/16DTCC/

0
相关文章