程序员人生 网站导航

云络网络科技CEO Steve Mushero:游戏行业的云运维

栏目:互联网时间:2014-09-29 08:00:01

申请MDCC2014移动开发者大会免费展位,助力创业梦想!

本届大会以“你就是主角”为主题,为移动开发者打造一场真正的年度盛会。为让更多的移动应用团队有自己专属、固定的展示交流区域,大会主办方特别提供了MDCC应用团队免费展位。无论是成熟的创业团队,还是处于成长期的移动应用、移动游戏、智能硬件开发团队,只要有成型作品,均可免费申请。


云络网络科技有限公司可以说是中国最老的一家云计算公司,它积累了大量关于在云时代如何对游戏进行运维的经验。其CEO兼CTO Steve Mushero在这届的游戏运营技术论坛上,以“游戏行业的云运维”为题,主讲云、游戏运维以及对未来的展望,与大家分享了云络现在使用的最前沿的游戏运维技术。 


现在游戏的快速发展,让无论是发布、升级还是成长都在不停的追求速度,所以游戏灵活性和性能也变得越来越重要。当然,云技术在其中起到了至关重要的作用,同样重要的还有游戏的运维。

回顾历史,电子游戏的出现已经有60余年,1952年运行在EDSAC上面的井字游戏是最早的电子计算机的游戏,1961年运行在PDP1上的SpaceWar,是实际上的第一款真正的电子游戏。当时的游戏升级和编程都是通过穿孔纸带、磁带来完成。回顾近代史,过去的十年里,运行在Linux上面的现代游戏,主要是在物理服务器上,大家成批购买,插拔网线,通过PXE来引导启动系统,手动去配置,安装代码再接下来运行。再往近,我们开始使用ISO、PXE来启动,开始实施了服务器的克隆,利用脚本进行版本控制检查并部署,虽然快了不少,但是相对而言仍旧比较慢,而且不够灵活。现在的情况,则是逐渐实行自动化的运作。

运维会碰到哪些问题?按流程来说,拿到服务器以后需要安装服务器,安装系统服务,然后配置系统,同步开发测试以及生产环境,对于系统扩展甚至需要手工来做,进行7x24小时的监控和故障处理。在创建云系统时,同时还要建立最先进、充分自动化流程的运维开发,及多项业务服务,如Web服务器、逻辑数据安全等。如何使它们更好的结合在一起,则需要一键创建整个系统,在任意时间和任意环境下来进行全部署、全升级。 但如何做到这些呢?

系统中需要运用最先进的技术,用到各种各样的云技术以及各种各样最前沿的工具,才能建立一个500台以上规模的系统。目前云络所用的技术就有,Docker混合运维开发和云技术。 如何建立和维护这些系统的工具?首先,必须要谨慎的运用每个先进技术,因为它没有文档的记录,也没有全文的指导手册,在命令中有众多的可变参数,所以有很多的技术文档需要你去研究。

云络最近在一个非常大且先进的公共云上部署了一个系统,运用了各种各样的工具,让你可以在任何的云上,无论是公共云或者私有云去部署,甚至在物理服务器上。但其实云会更好,因为它会有很多的特性,比如说API、镜像等。而且还有两个阶段,第一阶段是准备虚拟机和基础设施,这就涉及到安装操作系统和配置硬件。第二个阶段就是代码程序配置等方面的布置,需要进行代码植入、系统配置,使其运行起来。

第一阶段:

  • 如何准备虚拟机和基础设施。Steve Mushero表示,他们的目的是自动化以下所有的流程,从创建服务器、操作系统的安装与配置,网络及防火墙安全配置,另外也不能错过其中的细节,例如IP、路由、安全策略等,要把它全部实行自动化。用什么不同的工具,涉及到云的系统、运行环境、系统定义、配置管理以及Docker。首先,说到云,最重要的环节就是需要动态供应这些虚拟机,云有各个API需要创建、开启、停止、配置虚拟机。云端虚拟机的镜像有助于系统的克隆、部署速度,能够在自动安装期间去升级。
  • 对系统和层的定义。需要定义系统的架构,一个理想的层架构有助于整个架构的思路,所有虚拟机相同的设置,例如WEB、GAME和DB等。另外定义系统和定义层的特性,特别是准备流程以及各种组合。在你进行架构的时候,需要一层一层的去考虑哪一层是用什么类型的数据库,这些层之间的关系,定好以后,所有这个架构的实施就会变成整个自动化来做。
  • 版本管理。一些客户要求用非源码去做,而我们要求所有的都是用RPM来进行打包,尽可能地是要用标准化的东西。尽量使用标准化流程,然后再加上个性化的一些东西,才能确保系统比较稳定的运行。因为标准化的东西肯定是能够达到稳定性的保证。至于安全方面,很多自动化一次能够从一台克隆到千台机器,它可以帮助你快速进入这个系统,也容易破坏整个游戏系统,所以要特别考虑安全策略。
  • 管理控制台。部署并且控制系统,就要用到控制工具,例如Jenkins,要实现完全的自动化,而不是进行手动。如果建立一个五百台服务器的系统,其中有4台不好使,这时,就需要查原因,并进行修复。而现在Docker是最热门的运维开发技术,它是个迷你虚拟机,快速并且轻量,可以在笔记本电脑上去运行。Docker就是一个小小的容器,也是一个小的服务器,它意味着所有的路径相关性必须标准化。同时它还是一个打包系统,从操作系统、服务、配置、代码、数据都在这个容器当中。

第二阶段:

  • 关于代码和部署,首先你要做好标准化。对于这个部署的话,特别是跨环境的部署,路径、库、版本均需要标准化,特别是路径,所以你要测试它的相关性,诸如DNS、第三方的软件以及产品服务,需要思考通过不同的环境和层来实现这些,你的文件去哪里,以及该如何部署,这需要仔细的计划、考虑,因为这一切将会成为自动化当中的一个重要环节。
  • 至于配置,配置也需要代码进行实现,包括操作系统、数据库、负载均衡器等。对于很多环境来说大多数是一致的。

最后,因为用这一系统可以快速灵活自动开启服务器、自动部署、自动扩展、修复,所以许多的服务器可以全部是实行自动化的进行部署。另外关于服务器宕机,如何实现其中一台宕机,而另一台自动去修复呢?自动修复可以进行一个实时的克隆,省时省事。

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐