最近在从零探索jenkins时,Google到了很多与之相关的关键字,例如本文即将讨论的持续集成,持续交付,持续部署等。前端工程化有一个核心概念之一就是自动化操作。所以探索Jenkins也就是在探索前端工程化。
本文涉及到的keywords:
- 持续集成CI
- 持续交付CD
- 持续部署
- DevOps
一 持续集成CI
定义:持续集成Continuous integration指的是,频繁的(一天多次)将代码集成到主干
目的:使得产品能够快速迭代,同时还能保持高质量,其核心措施是,代码集成到主干之前,必须通过所有的测试用例,只要有一个测试用例失败,就不允许集成到主干
特点:
- 快速发现错误,每完成一点更新,就集成到主干,可以快速发现错误
- 防止分支大幅度偏离主干
持续集成在企业做配置后台的项目中体现比较明显,例如后台管理系统需要持续发版,不停的在增加新的功能以支持其他业务发展。
二 持续交付CD
持续交付Continuous delivery 指的是,频繁的将软件的新版本,交付给质量团队或者用户,以供评审或测试,如果应用通过评审,代码就进入生产阶段。
持续交付可以看作是持续集成的下一步,它强调的是不管怎么更新,软件是随时随地可以交付的。
三 持续部署
持续部署是持续交付的下一步,指的是代码经过评审后,自动部署到生产环境,可以理解为QA测试完成,应用准备部署上线生产环境。
持续部署的目标是:代码在任何时刻都是可部署的,可以进入生产阶段
持续部署的前提是能自动化完成测试,构建,部署等步骤,
四 什么是DevOps开发模式
产品的生命周期包括原型设计,应用研发,构建,测试,部署这几个过程,传统的开发流程属于瀑布流,这些step都需要按顺序先后完成,每个step对应不同的人群,比如研发同学更多关注研发,构建,在测试方面有专门的QA负责,运维同学负责部署以及线上环境的搭建,这种开发方式人员分工明确,工作界限划分清晰。随着devops思想的盛行,这种瀑布流开发方式受到了挑战,devops由dev(Development)与ops(Operations)即软件开发人员和运维同学构成,打破原有各个部门隔离的现状,提升dev与ops之间沟通合作来使得构建,测试,部署软件变得更为快捷,频繁和可靠。
1. DevOps之自动化测试
DevOps中的测试必然是自动化测试,全员测试,PM,研发,QA等协同合作,使得测试覆盖每个方面,而且当一天上线多次时,添加补丁或者更新功能,自动化测试将极高的提升开发效率。
2. DevOps之协作开发
DevOps中开发不再只是埋头写代码,还要为自己代码质量负责,出 bug 了,运行缓慢了如果问题定位是代码的原因,那这个坑就得自己填了。
DevOps 中由开发团队完成交付工作,不像以前开发团队和交付团队是2个团队,用各自习惯的工具,交付工作中使用的工具套件是开发流程中的工具,无需转手,简化开发测试人员的工作。
2. DevOps可视化运维
DevOps 中的一套成熟的运维系统包括什么?
- 自动化测试
- 批量配置基础组件
- 监控,告警
- 数据可视化
- 协同合作
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。