CI(持续集成)/CD(持续部署)

  • 什么是CI(持续集成)

持续集成(ContinousIntergration,CI)是一种软件开发实践,即团队开发成员常常集成它们的工做,一般每一个成员天天至少集成一次,也就意味着天天可能会发生屡次集成。每次集成都经过自动化的编译、发布、自动化回归测试来验证,从而尽快地发现集成错误。许多团队发现这个过程能够大大减小集成的问题,让团队可以更快的开发内聚的软件。持续集成是为了持续交付。 没有单元测试的持续集成基本无心义。架构

  • 什么是CD(持续部署)

持续部署(ContinousDelivery,CD)在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境中。好比,咱们完成单元测试后,能够把代码部署到测试环境中,交付给质量团队或者用户,以供评审。若是评审经过, 代码就进入生产阶段。运维

  • 常规的测试过程:开发送测一个版本——>测试人员从配置库下载版本——>编译版本——>部署到测试环境——>进行冒烟测试——>进行功能测试。 而这些过程彻底能够由CI/CD来替代。
  • DevOps

DevOps是一个完整的面向IT运维的工做流,以IT自动化以及CI、CD为基础,来优化程序开发、测试、系统运维等全部环节。工具

DevOps实际是一种文化上的变迁,表明了开发、运维、测试等环节之间的协做,所以DevOps工具是很是多种多样的,甚至能够由多种工具组成一个完整的DevOps工具链。此类工具能够应用于一种或多种类别,并可体现出软 件开发和交付过程的不一样阶段:性能

①编码:代码开发和审阅,版本控制工具、代码合并工具单元测试

②构建:持续集成工具、构建状态统计工具测试

③测试:经过测试和结果肯定绩效的工具优化

④打包:成品仓库、应用程序部署前暂存编码

⑤发布:变动管理、发布审批、发布自动化版本控制

⑥配置:基础架构配置和部署,基础架构即代码工具开发

⑦监视:应用程序性能监视、最终用户体验