运维日常工作流程
主要工作:
【一】线上工作:
- 国内海外游戏服务器更新
- 监控报警维护处理
- 准备游戏新区服
- 根据运营需求进行合服
【二】测试环境工作:
- 内网AWS部署测试镜像服供QA使用
- 内网测试服务器部署
- 为开发人员部署其他测试环境
【三】配合运营的工作:
- 作弊日志上传内网FTP
- 海外反作弊的发送
- userinfo的Log上传至FTP
- 根据运营要求生成激活码
【四】内网其他工作:
- IT相关
####准备游戏新区服流程
#####操作流程CheckList
- 检查服务器压力负载
- 检查redis内存大小
- 检查新服与目标机器IP是否一致
- 检查fact,dns是否正确
- 检查etcd是否有改动
- 检查目标机器端口是否开放
- 检查当前gamex版本信息
- 检查是否有热更
- 检查启动时间
#####部署操作
- 查看playbook中gamex信息,确定新服目标机器
- 查看redis信息,确定新服目标空闲DB( redis-cli -h IP -a PASSWD info )
- 本地修改playbook配置信息,增加新服gamex,etcd和csv的配置信息并提交git
- jenkins上注册sn码
- jenkins上注册etcd
- 确定好目标机器IP,本地注册ansible的fact
- jenkins上单服部署gamex
- 部署redisstorage-userinfo
- 重启GMtools
- 验证新服是否注册成功,查看新服目标机器配置信息
- 登陆GMtools检查新服信息
####线上合服流程
#####操作流程CheckList
- 检查数据库备份是否正常
- 检查playbook中gamex配置信息是否正确
- 检查机器fact,dns是否正确
- 检查redis内存
- 检查etcd是否有改动
- 检查当前gamex版本信息
#####合服准备
- 统计目标区服的详细信息,可在本地执行脚本查看( python get_redis_used.py )
- 登陆跳板机查看redis db信息,规划合服后的redis db ( python get_redis_used.py )
- 本地修改目标区服的Etcd配置并删除被合区服的gamex
#####合服操作
- 停服操作
- Jenkins上手动执行上传日志到S3的3个job
- 登陆跳板机,在all_shard_info.txt中写入统计的目标区服信息
- 在merge_conf.txt中写入规划好的配置信息
- 执行合服脚本,sh create_merge_conf.sh 创建merge.toml文件,同时再次检查merge.tom的配置是否与规划的一致
- 记录合服脚本输出并归档到印象笔记
- jenkins上删除目标区服对应的服务及配置
- git提交修改代码
- jenkins注册对应大区Etcd
- jenkins选择对应大区部署gamex
- jenkins选择对应大区部署redisstorage-userinfo
- jenkins上传充值每小时log到S3
- 登陆跳板机,连接合服完毕的机器,查看配置是否正确
- 检查合服后的redis db的key值是否正常
- QA测试完毕没有任何问题后,清理被合服区服的原db
极无双线上部署流程规范
上线CheckList
- 是否有运维部署操作(服务器磁盘大小升级、服务器cpu升级、服务器内存升级、数据库机器进行升级、其它服务进行升级)
如果有运维部署操作,需要对应的操作流程
所有的操作大流程基本上是
首先和运营确认本次更新时间、运维操作预估时间,两者时间是否有较大的出入
根据对应的服务器操作流程进行服务器的升级和降级,必须保障数据的完整
如果对数据库操作,先备份
-
确认是否有提前停服需求–>【运营、策划】
如果有停服需要,如何做,检查停服脚本的大区?
停服之后,如果删除这个脚本或者关闭这个脚本(避免出现忘记修改脚本,导致多次停服) -
检查确认是否存在热更–>【服务器】
如何去掉热更 -
检查确认是否存在敏感数据操作–>【服务器】
敏感数据是否测试过;;;; -
检查确认更新服务版本信息 –>【邮件】
-
记录版本信息到印象笔记并截图至服务器群组确认(记录信息命名格式:版本+时间)
-
确认部署所需版本包已成功传至对应S3
-
确认维护公告是否生效–>【运维中心群组】
-
开始更新维护并同步操作信息至群组 –>【运维中心群组】
更新gamex、auth等操作需要注意的地方,比如选择大区,
-
检查Ansible部署输出是否有Err日志
-
检查服务器进程是否Running
上机器检查、grafana -
是否需要重新部署redisstorage-userinfo
存在数据库操作的情况,都需要重新部署整个大区的redisstorage-userinfo
gamex增加、减少等 -
是否需要重启GMtools
存在数据库操作的情况,都需要重新部署整个大区的redisstorage-userinfo
gamex增加、减少等 -
检查GM工具区服显示是否为可进
顺便检查下 所有的gamex 是否玩家可进 -
检查监控报警是否正常
-
检查其它服务是否正常,eg gamex、auth、crossservice、chat等
-
通知QA进行测试
-
维护完成后关注监控是否存在异常,服务器看看log
上线故障排除
- 1.)Jenkins部署未找到版本包
1
2
3#排错思路:查看确认内网Jenkins编译名称-->Jenkins部署匹配名称是否一致-->S3对应bucket是否存在该包
#一般解决:编辑对应jenkins任务配置选项,查看filename变量选项,如下行
s3://yingzhuo-gamex/gamexback/gmtools'.execute - 2.)Jenkins部署变量报错
1
2#排错思路:是否存在新添加Etcd key值需提交--> 是否注册etcd --> 打包配置模板变量名称与注册etcd变量名称是否一致
#一般解决:重新注册etcd - 3.)公告服务可用性快速验证
1
2
3http://$ip:$port/notice/v1/getnotice?gid=$gid&version=$version
# a. 更改Notice的外网IP及端口,以及gid 和version信息,通过http方法进行访问,正常会返回公告信息
# b. 需注意现版本对外端口需要开放两个,port1 及 port2