download:构建数据工程师能力模型,实战八大企业级项目完结无密
CI/CD 主要针对在集成新代码时所引发的问题(俗称"集成天堂")。 为什么会有集成天堂这个“雅称”呢?大家想想我们一个项目部署的过程,拉取代码->构建->测试->打包->部署,假如我们经常需求部署项目,特别是在微效劳时期,效劳特别多的状况下,不停的测试打包部署,那估量得有个人一整天特地做这事了,而这事又是繁琐的反复无意义的。 详细而言,CI/CD 可让持续自动化和持续监控贯串于应用的整个生命周期(从集成和测试阶段,到托付和部署),这些关联的事务通常被统称为"CI/CD 管道",由开发和运维团队以矫捷方式协同支持。 1.1 CI(Continuous Integration) CI/CD 中的"CI"一直指持续集成,它属于开发人员的自动化流程。胜利的 CI 意味着应用代码的新更改会定期构建、测试并兼并到代码仓库中,该处理计划能够处理在一次开发中有太多应用分支,从而招致互相抵触的问题。 1.2 CD(Continuous Delivery/Continuous Deployment) CI/CD 中的"CD"指的是持续托付和/或持续部署,这些相关概念有时会穿插运用。两者都事关管道后续阶段的自动化,但它们有时也会单独运用,用于阐明自动化水平。 持续托付(Continuous Delivery)通常是指开发人员对应用的更改会自动停止错误测试并上传到代码仓库(如 GitHub、GitLab 等),然后由运维团队将其部署到实时消费环境中。这旨在处理开发和运维团队之间可见性及沟通较差的问题。因而,持续托付的目的就是确保尽可能减少部署新代码时所需的工作量。 持续部署(Continuous Deployment)指的是自动将开发人员的更改从代码仓库发布到消费环境,以供客户运用。经过一套全自动化的流程,来处理手动测试、编译、打包等操作。持续部署以持续托付的优势为根基,完成了管道后续阶段的自动化。 2. 什么是 Jenkins 前面说的 CI/CD 算是一种思想,思想要落地,就需求对应的工具。 Jenkins 是一款开源的 CI/CD 软件,能够算是 CI/CD 软件指导者,它提供了超越 1000 个插件来支持构建、部署、自动化,根本上可以满足任何项目的需求。