持续集成部署神器:Jenkins
一 jenkins是什么?
Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。
二 特点是什么?
1.持续集成和持续交付
作为一个可扩展的自动化服务器,Jenkins可以用作简单的CI服务器,或者变成任何项目的连续交付中心。
2.简易安装
Jenkins是一个独立的基于Java的程序,可以立即运行,包含Windows,Mac OS X和其他类Unix操作系统
3.配置简单
Jenkins可以通过其网页界面轻松设置和配置,其中包括即时错误检查和内置帮助
4.插件
通过更新中心中的1000多个插件,Jenkins集成了持续集成和持续交付工具链中几乎所有的工具。
5.扩展
Jenkins 可以通过其插件架构进行扩展,从而为 Jenkins 可以做的事提供几乎无限的可能性。
6.分布式
Jenkins可以轻松地在多台机器上分配工作,帮助更快速地跨多个平台推动构建,测试和部署
7.跟第三方工具集成非常友好
Jenkins跟目前主流比如容器化应用平台k8s,团队协作平台jira,监控平台(zabbix等)
产品发布流程是什么?
产品设计成型 -> 开发人员开发代码 -> 测试人员测试功能 -> 运维人员发布上线
持续集成 (Continuous integration,简称CI)
持续交付(Continuous delivery)
持续部署(continuous deployment)
三 CI/CD是什么?
CI(Continuous integration,中文意思是持续集成)是一种软件开发时间。持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。借用网络图片对CI加以理解。
CI
CD(Continuous Delivery, 中文意思持续交付)是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境。下图反应的是CI/CD 的大概工作模式。
CICD
下面是几张测试环境小截图:
Blue Ocean流水线构建
流水线构建列表展示
monitor 视图构建
项目列表
今天就介绍到这里后期主要是针对jenkins的安装配置以及实战应用,大家记得点点关注呦!
让我们用简要概括什么是 Jenkins。
什么是 Jenkins 以及为什么要使用它?
Jenkins 是一个用 Java 编写的开源自动化工具,带有用于持续集成的插件。Jenkins 用于持续构建和测试您的软件项目,从而使开发人员更容易将更改集成到项目中,并使用户更容易获得新的构建。它还允许您通过与大量测试和部署技术集成来持续交付软件。
借助 Jenkins,组织可以通过自动化来加速软件开发过程。Jenkins 集成了各种开发生命周期过程,包括构建、文档、测试、打包、模拟、部署、静态分析等等。
Jenkins 借助插件实现了持续集成。插件允许集成各种 DevOps 阶段。如果要集成特定工具,则需要安装该工具的插件。例如 Git、Maven 2 项目、Amazon EC2、HTML 发布者等。
下图描绘了 Jenkins 正在集成各个 DevOps 阶段:
Jenkins 的优势包括:
- 是一个具有社区大力支持的开源工具。
- 易于安装。
- 拥有 1000 多个插件,可简化您的工作。如果不存在插件,则可通过编码实现并与社区共享。
- 它是免费的。
- 它是用 Java 构建的,因此可以移植到所有主要平台。
Jenkins 的某些方面将其与其他持续集成工具区分开来。让我们看看这些要点。
Jenkins 的特性
以下是有关Jenkins的一些事实,这些事实使它比其他的持续集成工具更好:
- 应用:Jenkins 应用非常广泛,在全球范围内有超过 147,000 个活跃安装和超过 100 万用户。
- 插件:Jenkins 与1000 多个插件互连,从而使其可以与大多数开发、测试和部署工具集成。
从以上几点可以看出,Jenkins 在全球范围内有很高的需求。在我们深入研究 Jenkins 之前,先了解什么是持续集成以及它的重要性。
什么是持续集成?
持续集成是一种开发实践,在这种实践中,要求开发人员每天多次或更频繁地对共享存储库中的源代码提交更改。然后构建存储库中进行的每个提交。这使团队可以及早发现问题。除此之外,根据持续集成工具的不同,还有其他一些功能,例如在测试服务器上部署构建应用程序,为相关团队提供构建和测试结果等。
让我们通过用例了解它的重要性。
持续集成示例:诺基亚
【注】本文译自:https://edureka.co/blog/what-is-jenkins/ 公司上jenkins已经大半年了,一直没抽出时间来写一下搭建过程,今天得空记录一下整个搭建过程什么是Jenkins?运用Jenkins持续集成
jenkins自动构建javamaven项目