Jenkins


2020 年的第一周,来学习 Jenkins。


Jenkins 是一个人名,音译为詹金斯,读起来是一个很英国绅士的声音。

以 Jenkins 命名的这个工具/软件,是一个给编程开发人员当管家的存在,它的作用是自动化各种任务,包括构建、测试和部署软件,总之是给编程人员打下手。以一个英国绅士的名字命名,听起来就像是一个老管家,真的是很贴切。

Jenkins 不光名字起得贴切,连 logo 都设计为一个管家,见图明义。很草的是,Jenkins 可以使用插件扩展功能,插件官网的配图,是管家穿着高达。

Jenkins logo

说回 Jenkins 的作用。如果用术语来解释 Jenkins,它是一款开源 CI&CD 软件。

CI&CD 是编程运维中的概念,CI(Continuous Integration) 指持续集成,CD(Continuous Delivery) 指持续交付。我在阅读相关博文时,发现有两个 CD(Continuous Deployment 持续部署、Continuous Delivery 持续交付),但是一般提到时是指持续交付。

CI&CD 的意义在于解放人力,让集成、打包、部署等流水线式的固定工作,不再需要程序员/运维人员手动去做,而交由工具去做。这在项目快速迭代功能时尤其有必要,以前我每写好一个小功能点,都要手动用 Maven 清掉编译文件,重新打包,提交给发布人员,再由发布人员去更新,整套流程耗时耗心,还有可能犯人类的低级错误。有了 CI&CD 的工具之后,开发人员只需要提代码到 SVN 或者 Git 上就可以了,剩下的部署交由工具完成。

更多有关 CI&CD 的概念可以参看博文《什么是 CI/CD?》


这周写 Jenkins 是一个非常错误的决定,因为我完全不知道写点什么……Jenkins 使用起来,就跟使用迅雷、QQ 音乐、360 杀毒软件似的,都是软件级别的交互,写起来跟写百度经验似的。而且我本地没有配置自己的 SVN 或 Git,使用 Jenkins 时都没有切身的实操体验。

我暂且想写什么点,就写什么点了,尽可能地学习到东西。


嗯……果然看了一通,什么都写不了,要不然是接触不到,要不然是水平不足。基本上,Jenkins 的自定义配置都是靠 Shell 脚本语言来实现的,我 Linux 的使用水平实在是捉襟见肘,啧,佛掉了新年第一个周。

下周补基础,看 Java 的容器设计。