CI/CD介绍与jenkins部署
CI/CD简介
互联网软件的开发和发布,已经形成了一套标准流程,假如把开发工作流程分为以下几个阶段:
编码 --> 构建 --> 集成 --> 测试 --> 交付 --> 部署
在软件开发和运维领域,我们经常会听到很多概念,比如DevOps,持续集成(CI,Continuous Integration),持续交付(CD,Continuous Delivery),持续部署(CD,Continuous Deployment)等等。这些新的概念、方法论和工具的出现,主要是为了应对目前业务的挑战。主要是要求业务推出和运维即“快”又“稳”:
- 快:比竞争对手更快的创新、试验和部署业务的能力。快速推出业务、快速获取反馈、快速迭代、快速试错。
- 稳:快速、频繁地特性发布,同时保证业务和系统的稳定性、可用性和持久性。
下面我们稍微解释一下持续集成(CI,Continuous Integration),持续交付(CD,Continuous Delivery),持续部署(CD,Continuous Deployment)的概念。
- 持续集成(CI,Continuous Integration):持续集成指的是,频繁地(一天多次)将代码集成到主干。持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。
- 持续交付(CD,Continuous Delivery):持续交付指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。
- 持续部署(CD,Continuous Deployment):持续部署是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。
三个概念:
持续集成CI: 代码合并,构建,部署,测试都在一起,不断的执行这个过程,并对结果进行反馈。
通过这个过程,在未上线前去反复测试,减少上线后出现bug的几率
持续部署CD: 部署到测试环境,预生产环境,生产环境。
持续交付:CD: 把最终的产品发布到生产环境中,让用户去使用,在使用的过程中反馈结果。
这个过程涉及到运维,开发,测试。
CI/CD的最终目的是为了减少人工干预,实现自动化,提高产品交付的效率和质量。
注意:发布前一定要备份文件
jenkins是什么?
Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行