DevOps关键能力之持续交付 - 新书预览《加速:精益软件和DevOps的科学》
“ 持续交付需要哪些关键能力呢?”
本文是重磅新书《加速》读后感系列文章DevOps需要哪些关键能力?新书预览《加速:精益软件和DevOps的科学》的续篇。在前文中,我们提到DevOps有24个关键能力。
而其中,有8个关键能力是关于持续交付的。这些能力将赋能我们更安全、更快和更持续地把新的特性、缺陷修复以及试验代码交付到生产环境和用户手中。
01
—
持续交付的5个核心原则
内建质量
把质量一开始就内建在软件产品中。
小批量
把大而全的需求拆分成更小的、可度量其价值的小需求,以便我们可以更快地获取用户反馈并及时修正,和降低每次的变更成本。
电脑执行重复性的工作,人来解决问题
如果重复性工作可以被自动化,将赋能人们去聚焦在更有价值的、解决问题的事情上。
无休止地追求持续改进
高效能的团队对变得更好的追求是永无止境的,他们总是把改进变成日常。
每个人都有担当和负起责任
02
—
实施持续交付的要求
完善的配置管理
尽可能把所有配置都通过版本控制器来管理,并自动化服务器环境的预备以及软件的构建、测试和部署。
持续集成
高效能团队会尽力缩短代码分支存在的周期(最好少于1天),并迅速地把分支合并到主干中。
持续测试
测试是必须的,而且是持续性的。它是开发过程的一部分,并通过自动化给予开发人员即时的质量反馈。
03
—
关键能力
版本化一切构件
版本控制器应该用于管理所有构件,包括脚本、代码和配置,以便于自动化构建和配置环境。
自动化部署
自动化所有部署工作,过程不需要人工干预。
实施持续集成
持续集成是持续交付的第一步。它通过监控代码提交行为并触发一系列的快速测试来暴露回归问题。一旦发现回归问题,开发人员可以快速修复,从而增强软件的质量。
基于主干的开发
尽量保持最少和最短的分支(最好少于1天),并频繁地合并到主干中。这样将大大避免合并冲突,减少代码锁定周期。
实施测试自动化
只有通过可靠的自动化测试的代码才能上线。开发人员的首要责任是构建和维护自动化的验收测试。
测试驱动编程强制开发人员编写可测试的代码并让他们对这些测试代码负责。相对于繁文缛节的测试文档,他们也更有兴趣来维护和修复这些测试代码。
测试工程师依然重要,他们执行自动化测试未能覆盖的人工测试,并帮助开发人员补充和完善他们的自动化测试。
测试数据管理
当构建自动化测试时,管理与之配套的测试数据也是完整的自动化测试的一部分。因此,开发人员必须设法把测试数据的准备过程也自动化了。
安全左移
把安全评审和安全测试嵌入到持续集成中。传统的安全评审和安全测试是在软件开发完成后才进行的,这将不可避免地带来大量的返工工作。而且,一旦交付变得频繁,安全团队也没有能力及时跟进安全评审,所以软件安全性必须内建在开发过程中。
实施持续交付
实施持续交付意味着构建多个的反馈环,以确保高质量的软件可以更频繁、更可靠地交付给用户,最终实现按需发布。
一旦团队在实践持续交付,发布上线就不再是大型的一次性活动,而是在上班时间内的常规工作。持续交付帮助我们实现敏捷宣言的12原则之一:敏捷过程提倡可持续的开发,项目方、开发人员和用户应该能够保持恒久稳定的进展速度。
实施持续交付所需要的各种实践,需要我们重新思考团队是如何工作的和团队成员如何交互,以及有哪些工具和流程是需要的。测试、部署自动化也有赖于不断简化的系统架构,以避免自动化过于复杂和昂贵,无法启动和维护。
因此,实现持续交付的其中一个关键障碍是企业和系统的架构。我将在后续的文章对这个主题及其相应的关键能力进行探讨。敬请留意后续文章。
部分内容翻译自Ariana Brighenti@HSBC的撰文。
近期必读:
DevOps需要哪些关键能力?新书预览《加速:精益软件和DevOps的科学》
复杂(Complex)问题与繁杂(Complicated)问题,你怎么选
参观微信总部的一些分享
关于作者
刘华(Kenneth)
就职于世界500强银行,负责基金服务业务软件开发与交付
敏捷、精益、DevOps专家
精通极限编程、Scrum、看板方法、测试驱动开发、持续集成、行为驱动开发、DevOps工具栈
曾在GDevOps、DevOpsDays Meetup、中国软件技术大会、ArchSummit等论坛发表主题演讲
著有《猎豹行动:硝烟中的敏捷转型之旅》一书
小说体敏捷/DevOps转型教科书
和实战经验分享
购书指南
—
纸质书、电子书在京东、当当、亚马逊、微信读书等渠道已全面上架,搜索关键字“猎豹 敏捷”即可找到。点击阅读原文可直接购书。
有声书已登录喜马拉雅、微信读书,适合路上听书的你。
关注公众号看其他原创作品
觉得好看,点个“在看”或转发给朋友们,欢迎你留言。
DevOps关键能力之持续交付 - 新书预览《加速:精益软件和DevOps的科学》相关推荐
- 史上最能“拜客户教”的公司,是如何做到持续交付的?(第2趴)|DevOps案例研究...
内容来源:DevOps案例深度研究 –Amazon持续交付之道战队(本文只展示部分PPT及研究成果,更多细节请关注案例分享会,及本公众号.) 本案例内容贡献者:单冰 (Topic Leader). 赵 ...
- 【华为敏捷/DevOps实践】8. 持续交付,持续部署,傻傻分不清楚
文:姚冬(华为云DevCloud首席技术布道师,资深DevOps与精益/敏捷专家,金融解决方案技术Leader,中国DevOpsDays社区核心组织者) 前言 "持续交付与持续部署,到底谁应 ...
- quicklook不能预览office_万物皆可格!给空格键施加神奇魔法的神器软件—快速预览工具QuicklookPC软件...
大家好,我是元力.今天给大家带来一款电脑端使用的超级神奇的软件.只需要选中文件,然后点击空格键,即可预览文件. 支持大部分格式,比如word.excel.pdf.图片.视频甚至图片的源文件等等.真正实 ...
- typora 浏览器预览_今日软件 | 造画、夸克浏览器、完美解码、Process Lasso、第三方微博客户端、专业矢量图/图像编辑工具...
今日软件更新 安卓APP 「Share」3.5.1 # 第三方微博客户端 ▾下载:https://lanzous.com/ictvdlg 「夸克浏览器」4.1.2.133 # 轻快简洁的浏览器 ▾下载 ...
- DevOps案例研究:庖丁解牛,剖析Google持续交付之道
内容来源:DevOps案例深度研究 –Google持续交付实践战队(本文只展示部分PPT及研究成果,更多细节请关注案例分享会,及本公众号.) 本案例内容贡献者:姚元庆 (Topic Leader) . ...
- 任发科:DevOps的前世来生,从《目标》、《凤凰项目》到《持续交付》
本文来自作者 常新居士(任发科) 在 GitChat 上分享「从<目标>.<凤凰项目>到<持续交付>:DevOps 的过去.现在及未来」. 计算机科学中的任何问题都 ...
- DevOps核心实践--持续交付
DevOps的核心是软件开发和交付理念,强调产品管理,软件开发和运营/系统管理员团队之间的沟通和协作,并与业务目标紧密结合.它通过建立一种文化(与相关实践)来自动化和监控软件集成,测试,部署和基础架构 ...
- 《持续交付》读书笔记
读乔梁先生<持续交付2.0>摘要,仅供学习交流 一.持续交付2.0 1.1 软件工程发展 1.瀑布软件开发 传统的瀑布软件开发模型每个阶段都花费属于的实际那,需要花费大量的经历确定需求的范 ...
- 持续集成/持续交付(CI/CD)
目录 全面了解持续集成/持续交付 概览 "持续"是什么意思? 什么是"持续交付管道"? 持续交付管道是如何工作的? "快速失败"是什么意思? ...
最新文章
- 空间点像素索引(三)
- 卡尺测量的最小范围_工厂车间里常用的测量仪器使用方法介绍,你都会用吗?...
- ignite学习笔记
- JavaScript实现Fast Powering算法(附完整源码)
- C++ STL 容器 vector
- c语言程序编写一朵花,一朵花(中英双语)
- 22课时、19大主题,CS 231n进阶版课程视频来了
- 硬核黑科技、技术大咖、AI 音乐节……科大讯飞全球 1024 开发者节太燃了!
- 不重启程序使用最新版package
- Maven Oracle JDBC
- 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_10-修改页面-前端-修改页面...
- 联想小新13pro锐龙版网卡_4499元诠释极致性价比 联想小新Pro 13标压锐龙版上手...
- 计算机上网记录怎么清除,win7系统彻底清除上网记录的详细方法
- Java中T和?的区别
- 测试投入度量元的选择
- windows命令 format的用法
- POJ1723士兵站队问题
- Storm Windowing(翻译)
- Day059 爬虫(三)
- cdma编码 计算机网络,计算机网络——2.物理层