最近在从零探索jenkins时,Google到了不少与之相关的关键字,例如本文即将讨论的持续集成,持续交付,持续部署等。前端工程化有一个核心概念之一就是自动化操做。因此探索Jenkins也就是在探索前端工程化。
本文涉及到的keywords:前端
定义:持续集成Continuous integration指的是,频繁的(一天屡次)将代码集成到主干
目的:使得产品可以快速迭代,同时还能保持高质量,其核心措施是,代码集成到主干以前,必须经过全部的测试用例,只要有一个测试用例失败,就不容许集成到主干
特色:前端工程化
持续集成在企业作配置后台的项目中体现比较明显,例如后台管理系统须要持续发版,不停的在增长新的功能以支持其余业务发展。运维
持续交付Continuous delivery 指的是,频繁的将软件的新版本,交付给质量团队或者用户,以供评审或测试,若是应用经过评审,代码就进入生产阶段。
持续交付能够看做是持续集成的下一步,它强调的是无论怎么更新,软件是随时随地能够交付的。工具
持续部署是持续交付的下一步,指的是代码通过评审后,自动部署到生产环境,能够理解为QA测试完成,应用准备部署上线生产环境。
持续部署的目标是:代码在任什么时候刻都是可部署的,能够进入生产阶段
持续部署的前提是能自动化完成测试,构建,部署等步骤,测试
产品的生命周期包括原型设计,应用研发,构建,测试,部署这几个过程,传统的开发流程属于瀑布流,这些step都须要按顺序前后完成,每一个step对应不一样的人群,好比研发同窗更多关注研发,构建,在测试方面有专门的QA负责,运维同窗负责部署以及线上环境的搭建,这种开发方式人员分工明确,工做界限划分清晰。随着devops思想的盛行,这种瀑布流开发方式受到了挑战,devops由dev(Development)与ops(Operations)即软件开发人员和运维同窗构成,打破原有各个部门隔离的现状,提高dev与ops之间沟通合做来使得构建,测试,部署软件变得更为快捷,频繁和可靠。spa
DevOps中的测试必然是自动化测试,全员测试,PM,研发,QA等协同合做,使得测试覆盖每一个方面,并且当一天上线屡次时,添加补丁或者更新功能,自动化测试将极高的提高开发效率。设计
DevOps中开发再也不只是埋头写代码,还要为本身代码质量负责,出 bug 了,运行缓慢了若是问题定位是代码的缘由,那这个坑就得本身填了。3d
DevOps 中由开发团队完成交付工做,不像之前开发团队和交付团队是2个团队,用各自习惯的工具,交付工做中使用的工具套件是开发流程中的工具,无需转手,简化开发测试人员的工做。code
DevOps 中的一套成熟的运维系统包括什么?blog