Jenkins基础知识

官方网址:https://www.jenkins.io/

CI/CD是什么?

CI(Continuous integration,中文意思是持续集成)是一种软件开发实践。持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。借用网络图片对CI加以理解。

在这里插入图片描述

CD(Continuous Delivery, 中文意思持续交付)是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中做更多的测试。如果代码没有问题,可以继续手动部署到生产环境。下图反应的是CI/CD 的大概工作模式。
在这里插入图片描述

什么是Jenkins

Jenkins可以运行插件来支持构建、部署和自动化任何项目。

管道(pipeline)

官方资料: https://www.jenkins.io/doc/book/pipeline/

什么是pipeline

pipeline由一系列插件组成,它可以在Jenkins中实现并整合持续交付。

可以使用Jenkinsfile或者UI界面定义一个pipeline。

pipeline中的概念

Node

node是Jenkins环境中的一个机器,有能力执行pipeline。

Stage

pipeline中会有很多的任务,这些任务的子集构成了Stage。

Step

step就是pipeline中的一个单一任务,会明确的描述Jenkins在某个时间点做什么。

Blue Ocean

官方资料:https://www.jenkins.io/doc/book/blueocean/

什么是Blue Ocean

Blue Ocean提供pipeline的可视化。

特性:

  • 对于持续集成pipeline,提供精细的可视化。
  • pipeline编辑器。
  • 个性化。适应团队中每个人的角色。
  • 非常精确。用户提出的要求,可以很快的被满足。
  • 对于分支和pull请求,提供原生的整合。

Jenkins架构

网络流图

展示网络进入jenkins和离开jenkins的过程。如下图所示:

在这里插入图片描述

模型

对Jenkins应用进行高层级概览。如下图所示:

  ┌─────────────────────────────────────────┐   ┌─────────────────────┐   ┌─────────────┐
  │    Automation, machine to machine       │   │ End users/Browsers  │   │    Agents   │
  │    command line prompt (curl, wget..)   │   │                     │   │             │
  └─────────▲─────────────────────▲─────────┘   └───────────▲─────────┘   └───────▲─────┘
            │                     │                         │                     │
            │                     │                         │                     │
            │                     │                         │                     │
┌───────────▼───────────┬─────────▼───────────┬─────────────▼───────────┬─────────▼──────┐
│   Command line CLI    │   HTTP Endpoints    │  Web user interface     │    Remoting    │
├───────┬───────────────│                     │                         │                │
│  SSH  │   websocket   │                     │  (Jelly /Groovy views)  │                │
│       │   or HTTP     │                     │                         │                │
│       ├───────────────┴─────────────────────┴─────────────────────────┤                │
│       │                                                               │                │
│       │       Stapler: security, routing, requests processing         │                │
│       │                                                               │                │
├───────┴───────────────────────────────────────────────────────────────┴────────────────┤
│                                                                                        │
│                       Business layer: models, processing, scheduling                   │
│                                                                                        │
├────────────────────────────────────────────────────────────────────────────────────────┤
│                                                                                        │
│                      Storage layer: XML files on JENKINS_HOME                          │
│                                                                                        │
└────────────────────────────────────────────────────────────────────────────────────────┘

插件可以为jenkins添加特性,所以从定义上来讲,业务层的内容是无限的。

Web框架

Jenkins使用Stapler将类绑定到URL上,绑定会依据特定的规则进行。

扩展

Jenkins在接口和抽象类中定义了扩展点,方便插件实现这些扩展点。

远程操作

Jenkins提供了一个jar来支持远程操作,其实现了Jenkins的通信层。这个通信层支持controller <=> agent 和 controller <=> CLI 交互操作。

总结

简单理解,jenkins就是在代码变更后自动进行构建、测试和部署的一个工具,可以运行插件。

参考资料

1、官方资料:https://www.jenkins.io/doc/

2、百度百科:https://baike.baidu.com/item/Jenkins/10917210?fr=aladdin

  • 11
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值