Jenkins 核心功能或者说作用是什么?

2022-08-19 16:32:52 +08:00
 acbot

因为工作需要最近初略的了解了一下 Jenkins 及其功能,不知道是不是了解的不够深入的原因一直觉得使用它有一种画蛇添足的感觉, 比如: 代码都是由 github/gitlab 这些管理。软件打包或者是制作 docker 镜像 IDEA 这些开发软件软件也可以完成,代码审查等功能它本身也是借助第三方。集群部署调度管理 K8S 这些平台本身就能完成,所以...

5059 次点击
所在节点    Java
44 条回复
qinxi
2022-08-19 17:46:25 +08:00
@acbot #14 没人的 IDEA 的项目配置,环境变量, JDK 版本各不相同.
每次部署 手动切换到 master 分支 build 吗. 出问题概率太高.
如果 build 时需要打入一些敏感的数据不方便在开发环境的话怎么办.
build 结束部署的时候 再去手敲上线命令吗?
如果你自己用脚本实现了上面的步骤, 恭喜你 重新发明了低配版 Jenkins
kop1989smurf
2022-08-19 17:47:09 +08:00
@acbot #17 是的,但他不是唯一解。

他只是众多解决软件合并、测试、发布标准化的一个解决方法之一。优势是傻瓜、生态好、有界面。
如今远程代码仓库也继承了部分其功能,比如 gitlab 。
acbot
2022-08-19 17:49:42 +08:00
@kop1989smurf 对啊,很多常用优秀的功能在其他的软件也有交叉所以感觉就不那么突出了
cp19890714
2022-08-19 17:58:23 +08:00
我的理解:jenkins 本质是一个可视化的工作流平台。提供了强大的插件能力,随意定制任何流程。
acbot
2022-08-19 17:58:24 +08:00
@Mithril 谢谢,指教!这种对比式的答案,知道各方面的所长所短才能让人根据需要来选择!
hoopan
2022-08-19 17:58:50 +08:00
重复的工作流程化,减少体力劳动,也避免人为失误。
duojiao
2022-08-19 18:00:27 +08:00
@acbot 在 gitlab 还没有做 ci/cd 之前,jenkins 是当时为数不多的被独立出来作为产品的,而且 jenkins 时代不只是有 git 还有 svn 呢,jenkins 的特点就是独立,灵活性更强,转头去接现在的 docker 也行。而到了现在,用 jenkins 的原因是以前就是用 jenkins 的,新开的项目可以有其他更多的选择。了解 jenkins 主要是了解 ci/cd 而已,类似 jenkins 功能的产品多的是。
acbot
2022-08-19 18:00:32 +08:00
@cp19890714 ”...提供了强大的插件能力,随意定制任何流程...“ 所以就让人感觉不出来它本身有啥核心功能 就像拉皮条的,给人感觉用来很复杂到处去一通配置
kop1989smurf
2022-08-19 18:01:56 +08:00
@acbot #23 这就引申到其实很大程度上,技术选型并不只是技术上的筛选因素。
有很大一部分非技术因素。

比如说既有成功项目、既有成功路径的依赖。
比如领导的个人爱好。
比如既有的硬件环境。
等等。

还有一点就是考虑事物的定位与意义,要思考其适用的时间区间与先后关系。
用不是一个时代(软件工程一般 3~5 年、短的比如前端,2~3 年就是一个时代,11 、12 年还和 IE 死磕呢,15 年的 JS 连 class 关键字都出来了)的产品互相比较,很容易陷入误区。
wszzh
2022-08-19 18:03:04 +08:00
Jenkins 基本上可以将 op 说的那些东西涵盖了,一次配置,处处收益。用我司目前的开发体验来说,程序员只需要把代码 push ,后续发测试环境,打包,制作镜像等操作都可以自动完成。
acbot
2022-08-19 18:10:29 +08:00
@duojiao 这里应该就有先入为主的问题,很多人先接触 jenkins 并且很多功能只有它才有所以他们不会觉得有疑惑,但他们往往会忽视了有很多新生事物的出现。
BeautifulSoap
2022-08-19 18:19:14 +08:00
其实另一个角度来看,Jenkins 是 2011 出的,Docker 出现都是两年后的事情了。而 Gitlab 也 2011 年才发
acbot
2022-08-19 18:22:19 +08:00
@BeautifulSoap 没有否定 Jenkins 历史贡献的想法,仅仅是讨论当今很多新生事物的情况下 Jenkins 还有哪些不可替代的原因!
XiLingHost
2022-08-19 18:29:45 +08:00
@acbot 不可替代的很大因素就是积重难返,你打算把那么多旧的 pipeline 迁移到新的 CI 上吗,而且新的 CI/CD 很多是没有像 Jenkins 那样的构建页面的,大多都是类似 GitHub Action 这种基于事件触发构建的机制,和 Jenkins 的基于定时任务和手动触发的机制是不同的。
Jenkins 实际上是更倾向于传统 ops 的,而新的工具大多都是 DevOps 的思想,这就会影响到开发者在编排项目时是否会预先把部署考虑进来,因此只有新项目或者重构的老项目会使用新的 CI/CD ,而老项目一旦确定使用 Jenkins 基本上就不会考虑迁移了。
340244120w
2022-08-19 18:44:27 +08:00
楼主你说的都是流水线上的工人,公人负责自己工位上的工序。而流水线是把工人工位俺一定的顺序进行排列,自动将产品从上一道工序传到下一道,同时每一个工位出现问题能自动发现并解决。这才是 jenkins 的核心
idblife
2022-08-19 19:12:24 +08:00
@acbot
重点是 pipeline 啊
每个开发的 idea 打出来的东西不是标准化的,QA 有没有介入,镜像仓库如何统一。。。
好多问题,我觉得你遇到的场景太简单所以想当然了
xy90321
2022-08-19 21:28:43 +08:00
Jenkins 的图标是个管家,你什么时候见到过管家去烧饭除草擦窗了?
janxin
2022-08-19 22:42:12 +08:00
Jenkins 本来提供的就是 Pipeline 功能,当然这也导致 Jenkins 和其他对手并没什么太多核心竞争力。
wanguorui123
2022-08-19 22:44:56 +08:00
自动化构建
dorothyREN
2022-08-20 18:13:40 +08:00
想象一下,你编译个 linux 内核,需要跑五六个小时,你拿 ide 来跑?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/874023

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX