分布式自动化版本发布系统的简单实现分布式自动化版本发布系统的简单实现.pdf

分布式自动化版本发布系统的简单实现分布式自动化版本发布系统的简单实现.pdf

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分布式自动化版本发布系统的简单实现分布式自动化版本发布系统的简单实现

_______________________________ 分布式自动化版本发布系统 _______________________________ 目 录 第1 章 分布式自动化版本发布系统3 1.1.概述3 1.2.架构说明3 1.3.系统UI4 第2 章 实现原理7 2.1.版本信息获取模块7 2.1.1. SVN 版本库7 2.1.2. Maven 9 2.2.版本信息数据库 12 2.3.版本发布系统及任务分发模块 12 2.4.任务执行模块 14 第1章 分布式自动化版本发布系统 1.1.概述 在页游或手游行业,游戏的版本发布是运维日常工作主要部分,在短暂的停 机维护时间内要将游戏的新版本发布到几十台甚至数百台服务器中。这种工作强 度下,运维必须采用一些自动化运维的手段,在实现自动化运维时,不同的团队 会采用不同的技术,大致如下: 1. 采用puppet、chef、func 、salt 等开源工具 2. 写一些shell 或python 脚本 3. 开发自己的自动化运维系统 笔者采用的是第3 种方式,理由是: 1. 第3 方开源工具的安装、配置、维护比较麻烦,有一定的学习成本,且 功能不太灵活; 2. 第2 种方式需要登陆一台运维服务器,根据需求输入一些命令,对其他 SA、运营、策划的同学有一定的学习成本,且容易发生误操作; 3. 自主开发自动化运维系统,对团队的开发水平有一定的要求,但是灵活 性高,可以根据业务情况开发出非常适合自己公司业务需要的工具,提 供友好的WEB 操作界面的话,可以招一些水平较差的SA 来培养,降 低人力成本。 1.2.架构说明 以下为笔者开发的自动化运维工具的架构图: 版本信息获取模块 版本信息数据库 版本发布系统WEB及 任务分发模块 任务队列及任务执行 结果数据库 任务执行模块 任务执行模块 任务执行模块 架构说明: 1. 版本信息获取模块的功能是从SVN 或maven 中每隔1 分钟获取一次版 本信号,然后将版本信息存入数据库; 2. 版本发布系统提供一个WEB 界面,用户可以进行版本发布、服务器开、 关、重启、项目录入、游戏大区录入等操作,操作指令将作为任务存入 任务队列; 3. 任务队列数据库将保存每个任务信息及执行结果 4. 任务执行模块会实时从任务队列中拉取任务信息并执行,可以部署1 个 或多个,加快任务执行速度。 1.3.系统UI 在使用前需要通过域账户登陆: 登陆后如下所示 (这个是一个游戏后端的项目,代码提交后maven 会自动 构建成zip 文件): 在版本发布前需要录入项目信息及游戏大区信息: 项目和游戏大区录入后就可以使用本系统进行版本发布了,如下图所示: 版本发布时,可以在任务执行服务器中看到详细的发布过程,如下图所示: 版本发布完成后,会自动完成重启,正好在此过程中被监控系统发现,然后 邮件报警了。重启任务发出后跳转到服务管理页面,如下图所示: 第2章 实现原理 2.1. 版本信息获取模块 2.1.1.SVN 版本库 SVN 版本库的检查可以使用pysvn 模块,代码片段如下: #检查SVN 的更新情况 def project_svn(path, team): #pathA = /data/release/tech project = path[name] ret

文档评论(0)

vshoulrengb3 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档