我在采用持续交付的组织中和开发团队工作一起工作,发现很多开发者认为的正确的敏捷团队的工作方式,在这里跑得不是很顺畅。我认为传统敏捷与持续交付的矛盾的根本在于,二者是采用不同的方式把软件变得“可以发布“(readytorelease)的。   我在采用持续交付的组织中和开发团队工作一起工作,发现很多开发者认为的正确的敏捷团队的工作方式,在这里跑得不是很顺畅。我认为传统敏捷与持续交付的矛盾的根本在于,二者是采用不同的方式把软件变得“可以发布“(readytorelease)的。   软件交付的演进   使软件变得可以发布的过程一直在不停进化,下面是一个简要的介绍:   瀑布模型   瀑布模型认为,
2021-03-23 15:11:47 84KB 传统敏捷
1
当你有了持续集成需要的构建服务器和脚本之后,下一个问题肯定是:“我们该拿这些构建版本怎么办?”持续交付,以自动化或半自动化方式,将构建版本从一个环境提送(promote)到更接近实际生产的交付准备环境;这常常是公司在这方面演进的下一步。任何规模的公司都可以实施持续交付,但是具体流程会根据公司具体情况差异很大。显而易见,四人全能团队的需要,与大规模、多团队、配备正式QA和设备精良的产品支持部门这样的公司,二者一定有很大差别。本文没有试图提出万能方案,而是覆盖多种场景和选择。为持续交付选择工具集,是最不重要的决策。当你制定出工作流程之后,只需要选择相匹配的工具集即可。考虑到初始设置和配置的工作量,
2021-03-02 14:04:42 242KB 持续交付模式
1
现如今,单元测试、自动化验收测试、持续集成等技术手段已被很多项目团队所采用,它们可以在软件开发活动中很大程度的保证开发软件的正确性,即是否满足了新的需求并且没有破坏已有的需求。但是如果软件无法顺利的部署到生产环境上,就不能带来任何商业价值。作为软件开发人员,为了验证软件是否能够部署成功,不应该只有当软件设计、开发、测试等阶段结束后才向生产环境或准生产环境部署,而应该把部署作为整个软件开发活动的一部分,从项目之初,在项目整个持续过程中,实现自动化的构建、部署、测试,即“部署流水线”。有了“部署流水线”之后,当我们在每次代码提交时,都有可能向测试环境、准生产环境等不同环境部署软件并测试,会有如下情
1
持续交付--发布可靠软件的系统方法》,英文名《Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation》,原作者:(英)Jez Humble、(英)David Farley,翻译:乔梁,出版社:人民邮电出版社,ISBN:9787115264596,PDF 格式,大小 47MB。 内容简介: 《持续交付--发布可靠软件的系统方法》是一本软件工程师的职场指南,以大量虚构的名字和情景描述了极客的日常工作,对他们常遇到的各类棘手问题给予了巧妙回答。作者以自己在苹果、网景等公司中面临的生死攸关的时刻所做的抉择为例,总结了在硅谷摸爬滚打的经验,旨在为软件工程师更好地规划自己的职业生涯提供帮助。    《持续交付--发布可靠软件的系统方法》适合软件工程师以及所有职场人士阅读。 目录: 《持续交付--发布可靠软件的系统方法》 第一部分 基础篇 第1章 软件交付的问题 2 1.1 引言 2 1.2 一些常见的发布反模式 3 1.2.1 反模式:手工部署软件 4 1.2.2 反模式:开发完成之后才向类生产环境部署 5 1.2.3 反模式:生产环境的手工配置管理 7 1.2.4 我们能做得更好吗 8 1.3 如何实现目标 9 1.3.1 每次修改都应该触发反馈流程 10 1.3.2 必须尽快接收反馈 11 1.3.3 交付团队必须接收反馈并作出反应 12 1.3.4 这个流程可以推广吗 12 1.4 收效 12 1.4.1 授权团队 13 1.4.2 减少错误 13 1.4.3 缓解压力 15 1.4.4 部署的灵活性 16 1.4.5 多加练习,使其完美 17 .1.5 候选发布版本 17 1.6 软件交付的原则 19 1.6.1 为软件的发布创建一个 可重复且可靠的过程 19 1.6.2 将几乎所有事情自动化 19 1.6.3 把所有的东西都纳入版 本控制 20 1.6.4 提前并频繁地做让你 感到痛苦的事 20 1.6.5 内建质量 21 1.6.6 “done”意味着“已发 布” 21 1.6.7 交付过程是每个成员的 责任 22 1.6.8 持续改进 22 1.7 小结 23 第2章 配置管理 24 2.1 引言 24 2.2 使用版本控制 25 2.2.1 对所有内容进行版本控 制 26 2.2.2 频繁提交代码到主干 28 2.2.3 使用意义明显的提交注 释 29 2.3 依赖管理 30 2.3.1 外部库文件管理 30 2.3.2 组件管理 30 2.4 软件配置管理 31 2.4.1 配置与灵活性 31 2.4.2 配置的分类 33 2.4.3 应用程序的配置管理 33 2.4.4 跨应用的配置管理 36 2.4.5 管理配置信息的原则 37 2.5 环境管理 38 2.5.1 环境管理的工具 41 2.5.2 变更过程管理 41 2.6 小结 42 第3章 持续集成 43 3.1 引言 43 3.2 实现持续集成 44 3.2.1 准备工作 44 3.2.2 一个基本的持续集成系 统 45 3.3 持续集成的前提条件 46 3.3.1 频繁提交 46 3.3.2 创建全面的自动化测试 套件 47 3.3.3 保持较短的构建和测试 过程 47 3.3.4 管理开发工作区 49 3.4 使用持续集成软件 49 3.4.1 基本操作 49 3.4.2 铃声和口哨 50 3.5 必不可少的实践 52 3.5.1 构建失败之后不要提交 新代码 52 3.5.2 提交前在本地运行所有 的提交测试,或者让持 续集成服务器完成此事 53 3.5.3 等提交测试通过后再继 续工作 54 3.5.4 回家之前,构建必须处 于成功状态 54 3.5.5 时刻准备着回滚到前一 个版本 55 3.5.6 在回滚之前要规定一个 修复时间 56 3.5.7 不要将失败的测试注释 掉 56 3.5.8 为自己导致的问题负责 56 3.5.9 测试驱动的开发 57 3.6 推荐的实践 57 3.6.1 极限编程开发实践 57 3.6.2 若违背架构原则,就让 构建失败 58 3.6.3 若测试运行变慢,就让 构建失败 58 3.6.4 若有编译警告或代码风 格问题,就让测试失败 59 3.7 分布式团队 60 3.7.1 对流程的影响 60 3.7.2 集中式持续集成 61 3.7.3 技术问题 61 3.7.4 替代方法 6
2020-01-21 03:02:21 46.47MB 软件 软件规划 职业规划 持续交付
1
书名:持续交付 作者: Jez Humble David Farley 出版社: 人民邮电 副标题: 发布可靠软件的系统方法 原作名: Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation 译者: 乔梁 出版年: 2011-10 简介: Jez Humble编著的《持续交付(发布可靠软件的系统方法)》讲述如何实现更快、更可靠、低成本的自动化软件交付,描述了如何通过增加反馈,并改进开发人员、测试人员、运维人员和项目经理之间的协作来达到这个目标。《持续交付(发布可靠软件的系统方法)》由三部分组成。第一部分阐述了持续交付背后的一些原则,以及支持这些原则的实践。第二部分是本书的核心,全面讲述了部署流水线。第三部分围绕部署流水线的投入产出讨论了更多细节,包括增量开发技术、高级版本控制模式,以及基础设施、环境和数据的管理和组织治理。 《持续交付(发布可靠软件的系统方法)》适合所有开发人员、测试人员、运维人员和项目经理学习参考。 目录: 第一部分 基础篇 第1 章 软件交付的问题   2 1.1 引言  2 1.2 一些常见的发布反模式   3 1.2.1 反模式:手工部署软件   4 1.2.2 反模式:开发完成之后才向类生产环境部署   5 1.2.3 反模式:生产环境的手工配置管理  7 1.2.4 我们能做得更好吗   8 1.3 如何实现目标   9 1.3.1 每次修改都应该触发反馈流程  10 1.3.2 必须尽快接收反馈   11 1.3.3 交付团队必须接收反馈并作出反应   12 1.3.4 这个流程可以推广吗  12 1.4 收效  12 1.4.1 授权团队  13 1.4.2 减少错误  13 1.4.3 缓解压力  15 1.4.4 部署的灵活性  16 1.4.5 多加练习,使其完美  17 1.5 候选发布版本  17 1.6 软件交付的原则  19 1.6.1 为软件的发布创建一个可重复且可靠的过程  19 1.6.2 将几乎所有事情自动化  19 1.6.3 把所有的东西都纳入版本控制  20 1.6.4 提前并频繁地做让你感到痛苦的事  20 1.6.5 内建质量  21 1.6.6 “DONE”意味着“已发布”    21 1.6.7 交付过程是每个成员的责任   22 1.6.8 持续改进  22 1.7 小结   23 第2 章 配置管理  24 2.1 引言  24 2.2 使用版本控制  25 2.2.1 对所有内容进行版本控制  26 2.2.2 频繁提交代码到主干  28 2.2.3 使用意义明显的提交注释  29 2.3 依赖管理  30 2.3.1 外部库文件管理  30 2.3.2 组件管理  30 2.4 软件配置管理  31 2.4.1 配置与灵活性  31 2.4.2 配置的分类   33 2.4.3 应用程序的配置管理  33 2.4.4 跨应用的配置管理  36 2.4.5 管理配置信息的原则   37 2.5 环境管理   38 2.5.1 环境管理的工具  41 2.5.2 变更过程管理  41 2.6 小结   42 第3 章 持续集成  43 3.1 引言  43 3.2 实现持续集成  44 3.2.1 准备工作  44 3.2.2 一个基本的持续集成系统  45 3.3 持续集成的前提条件  46 3.3.1 频繁提交  46 3.3.2 创建全面的自动化测试套件  47 3.3.3 保持较短的构建和测试过程  47 3.3.4 管理开发工作区   49 3.4 使用持续集成软件  49 3.4.1 基本操作   49 3.4.2 铃声和口哨   50 3.5 必不可少的实践   52 3.5.1 构建失败之后不要提交新代码  52 3.5.2 提交前在本地运行所有的提交测试,或者让持续集成服务器完成此事  53 3.5.3 等提交测试通过后再继续工作  54 3.5.4 回家之前,构建必须处于成功状态   54 3.5.5 时刻准备着回滚到前一个版本  55 3.5.6 在回滚之前要规定一个修复时间  56 3.5.7 不要将失败的测试注释掉   56 3.5.8 为自己导致的问题负责  56 3.5.9 测试驱动的开发  57 3.6 推荐的实践   57 3.6.1 极限编程开发实践  57 3.6.2 若违背架构原则,就让构建失败   58 3.6.3 若测试运行变慢,就让构建失败   58 3.6.4 若有编译警告或代码风格问题,就让测试失败  59 3.7 分布式团队  60 3.7.1 对流程的影响  60
2020-01-21 03:00:54 41.43MB 持续交付 敏捷开发 项目管理
1