1、绿 岸网 络 自 动 化运 维 分享 About Me 叶俊 强 , 绿 岸网 络 科技有限公司运 维总监 负责绿 岸网 络 运 维团队 管理 爱 好:开源技 术 、游 戏 、 骑 自行 车 希望和大家多多交流工作中碰到的 问题 和 经验 微博: http:/ 岸在 发 展 过 程中碰到 过 的 问题 : 随着服 务 器数量增加,管理人 员 随之增加 登 陆 服 务 器的人越来越多,安全成本随之增加 服 务 器管理流程 难 以下达,不同的人操作 结 果 总 是存在不同程度差异 操作人 员审计 工作量太大,每天需要 审计 的命令太多 密 码 管理工作量大定期更 换 密 码 工作 难 以 实 施
2、配置管理存在比 较 多的 问题 人 员 成本增大,有 经验 的运 维难 招 绿 岸方舟系 统设计 原 则 业务 低偶合 系 统 高 扩 展 系 统 高安全 业务弹 性大 人 员 要求低 门槛 业务 高可控性早期系 统 构架CIL(用 户 服 务 程序接口 层 Service.config )COL 用 户 操作接口 层 (Web形式表 现 |权 限控制 )数据 业务Data.config版本 业务GameVer.config游 戏业务Game.config服 务 器 业务Srv.config 日志容器Builderlog.configRSRL(远 程服 务 运行 层 ) RSRL(远 程服 务
3、 运行 层 )RSRL(远 程服 务 运行 层 )以上系 统 的 问题 : 配置复 杂 、管理配置文件花 费 精力 较 多 业务 存在冗余,同 业务 可能需要去更改几个配置文件 前台 权 限控制和 业务 管理不能 业务 化,部分 业务 管理功能仍然需要技 术 参与 业务弹 性 还 是仍然偏低现 在系 统结 构Mbus总线技 术 客服 监 控日志容器Builderlog.configEndpoint(远 程服 务 运行 层 )Endpoint(远 程服 务 运行 层 )Endpoint(远 程服 务 运行 层 )运 维维护员 产 品操作 员 平台管理 员COL 用 户 操作接口 层 (Web形式
4、表 现 |权 限控制 |操作日志 )通 讯层 WEB-API 插件 -API 日志系 统 插件 库用 户 操作接口 层设计 目 标 :高 扩 展性、模 块 化、 组 件化 提供 WEB前端支持所有 业务 操作 提供 业务 管理功能(不再使用配置文件) 提供 权 限系 统 提供配置管理 API(用于和其他 业务 系 统对 接) 具有任 务 分 发 、授 权 、定 时 等功能 登 陆 后展示公告板, 发 布运 营 信息 提供一个 轻 量型的知 识库 , 业务 人 员 可管理和发 布自己的知 识 ,便于 业务 人 员检 索 Mbus总线层Mbus是系 统 核心 层 , Mbus的 设计 目 标 是
5、单 台承 载 2000个管理 结 点,最大4000个管理 结 点,并支持二 级 管理 结 构, Mbus业务 功能有: 负责 注册 远 端服 务 器,收集服 务 器运行信息 负责业务 分 发 及根据 规则 判断 业务 是否可以 执 行 负责 分 发 和升 级远 程 endpoint 提供本地和 远 程 API调 用 负责业务 日志存 储 和管理 保障网 络 通迅 层 的安全和可靠性 输 入和 输 出的合法性校 验 、 检查Endpoint结 点Endpoint是服 务 器上的 执 行端具有 高安全性 设计 、极 简结 构、高效数据分段返回的特性,以下是Endpoint功能介 绍 : Endpo
6、int本身并无 监 听,而是启 动 后直接 Mbus或是二 级节 点,将自身注册至 Mbus上 每个 Endpoint都有唯一的 Uid Endpoint提供 C+调 Python接口和 Python调 C+接口 Endpoint的代 码设计 和 业务 无任何关系, 实现业务层 完全剥离 Endpoint内嵌 Python解 释 器,可兼容 Windows和Linux平台 Endpoint提供脚本性能分析和 错误 反 馈 机制,用于 发现 和 调 试 脚本中的 Bug Endpoint和 Mbus维 持心跳 连 接,当断开的 时 候将自身在服 务 器上反注册掉Endpointe脚本插件脚本插件是 业务实现 的核心,所有的 业务 都是由插件 实现 的,插件的 实现 目的: 实现业务 与系 统 之 间 的拆分, 发挥 插件的灵活性 插件开 发 尊遁插件开 发 框架开 发 ,降低插件开 发门槛 ,一般的运 维 人 员 可以快速上手 插件主要以 Python程序 编 制,配合 Shell可完成复 杂 的 业务 ,并已 实现 和 Endpoint联动 完成工作 插件的版本由 Mbus管理, Mbus负责 插件的升 级维护 ,可以做到集中式管理所有 业务 插件 插件的安全性在上 线时审计 , Mbus和 Endpoint按 规则发现 可能存在 问题 的插件 组