运维自动化平台开发设计-服务于研运一体的游戏公司

ops   资产管理   自动化   定时任务   游戏运维自动化平台  

自动化结构目标

  • 配置管理-->记录项目中的一切变化
  • 构建管理-->加速构建速度,管理模块依赖
  • 持续集成-->让软件随时可以运行
  • 测试管理-->分级测试,建立快速反馈环
  • 环境管理-->弹性灵活的基础设施
  • 部署管理-->无差异的部署过程,减少上线风险

架构说明

  • Django + Mysql + redis + celery
  • 本项目前端页面使用(inspina模版)
  • 目前服务于线上千台服务器、统一管理
  • 方便游戏快速接入、管理上线
  • 主页

A. 系统管理(已完成)

  • 用户管理
  • 部门管理
  • 项目管理
  • 角色管理
  • 每个角色允许绑定N个权限
  • 权限管理(泛匹配)根据路由绑定用户权限

B. 主机管理- 项目全球化设计 (已完成)

  • 列表管理
  • 添加、批量添加、导入excel
  • 地区管理
  • 平台管理
  • IDC管理
  • 发行商管理
  • 用途管理
  • 运维仓库管理
  • 域名信息管理

C. 常用作业工具 celery做任务调度(已完成)

  • 批量执行命令
  • 批量执行脚本
  • 批量分发文件或目录
  • IP归属地查询(有时也用的上)

D. 项目自动化流水线(已完成)

  • 服务器初始化
  • 数据库初始化
  • 批量装服
  • 线上服、正式服、测试服管理
  • 批量更新,支持秒级回滚
    • 程序更新迭代
    • 数据库更新
    • 配置更新
  • 集中配置管理
    • 负责管理业务配置模版,用于快速变更,也支持极端情况下业务恢复
  • 运营需求管理 (若有独立数据平台,可开放区服列表信息接口)
    • 在线人数曲线图
    • 区服列表、入口管理
    • 渠道配置管理
    • 公告管理、GM后台
  • 备份管理
    • 生成定时任务,备份报表
    • 自动化检查备份成功、失败数
    • 失败重试,邮件通知负责人
    • 提供备份下载供开发人员测试

E. 资产管理

  • 使用ansible setup模块采集(已完成)

  • 详细信息

  • 手动添加,编辑、删除 变更记录

  • 费用信息管理

F.计划任务(已完成)

  • 定时任务
    • 表达式和crontab一样方便维护,一看就明白
    • 已执行次数
    • 执行结果历史,有记录可查,谁创建和修改
    • 选择定时执行的目标机器

G. 脚本管理

  • 类型 "sh" or "py" or "bat"
  • 来源,谁创建修改必须有记录
  • 用途说明
  • 所属业务,只允许业务下机器执行
  • 脚本来源(在线脚本编辑和本地上传)一般两种方式,支持自定义参数

H. 站点管理

  • 网站节点
    • 自动化新建站点,绑定相关负责人
    • 连接自动化测试和自动化构建,实现自动化部署的元数据
    • 带自动化探测功能,实现web可用性能监控
  • 配置管理
    • 不同站点保存一份个性化配置由负责人编辑,更新自动更新到线上
  • 网站更新
    • 配置更新
    • web更新

I. 监控(进行中)

  • 独立平台

F. 帮助文档管理

  • 添加修改文档
  • 用于保证操作文档或者需求文档

G. 日志审计

  • 非堡垒机,由服务器通过api,自动汇报操作历史记录。
  • 包含操作命令,登陆IP,登陆用户,登陆时间,请求页面,等敏感信息。
  • 支持中断

H. WebShell

三、安全性 (已完成)

  • 启用SSL双向认证
  • 重写django认证
  • session验证码
  • 支持安全审计,操作历史查询

四、演示地址