软件交付的问题
1.1简单的部署流水线(自动化部署过程)
1.提交阶段、编译、单元测试、分析、构建安装包。
2.自动化、验收、测试。
3.自动化、容量、测试。
4.手工测试、演示、探索性测试。
5.发布。
目标
- 软件的构建、部署、测试、发布对所有人都是可见的,有助于合作。
- 在整个过程中,改善了反馈,及时发现并解决问题。
- 可通过完全自动化过程在任意环境上部署和发布软件的任意版本。
将高度自动化的测试和部署及全面的配置管理结合在一起,
实现一键式发布
1.2常见的发布反模式
1.手工部署软件
2.开发完之后才向类生产环境部署(开发环境与生产环境差异较大、试运行环境的不同)
3.生产环境的手工配置管理
4.我们能做的更好吗
1.3如何实现目标
频繁的自动化发布——反馈
1.无论什么样的修改,都应该触发反馈流程。
(可执行的代码、配置信息、运行环境、数据)
反馈流程——完全以自动化的形式测试每一次的变更
2.反馈应该尽快发出(完全自动化的限制——能够使用的硬盘数量)
3.交付团队必须接收反馈,并对其做出相应的行动。
(各成员之间相互交流发表意见)
1.4收效
1.授权团队(团队协作、高效工作)
2.减少错误
3.缓解压力
4.部署的灵活性
5.多加练习,使部署完美。(使用同一部署方式)
1.5候选发布版本
持续集成——每次提交都对应用程序进行构建并测试
发现并及时解决问题
1.6软件交付的原则
1.为软件的发布创建一个可重复且可靠的过程
2.将几乎所有的事情可自动化(探索性测试、演示、审批流程)
3.把所有的东西都纳入版本控制
4.提前并频繁的做让你感到痛苦的事(持续集成)
5.内建质量
6.“DONE”意味着“已发布”(部署到生产环境)
7.交付过程是每个成员的责任
8.持续改进(计划、做、研究、行动。)
问:什么是软件部署?
(可全自动化——将信息纳入版本控制;硬件可采用虚拟化技术和像Puppet这样的工具可实现自动化)
答:1.提供并管理你的软件所需要的运行环境,包括:硬件配置、所需要的软件、基础设施以及所需的外部服务;
2.将你的应用程序的正确版本安装到其上;
3.配置你的应用程序,包括它所需要的任何状态以及数据。
感悟与总结
初次接触产品的产出流程,有些生疏,读起来也有点伤神。
第一章主要讲了软件交付的问题及出版本书的主要原因。
核心为软件交付的原则——是项目成员之间相互交流,及时查找并解决问题,将所有的事情尽量可自动化,持续集成,创建可重复且可靠的环境呢,每个成员的参与都很主要,使出错率下降,效率提高。
问题
只是了解了软件交付的原则,了解了产品怎样快速高效的发布,但具体怎么操作还是没有长进,对“一键式”发布、新成员可以快速的构建应用程序、修改代码会给出提示、怎样控制使其自动化及可返回待发布的版本感到好奇,很期待以后的学习。
网友评论