一,某游戏公司例行上线与更新流程示例

例行维护/更新流程



 



1.1 更新前天

提前确认好要更新的是什么,更新会有人通知你,一般是运营人员 
比如:我们明天做什么什么更新



 



1.2 第2天更新

一般固定点更新,会先收到更新邮件 
运营人员会发公告给玩家,说我们什么什么游戏,几点进行维护 
比如:10点更新:



 



(1)关闭游戏端口,禁止外部访问,对自己公司开放(更新完要测试)

通过防火墙脚本实现(参考公司已有并在线上正常使用的脚本)



 



(2)停止游戏程序

如果做了监控,停服前可以关闭监控,如果你知道是自己在停服,也可以不关 
这个问题具体要问开发,我们公司就是停止游戏程序的时候会把数据写到数据库,所以等程序关闭后再备份。(如果不先停止游戏程序,那么会导致数据库的数据不一致)



 



(3)备份数据库

通过脚本实现数据备份并问下研发需要备份哪些库 
备份完毕后,检查备份的数据大小,判断是否与前几天备份的数据有没有太大的差异(差距太大表明有问题,需要检查)



 



(4)通知相关人员进行更新操作(一般是开发,也可能是自己,根据公司情况而定)

如果是你自己做更新,先看看是什么更新(促销更新,版本更新,web更新等) 
那就得根据是什么更新,就执行什么更新操作(开发会给更新流程),如果有老人带,做完后总结下(这样自己会更明白些) 
更新内容,比如添加几个文件,数据库添加字段等,熟练后可以写成脚本



 



(5)启动游戏程序

当更新完毕后,就启动游戏程序,以便进行下面的测试



 



(6)通知相关人员进行测试(研发,测试人员,运营人员等)

游戏能不能正常打开,能不能正常登录,该更新的东西有没有更新好



 



(7)打开游戏端口,允许外部访问

如果测试没有问题,运营人员会说,可以开服了;就可以把游戏端口对外,就是玩家可以登陆游戏 
和相关人员确认好什么时候可以停止游戏程序操作(停之前备份数据库还是之后)



 



1.3 总结

(1) 接收到更新邮件

(2) 查看是什么更新

(3) 不同的更新执行不同的更新流程

(4) 和相关人员确认好什么时候可以进行更新操作

(5) 到了更新时间后进行更新流程

(6) 连上需要更新的服务器

(7) 执行防火墙脚本,关闭游戏端口,禁止外部访问,对自己公司开发

(8) 停止游戏程序

(9) 备份数据库

(10) 通知相关人员进行更新操作

(11) 更新完毕后,启动游戏程序

(12) 通知相关人员进行测试

(13) 测试没问题,执行防火墙脚本,开放游戏端口,让玩家登陆游戏



 



1.4 注意事项



 



更新前操作

(1)收到更新邮件,可以先确认邮件中更新文件是否能够正常下载

机器比较多,开发也很忙,有时会出现,开发并没有把包上传到固定的机器或者没有传好之类的。

(2)确认好更新维护时间

一般是固定时间,然后运营人员要对玩家发布公告

(3)可以先连上需要操作的机器

(4)如果做了监控,停服前可以关闭监控,如果你知道是自己在停服,也可以不关

(5)检查游戏开放的端口



 



进行更新时

(1)第一步关闭游戏端口并确认端口确实关闭了

(2)停止游戏程序并确认确实关闭了(可以通过查看进程的方式,如果是java写的程序,直接ps -ef | grep java即可)

(3)执行备份数据库的脚本并验证备份文件的大小是否正常

(4)备份好了后,通知相关人员进行更新操作并确认更新正确,比对md5,文件时间等(如果是自己更新,就提取准备好更新的步骤;熟练后,可以写成脚本)

(5)所有服更新完毕后,启动游戏程序并确认启动成功

(6)通知相关人员进行测试,比如,是否能登陆游戏,登陆游戏后需要改变的地方有没有改变(一般运营人员操作)

(7)测试没有问题,执行防火墙脚本,开放游戏端口,让玩家登陆游戏



 



1.5 游戏业务类专业术语解释

  • 合服:其实就是合并玩家数据(例如:1服和2服合并,其实就是合并玩家的数据,将1服数据导入2服数据库,然后1服就能用来开3服了)
  • 混服:就是同一个服务器,运营两款不相同的游戏
  • 同服:在一个配置比较高的服务器上,同时部署两款相同的游戏,比如火影忍者,可以部署1服2服等(就是将程序拷贝一份,修改端口等在启动====>类似多实例)
  • 跨服:多个服的玩家在一起玩,比如1,2,3,4服玩家都在一起玩。