首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

测试环境自动化发布管理

在推广自动化发布之前,我行大部分系统的打包发布工作仍为手工操作。你还在为极其容易被消耗的时间而感到焦虑吗?你还在为极其容易出错的手工操作气的捶胸顿足吗?

你感受过这样的绝望吗:

⁜ 开发人员未及时将代码上传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.总结

集成和发布是整个开发过程中的重要一环,随着市场需求的日新月异,我行业务系统的更新速度也在不断加快,更需要通过稳定的、自动化的方式来进行管理,不断夯实我们软件开发过程的基础设施,为我们的开发人员提供更多便利,提高整个部门的开发产出率。

好啦,今天的分享就到这儿啦,大家有什么想要一起探讨的,请点击右下方留言评论哦~

我们下次见!

美好的 你和世界

- 来,互动啊 -

你最想在这里

看到关于什么的消息

想看更多绝对干货和有趣新闻的请点赞并分享

一起评论探讨互动嘛

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180306G0ZY5C00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券