优云:交付自动化的探索与展望

正如Kurt Bittner说的那样,如果敏捷仅仅是个开始的话,那持续交付则是头条!(我则更喜欢理解成高潮)。

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

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

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

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

搭建持续集成环境

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

图1. 自动部署测试环境

图2. Selenium自动测试

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

图3. 单元测试统计

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

图4. 问题定位

自动化测试流水线

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

自动化的接口及集成测试

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

测试分级

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

图5. 管道流水线

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

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

图6. 交付自动化

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

持续的反馈

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

总结

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

作者介绍

葛成远,10年测试老兵,掉入运维领域而无法自拔。现任职优云软件:秉承devops的理念,从监控、到应用体验,到自动化持续交付,全栈运维服务平台 https://uyun.cn

时间: 2024-07-31 11:40:17

优云:交付自动化的探索与展望的相关文章

优云经验谈:交付自动化的探索与展望

正如Kurt Bittner说的那样,如果敏捷仅仅是个开始的话,那持续交付则是头条!(我则更喜欢理解成高潮). "If Agile Was the Opening Act,Continuous Delivery is the Headliner!"--Kurt Bittner 现代企业要求软件开发过程保持最大的工作效率,传统的瀑布式开发早已跌入历史洪流,甚至敏捷宣言也已超过10年的历史,软件开发在经历了敏捷开发.持续集成后,正逐步迈入到持续交付的时代. 持续交付是持续集成的延伸,强调以

优云软件老司机:如何让运维操作更轻松、高效

讲师介绍 庞辉富 •广通软件技术总监 •拥有10多年IT运维管理软件研发经验 •致力于自动化运维解决方案的研究和推广 •主导研发的产品广泛应用于海关.公安.能源等多个行业 技术发展给运维带来的挑战 当前的IT建设在这些新技术的演进下,我们看到的是呈现"双态IT"特征.Gartner也提出双模IT理论,与现在谈的双态IT是异曲同工的,不再是一种单纯的形态,而是两种形态交集在一起. 一种是稳态,也是我们经常说的核心业务,比如银行的核心业务.政府的核心业务等,业务系统一般以传统IOE或VCE

优云蒋君伟:自动化运维成本仍然很高

9月10日-11日,上海光大国际会展中心隆重举办了"2017上海站CNUTCon全球运维技术大会".本次大会的主题是"智能时代的新运维",各个公司为观众带来了他们关于该主题的思考,并分享了他们的实践经历.InfoQ有幸邀请了杭州优云软件有限公司的产品副总裁蒋君伟老师接受我们的采访.谈到对自动化运维未来的展望,蒋老师表示自动化运维必然是大势所趋,但是因为相关技术债务的存在,自动化运维的成本还很高.那优云自己的技术与产品是如何去做高效运维的呢?本次采访带你了解一二. I

优云automation实践技巧:简单4步完成自动化构建与发布

前言:本文介绍了优云是如何将运维自动化产品应用到日常工作实践中,并通过内部用户的大量使用来不断改进产品的用户体验. 各位看官,这不是一个揭发单身有为青年因同事们天天秀恩爱而受到一万点暴击伤害的故事.这里指的狗粮,不是真正的"狗粮"--当然,也不是你们认为的狗粮. 事实上,现在很多涉足产品开发的互联网公司,都会提到"吃狗粮"这一概念(出自"Eating yourown dog food -- 吃你自家的狗粮"),它的意思是公司内部员工使用自己生产的

优云Monitor:大规模Docker平台自动化监控之路

前言: 本文介绍了通过优云Monitor,如何实现大规模容器运维平台的自动化监控需求. 尽管Docker技术目前还处于不稳定的发展与标准制定阶段,但这门技术已经呈现了极其火热的增长状态,却已经是不争的实事.到底有多火热?让我们先来看一张来自国外监控公司DataDog 2016年最新调查报告: 从图中可以看出,自2015年5月后,采用容器技术的应用呈现了30%的大幅增长,放弃容器技术的的应用,则已经出现了平衡状态. 此消彼长,随着容器技术的推广,本文的主人公老葛,某互联网金融资深运维工程师,也开始

优云实践:持续交付的Mesos与Docker导入篇

变革这个词在当今的数字化时代司空见惯,IT技术每过一段时间就会有一起革新,从WEB2.0.虚拟化.云计算.大数据.微架构.DevOps再到今天的容器Docker与Mesos. Docker的出现方便了应用的测试.部署.与升级,其将各种应用程序和它们所依赖的运行环境打包成标准的Container/Image,进而发布到不同的平台上运行.Docker的轻量级.快速部署.迁移方便的特性促进了DevOps的落地,借用容器,开发人员可以很方便的融入到产品的交付流程当中. Mesos是软件定义数据中心的最佳

再不自动化就晚啦!优云教你4步打造基于CentOS的产品镜像

随着Linux程序的增多,软件的安装过程中经常出现如下问题: 1.硬件配置类似或者相同时,批量安装系统和软件,希望实现自动化安装,减少安装时间和人为出错. 2.工程实施人员在不同客户现场进行系统和软件安装(硬件配置不同),由于硬件有差别,不容易实现自动化. 笔者针对以上场景,从提高生产效率,减少误操作的立场,提出如下解决方案,希望能达到抛砖引玉的目的,并能与同行进行深入的探讨,发现不足之处. 背景知识点 Anaconda是RedHat.CentOS.Fedora等Linux的安装管理程序,它可以

优云·小课堂 第八期:运维自动化的魅力

本期主题:如何通过自动化运维平台来缩短软件部署和应用发布时间,减少运维过程中的人工操作从而提高企业应用的可靠性和质量,降低IT运维成本. 嘉宾:柯连春 嘉宾介绍:优云资深技术研发 直播时间:2017年8月24日(周4,晚19:30) 直播地址:https://m.qlchat.com/live/320000072565279.htm

优云CMDB专家实践谈:自动化运维的基石CMDB

CMDB是什么? 运维百花齐放繁荣景象的同时,也让碎片化问题产生:每个人都想整合运维平台,但是往往事与愿违. CMDB就像一个人的大脑核心,是一个信息协调库,其存储的资料是协调身体完成各种复杂运动的信息来源.  我心中的CMDB . 碎片整合 面向运维工具的碎片化场景,是盘活整个运维管理的数据核心 . 元数据库 提供运维活动的基础元数据,是唯一可信的运维配置数据服务 . 场景驱动 为运维联动提供数据驱动,可协调工具来完成各类自动化场景    ​自动扩容+自动监控 CMDB如何建设? 痛点现象与对