Skip to content

Latest commit

 

History

History
67 lines (55 loc) · 2.16 KB

README.md

File metadata and controls

67 lines (55 loc) · 2.16 KB

软件开发实践

  • 持续集成 CI
  • 持续交付 CD
就是持续的将需求部署到目标环境上。
是在持续交付的基础上,把部署到生产环境的过程自动化。

概念

  • 集成 - 编译、测试、打包
指软件个人研发的部分向软件整体部分交付,以便尽早发现个人开发部分的问题
  • 部署 - 应用组件或基本设施的代码或配置变更在产品环境生效称为“部署”
是代码尽快向可运行的开发/测试节交付,以便尽早测试。
  • 发布 - 具有业务影响的功能变化对最终用户可见称为“发布”
  • 交付
是指研发尽快向客户交付,以便尽早发现生产环境中存在的问题。

可以理解为从 Deployment 到 Release 之间的阶段,更多的强调的是一种能力。
开发有能力频繁的部署,业务有能力随时发布。
  • 持续 - 不断的获取反馈,响应反馈。
是说每完成一个完整的部分,就向下个环节交付,发现问题可以马上调整。
使得问题不会放大到其他部分和后面的环节。

思想

  • 代码的零库存管理
代码的零库存管理,是精益生产的精~~~精髓。
1. 代码越早push出去,用户能越早用到,快就是商业价值;
2. 用户越早用到就越早反馈,团队越早得到反馈,好坏都是有价值的输入;
3. 用户不反馈,说明我们做了用户不想要的东西(通过用例跟踪)或者marketing没做好,能帮助产品市场人员调整策略;
4. 代码库存越是积压,就越得不到生产检验,积压越多,代码间交叉感染的概率越大,下个release的复杂度和风险越高;
5. 代码库存越多,workflow的包袱越重,管理成本越大,说敏捷越可笑。

流程

  • 持续集成

  • 持续交付

  • 持续部署

软件开发和协作工具

Jira 缺陷跟踪领域
GreenHopper 敏捷开发领域
Conference 协同工作领域
FishEye 代码查找领域
Crucible 代码评审领域
Bamboo 持续集成领域