设为首页收藏本站

LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区!

 找回密码
 注册

QQ登录

只需一步,快速开始

#公告#抱歉,网站将关闭,不再开放。由于PC时代已远逝 。在这个后移动互联网时代,我们继续携手前行,保持对技术的热情。共同构建linuxtone知识星球欢迎加入,一起讨论技术、招聘人才、分享资源。请新老linuxtone人 扫码移步到 知识星球:linuxtone

学习是一种信仰!分享是一种快乐!能力= 心态 * 沟通 * 知识 (你的每一天需要正能量!)

 网站的发展需要你贡献一份力量!希望你能每天坚持看贴1小时,并回答网友的问题!祝你在浏览论坛的过程中取得进步!谢谢!linuxtone加油!大家加油! 友情提示: 你今天学习了吗?你今天进步了吗?少一点抱怨!多一点进步!Life is short ! Why not linuxtone ?  

网站的发展、感谢每位坛友的努力!

查看: 6687|回复: 0

[others] 交付自动化的探索与展望 [复制链接]

Rank: 6Rank: 6

签到
82
注册时间
2016-6-8
最后登录
2018-10-26
在线时间
31 小时
阅读权限
70
积分
8254
帖子
59
主题
54
精华
0
UID
47276
发表于 2016-6-13 13:52:20 |显示全部楼层
正如Kurt Bittner说的那样,如果敏捷仅仅是个开始的话,那持续交付则是头条!(我则更喜欢理解成高潮)。

“If Agile Was the Opening Act, Continuous Delivery is the Headliner!”——Kurt Bittner

现代企业要求软件开发过程保持最大的工作效率,传统的瀑布式开发早已跌入历史洪流,甚至敏捷宣言也已超过10年的历史,软件开发在经历了敏捷开发、持续集成后,正逐步迈入到持续交付的时代。

持续交付是持续集成的延伸,强调以自动化、可视化的手段更快的将产品交付到客户手中。持续交付的一个重要衡量指标就是从代码提交直到客户能使用这个功能所花费的时间,通过实行持续交付,这个时间往往可以从原先的几天、几周缩短到几分钟。当然,快速交付并不意味着不可靠。

那么我们如何实施自己的持续交付?以我们实际项目为例,与大家进行一个探讨,归纳起来,总共经历了以下3个过程:

1.jpg


搭建持续集成环境

以Jenkins为核心搭建持续集成平台,每天定时从代码库中检出最新的代码进行编译、构建。构建结果通知到项目组,开发人员只需要关注每天的集成结果是否是绿的就可以了,同时加入测试环境部署及自动化测试。

2.jpg


图1. 自动部署测试环境

3.jpg


图2. Selenium自动测试

简洁统一风格的代码有利于大家更好的理解及进行走查,而单元测试则是为了前期高质量的交付。

4.jpg


图3. 单元测试统计

通过SonarQube+JaCoCo的引入,可方便的定位到存在问题的代码行及单元测试情况。

5.jpg


图4. 问题定位

自动化测试流水线

持续交付讲究Automate almost everything将一切过程自动化起来,减少人工的干预。这里我们主要加入了以下环节。
自动化的接口及集成测试

测试进入的越早,发现问题修复的成本越低,通过引入TestNG等测试框架,对接口以及模块集成进行测试,有效的降低Bug流入后续环节的风险。

测试分级

将测试用例拆分成SmokingTest、AllTest等多套用例集,一方面快速反馈代码更新可能引起的风险,同时保证测试的有效覆盖,同时通过分布式集群并发执行等方式,加速执行效率,最终形成以下的流水线。

6.jpg


图5. 管道流水线

自动化交付及全平台工具整合

在传统模式下开发、测试、运维往往比较独立,测试完成后由运维人员进行部署上线,但是由于运维人员能力水平存在高低,复杂环境下的发布往往只有固定的几人才能搞得定,从而导致上线发布周期被拉长。我们通过自建交付自动化工具,同时整合平台让运维对外提供服务,消除开发、测试与运维之间的边界,大大降低了自动化运维的门槛,让运维效率有了很大的提升。

7.jpg


图6. 交付自动化

通过作业流程的编排,沉淀标准化作业封装,让普通运维人员快速实现相应的自动化脚本,同时通过整合资源/环境,对开发测试提供资源申请、部署等服务,加速自动化发布的验证,避免在正式发布时导致问题。

持续的反馈

上线发布完成并不意味着交付结束,当今社会是一个以服务取胜的社会,我们交付给用户的不再是简单的产品,更多的应该是服务。通过自动化的监控获取用户的反馈快速做出响应,不断提升我们的服务,才能提高用户的满意度和粘性。

总结

持续交付是一套方法论,通用的并不一定适合自己。希望仅以本文做一个引子,让大家寻找到适合自身的持续交付之路!附上一张交付过程中的工具集供大家参考。

8.jpg


作者介绍

葛成远,10年测试老兵,任职优云软件:秉承devops的理念,从监控、到应用体验,到自动化持续交付,全栈运维解决方案服务商:http://uyun.cn
您需要登录后才可以回帖 登录 | 注册

IT运维专家网感谢您的支持

合作联系: QQ:67888954/MSN:cnseek@msn.com/mail:netseek@linuxtone.org

Archiver|手机版|感谢所有关心和支持过LinuxTone的朋友们 转载本站内容请注明原作者名及出处 ( 京ICP备08103151 )   |

GMT+8, 2020-5-25 23:16 , Processed in 0.024026 second(s), 16 queries , Apc On.

Powered by Discuz! X2 Licensed

© 2001-2011 Comsenz Inc.

回顶部