1. 持续集成、持续交付和持续部署
提倡采用极端的开发周期持续验证当前编写的代码,旨在确保应用程序始终处于可部署到生产环境的状态。
1.1 持续集成(CI)
始终将代码与系统的其他部分集成起来,让问题快速浮出水面。发现问题后,将有限修复导致的问题原因,推后新的开发工作。它并未把整个流水线都自动化,代码部署到生产环境前,需要额外执行手动验证。
1.2 持续交付
比持续集成更进一步,将整个流水线都自动化(部署到生产环境除外)。每次将代码提交到仓库并通过所有验证后,便可部署到生产环境。然而,部署决策是人工完成的,需要有人选择要部署到生产环境的构建。
选择是基于策略或功能的,即要将哪个构建提供给用户以及何时提供。
1.3 持续部署(CD)
最后,如果有关部署内容的决策也是自动做出的,持续交付就变成了持续部署。
持续将代码交付到生产环境的条件:
1) 没有分支
2)分支从被创建到被集成到主干的时间很短(不超过一天,最好只有几小时);否则就不能持续验证代码。
2. 在生产环境中测试应用程序
3. 功能开关
目的:隐藏未完成功能。
功能开关能够开启和关闭应用程序的功能。
用途:
1 ) 对存在问题的功能进行隐藏,充当断路器,让应用程序平稳退化。
2)关闭次要功能,将硬件资源留给核心业务
- 仅对测试者启用新功能。让测试者能在生产服务器上进行校验。
框架:
Togglz
FF4J