就是持续的将需求部署到目标环境上。
是在持续交付的基础上,把部署到生产环境的过程自动化。
指软件个人研发的部分向软件整体部分交付,以便尽早发现个人开发部分的问题
- 部署 - 应用组件或基本设施的代码或配置变更在产品环境生效称为“部署”
是代码尽快向可运行的开发/测试节交付,以便尽早测试。
- 发布 - 具有业务影响的功能变化对最终用户可见称为“发布”
- 交付
是指研发尽快向客户交付,以便尽早发现生产环境中存在的问题。
可以理解为从 Deployment 到 Release 之间的阶段,更多的强调的是一种能力。
开发有能力频繁的部署,业务有能力随时发布。
是说每完成一个完整的部分,就向下个环节交付,发现问题可以马上调整。
使得问题不会放大到其他部分和后面的环节。
代码的零库存管理,是精益生产的精~精~精~精髓。
1. 代码越早push出去,用户能越早用到,快就是商业价值;
2. 用户越早用到就越早反馈,团队越早得到反馈,好坏都是有价值的输入;
3. 用户不反馈,说明我们做了用户不想要的东西(通过用例跟踪)或者marketing没做好,能帮助产品市场人员调整策略;
4. 代码库存越是积压,就越得不到生产检验,积压越多,代码间交叉感染的概率越大,下个release的复杂度和风险越高;
5. 代码库存越多,workflow的包袱越重,管理成本越大,说敏捷越可笑。
Jira 缺陷跟踪领域
GreenHopper 敏捷开发领域
Conference 协同工作领域
FishEye 代码查找领域
Crucible 代码评审领域
Bamboo 持续集成领域