测试环境自动化发布管理

发表于:2019-2-14 13:29

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:FinTech    来源:FinTech技术创新

  在推广自动化发布之前,我行大部分系统的打包发布工作仍为手工操作。你还在为极其容易被消耗的时间而感到焦虑吗?你还在为极其容易出错的手工操作气的捶胸顿足吗?
  你感受过这样的绝望吗:
  · 开发人员未及时将代码上传SVN就在本地编译发布包,导致SVN中源代码与发布包不一致。
  · 不同开发人员本地环境或组件不同,导致发布包内容存在差异。无发布包管理,容易导致版本混乱。
  · 频繁登陆测试环境进行发布,可能造成测试环境应用功能冲突。存在大量操作失误。
  · 据业界统计,近四分之一的上线失败及生产问题归因为发布内容错误,发布一疏忽,投诉多到哭。
  是吧,挺绝望的吧?因此,自动化分布极为必要。在部门领导、各模块负责人及技术管理中心的支持下,常明君老师和他的小伙伴一起发起了对自动化发布的深入探索,在持续探索的同时今天还要跟大家进行了一次深入的分享与探讨。
  前期我们在使用HP的OO(自动化平台)实现了现金管理和Xbank的自动化发布,现使用PEST平台进行自动化发布,目前已实现了近百个系统的220多个自动化发布流程,覆盖了开发、UAT、版本机、性能多个环境。
  1.自动化发布流程:自动化编译及发布
  编译与发布,是项目开发过程中需要频繁进行、流程固定的工作,非常适合使用自动化工具,并在此基础上实现源代码、介质库、发布流程的管理。
  自动化发布流程通常包括编译流程和发布流程两部分。
  自动化编译流程为:从SVN或GIT中下载源代码,根据制定好的编译脚本进行编译,编译成功后发布包自动放入介质库中,同时在源代码版本管理系统中对编译的代码打Tag标签,使源代码与发布包一一对应,便于问题的跟踪与查找。
  自动发布流程为:将发布包及相关脚本上传到测试服务器,并在测试服务器上调用这些脚本进行备份、发布和验证。
  2.发布脚本管理:抽取公共脚本,参数化环境信息
  我们将发布脚本中与环境相关的部分进行参数化,其余部分形成公共脚本。每个系统在各个环境的部署都使用一套统一公共脚本,在不同环境进行发布时只需替换不同参数即可,从而提升了发布效率和准确性,避免了多版本不一致的风险。同时,也把发布脚本放在SVN中,实现了发布脚本的版本管理。
  3.介质库管理:部署及基线目录
  介质库使用SVN来实现,保存每次编译生成的发布包、配置文件、发布脚本以及每次发布后的历史版本。在介质库中,先按系统创建一个系统目录,然后在系统目录下创建Deploy(部署)、Baseline(基线)目录。Deploy目录存放发布介质、环境配置文件、发布脚本;Baseline目录存放每次发布时Deploy目录的快照,便于问题跟踪。
  4.支持四种发布模式
  我行系统架构复杂,发布模式各异,通过分析归纳,按照源代码管理、系统发布方式总结出四种发布模式,源代码管理方式包括“多环境同一分支”和“多环境不同分支”,系统发布方式包括“全量发布”和“增量发布”。针对每种模式形成了相对固定的发布方案及脚本,便于更好的进行自动化发布流程的实施。
  5.标准化实施过程,大幅度提升发布效率
  在协助项目组实施自动化发布工作时,通常需要进行以下步骤:
  ⊙ 确定发布模式;
  ⊙ 裁剪发布流程;
  ⊙ 收集编译发布相关信息;
  ⊙ 设计开发编译及发布脚本;
  ⊙ 测试发布流程;
  ⊙ 发布流程使用介绍。
  通过持续不断地总结和积累,自动化发布流程的开发效率从原来一周多开发一个发布流程,到3天左右就可完成,发布效率大幅提升。
  6.使用便利,完全透明
  自动化发布流程支持多种触发模式,并提供了丰富的辅助功能,使发布过程对开发人员完全透明。
  7.总结
  集成和发布是整个开发过程中的重要一环,随着市场需求的日新月异,我行业务系统的更新速度也在不断加快,更需要通过稳定的、自动化的方式来进行管理,不断夯实我们软件开发过程的基础设施,为我们的开发人员提供更多便利,提高整个部门的开发产出率。

     上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号