一、基础篇
1.1 软件交付问题
1.1.1 奇奇怪怪的发布模式
- 手工部署软件
- 开发完后才向类生产环境部署
- 通过运维团队来管理生产环境的配置
手工部署软件的缺点:成本代价高,部署环境未自动化,每次部署时会发生错误且追查难,手工部署需要文档支持而文档维护成本高
在一个产品发布过程中,需要将测试、部署和发布活动也纳入开发过程中,让它们成为开发流程的一部分。
通过运维团队来管理生产环境,需要由团队登录到生产服务器进行手工修改并记录,系统无法回滚到之前部署的某个配置,包括操作系统、应用服务器、关系型数据库等
总结:
自动化部署能够省去很多麻烦,其带来的便利性也是显而易见的,同时在一个产品发布过程中,需要将测试、部署和发布活动也纳入开发过程中,让它们成为开发流程的一部分
1.1.2 软件交付的原则
软件部署三件事:
- 提供并管理必要的环境
- 将应用正确版本安装在正确环境上
- 配置应用程序,包括其所要的任何数据以及状态
软件交付的原则:
- 为软件发布创建一个可重复且可靠的过程
- 将测试等所有事情自动化
- 把所有东西纳入版本控制
- 提前并频繁地做让你感到痛苦的事(指优先解决项目中最痛苦的事)
- 越早发现错误,修复成本越小
- 交付团队的每个人都应该对应用程序的质量负责
- 戴明环原则:Plan - Do - Check - Action(PDCA原则),每个改进点都应该有一个人负责跟踪