注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

网易杭州 QA Team

务实 专注 分享 做有态度的QA

 
 
 
 
 

日志

 
 

我们正在路上 - 从持续集成到持续发布  

来自谢列平   2014-03-20 16:36:07|  分类: 测试工具 |举报 |字号 订阅

  下载LOFTER 我的照片书  |
持续集成作为一种很好的软件工程实践被很多团队所采用,和其他一些先进的实践一样,它最终的目的一定是服务于产品的。产品的价值最终体现在用户体验的提升,而这个的前提就是产品的每一次更新能够及时地传递给用户,对于运维团队来说就是更快地在生产环境中部署最新的产品,对于研发团队来说就是更频繁地发布可以工作的软件。

暂且抛开业界非常流行的DevOps理念,单纯地从研发团队来看,如何快速的发布对用户有价值的软件是重中之重。
那结合持续集成,我们又可以做些什么呢?

先来看看我们持续集成的现状
  • 独立的环境:持续集成往往有一套独立的测试环境,而团队还会在其他测试环境中进行测试,两者似乎从来没有交集
  • 独立的构建:持续集成往往就是对当前最新的代码做一些自动化的测试,而完全忽略了软件版本的管理,甚至不能很好的保证各种测试是否是基于同一份代码
  • 辅助手段:持续集成往往作为一种测试的辅助手段,更多的是用于快速发现代码提交阶段的错误
以上这些在持续集成初期完全没有问题,而且这种方式也的确带来了不少的价值,能够帮助团队更透明地了解产品的质量,并且快速的定位和解决问题。只是,我们可以做的更多

再来展望下持续发布的流程

整体的思路就是以持续集成流水线作为核心,把软件发布的各个环节透明地展示给团队,并且通过流水线来管理版本的发布流程

我们正在路上 - 从持续集成到持续发布 - 网易杭州QA - 网易杭州 QA Team
 
  • 测试环境整合:打通持续集成环境/手工测试环境/线上模拟环境,保证一条流水线上使用同一份代码,同一份构建物
  • 测试流程整合:一键式的环境部署和一键式的版本管理(打TAG,拉分支,构建物的存储等),发布前对产品质量有清晰的了解
  • 重要和主要手段:以持续发布流水线为基准,并积极拓展其他类型的测试
把持续集成融入到产品开发和发布阶段,而不是简单地搭建一套“自动化运行任务”,并充分利用构建流水线实现流程和质量的双重把控

最后来看下某个产品初步定义的持续发布的流程

产品现状
  • 三套环境:持续集成环境(云主机),手工测试环境(云主机),线上模拟环境(物理机)
  • 持续集成状态
    • 自动化的编译,打包,部署,冒烟测试和快速性能测试已经实现自动化并实时通过代码提交触发,全程20分钟左右
    • 单元测试和静态代码检查还在完善中,也实时通过代码提交触发,不过没有列入关键点,也就是成功与失败并不直接影响构建流程
    • 每日的功能测试(1000+个测试用例)在晚间运行,全程3个小时左右
  • 新功能测试在手工测试环境下进行
  • 上线前需要在线上模拟环境进行性能测试和稳定性测试

持续发布流水线
  • 持续集成环境实时保证当前的提交没有破坏基本功能
  • 通过手工触发(QA人员控制),一键部署产品到手工测试环境并能在流水线上展示手工测试结果(通过简单的设置一个变量达到效果);同时可以选择触发功能测试,达到同步的执行
  • 如果QA人员认为当前测试版本可以达到内部发布要求,可以一键打TAG,并生成和存储dist包
  • 通过手工触发(QA人员控制),一键部署dist包到模拟线上环境,而后自动化进行性能测试和稳定性测试
    • 理想状态这步应该是自动触发,由于目前机器的不可独占性,暂时只能手工触发
    • 自动化的性能测试和稳定性测试还是实施中
  • 最终版本的对外发布也是通过手工触发(QA人员控制)
我们正在路上 - 从持续集成到持续发布 - 网易杭州QA - 网易杭州 QA Team
以上的流程是根据项目/产品的需求和现状制定的,只是一些思路可以借鉴,具体的实施一定要结合实际情况,因地制宜的开展

Jenkins持续发布流水线

我们正在路上 - 从持续集成到持续发布 - 网易杭州QA - 网易杭州 QA Team
 
几个Jenkins持续发布流水线配置小Tips
         我们正在路上 - 从持续集成到持续发布 - 网易杭州QA - 网易杭州 QA Team
 
         我们正在路上 - 从持续集成到持续发布 - 网易杭州QA - 网易杭州 QA Team
 
         我们正在路上 - 从持续集成到持续发布 - 网易杭州QA - 网易杭州 QA Team
 
         我们正在路上 - 从持续集成到持续发布 - 网易杭州QA - 网易杭州 QA Team
    
 
  评论这张
 
阅读(719)| 评论(6)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016