持续集成CI/持续交付CD/持续部署

最近在从零探索jenkins时,Google到了不少与之相关的关键字,例如本文即将讨论的持续集成,持续交付,持续部署等。前端工程化有一个核心概念之一就是自动化操做。因此探索Jenkins也就是在探索前端工程化。
本文涉及到的keywords:前端

  • 持续集成CI
  • 持续交付CD
  • 持续部署
  • DevOps

一 持续集成CI

定义:持续集成Continuous integration指的是,频繁的(一天屡次)将代码集成到主干
目的:使得产品可以快速迭代,同时还能保持高质量,其核心措施是,代码集成到主干以前,必须经过全部的测试用例,只要有一个测试用例失败,就不容许集成到主干
特色:前端工程化

  • 快速发现错误,每完成一点更新,就集成到主干,能够快速发现错误
  • 防止分支大幅度偏离主干

持续集成在企业作配置后台的项目中体现比较明显,例如后台管理系统须要持续发版,不停的在增长新的功能以支持其余业务发展。运维

二 持续交付CD

持续交付Continuous delivery 指的是,频繁的将软件的新版本,交付给质量团队或者用户,以供评审或测试,若是应用经过评审,代码就进入生产阶段。
持续交付能够看做是持续集成的下一步,它强调的是无论怎么更新,软件是随时随地能够交付的。工具

三 持续部署

持续部署是持续交付的下一步,指的是代码通过评审后,自动部署到生产环境,能够理解为QA测试完成,应用准备部署上线生产环境。
持续部署的目标是:代码在任什么时候刻都是可部署的,能够进入生产阶段
持续部署的前提是能自动化完成测试,构建,部署等步骤,测试

clipboard.png

四 什么是DevOps开发模式

产品的生命周期包括原型设计,应用研发,构建,测试,部署这几个过程,传统的开发流程属于瀑布流,这些step都须要按顺序前后完成,每一个step对应不一样的人群,好比研发同窗更多关注研发,构建,在测试方面有专门的QA负责,运维同窗负责部署以及线上环境的搭建,这种开发方式人员分工明确,工做界限划分清晰。随着devops思想的盛行,这种瀑布流开发方式受到了挑战,devops由dev(Development)与ops(Operations)即软件开发人员和运维同窗构成,打破原有各个部门隔离的现状,提高dev与ops之间沟通合做来使得构建,测试,部署软件变得更为快捷,频繁和可靠。spa

clipboard.png

1. DevOps之自动化测试

DevOps中的测试必然是自动化测试,全员测试,PM,研发,QA等协同合做,使得测试覆盖每一个方面,并且当一天上线屡次时,添加补丁或者更新功能,自动化测试将极高的提高开发效率。设计

2. DevOps之协做开发

DevOps中开发再也不只是埋头写代码,还要为本身代码质量负责,出 bug 了,运行缓慢了若是问题定位是代码的缘由,那这个坑就得本身填了。3d

DevOps 中由开发团队完成交付工做,不像之前开发团队和交付团队是2个团队,用各自习惯的工具,交付工做中使用的工具套件是开发流程中的工具,无需转手,简化开发测试人员的工做。code

2. DevOps可视化运维

clipboard.png
DevOps 中的一套成熟的运维系统包括什么?blog

  • 自动化测试
  • 批量配置基础组件
  • 监控,告警
  • 数据可视化
  • 协同合做
相关文章
相关标签/搜索