Jenkins 自动化部署持续交付学习

本贴最后更新于 2502 天前,其中的信息可能已经时异事殊

#学习 Jenkins 的原因

在项目组待了半年了,项目经过两个月的开发后本身在 10 月份的时候就已整体上线,但是后续小的需求变更及 bug 修复使得在上线后的三个月几乎每周都有更新,而且在几次更新中更是出现了较为严重的生产事故,事后自己每每反思原因,除去团队人员代码编写的问题,其余问题多半是要归咎于现在这种手动且落后的更新方式上。

现在交付给客户的项目是基于 Maven 构建的,生产环境就是以 war 包形式部署在 tomcat 当中,在应用服务器前置放了几层负载均衡和请求代理转发。每次更新的时候大都是手动打包然后挑出更新的内容来进行增量更新,中间只有一两次是碰到了大的需求变更才全量打了 war 包丢在服务器 tomcat 下,每次的生产更新都是主要由自己协助客户运维人员进行,所以但凡是出现了问题,自己多多少少都要背些锅。

被更新折磨了这么久,慢慢感悟到交付是一个项目周期中很重要的一环,特别是在面临持续性交付这一业务场景时,一定要选择一个好的线上更新方案,这样才能尽可能的减少在交付过程中由于操作人员自身操作不当而导致的一些生产事故,所以我才在私下开始研究这个 Jenkins 这个持续交付工具。顺带提一句,大四在亚信实习的时候我的岗位就是 Java 交付工程师,但是入职的时候一直都是做着开发的事情,直到现在进了这家公司,在项目大体完成后还一直驻在客户现场做些持续的更新维护和支持,我才算是明白什么是交付工程师。下面是自己在尝试摸索使用 Jenkins 时结合网上资料自己的一些总结。

#Jenkisn 是什么

jenkins 是一个广泛用于持续构建的可视化 web 工具,持续构建说得更直白点,就是各种项目的"自动化"编译、打包、分发部署。jenkins 可以很好的支持各种语言(比如:java, c#, php 等)的项目构建,也完全兼容 ant、maven、gradle 等多种第三方构建工具,同时跟 svn、git 能无缝集成,也支持直接与知名源代码托管网站,比如 github、bitbucket 直接集成。
Jenkins 的主要作用主要为:

  1. 持续的软件版本发布/测试项目。
  2. 监控外部调用执行的工作。
    随着容器技术的发展,Jenkins+docker 似乎在现在自动化部署与维护上变得很流行,但是我还没有研究这么透彻...
    在这里简单介绍以下 Jenkins 工作的流程:
  3. General:主要就是项目的创建和工作空间的选择。
  4. 源码管理:选择你项目代码的管理工具,提供 svn、git 等选项,让 jenkins 连接到你的代码仓库并且检出到你 Jenkins 选择的工作空间路径。
  5. 构建触发器:构建工程的触发器,可以在这一步配置来进行定时构建工程
  6. 构建: 能够选择并配置你构建的工具,如 mavan、ant、gradle 等工具,注意 Jenkins 首先要集成这些插件,或者直接使用你服务器上安装好的这些应用,配置以下路径即可。构建完之后便可以生成 war 包。
  7. 构建后操作:这一步可以选择工程构建完之后是否自动发布,如果要自动话部署的话这也是很重要的一步。

#安装与运行

Jenkins 在 Linux 的安装主要两种方式,第一种时 rpm 包安装,第二种则是 jar/war 直接运行。我使用的时在官网下载 war 包,直接丢在 tomcat 里运行这种简单的方式,不需要修改配置连接数据库等操作。

#具体配置

Jenkins 在第一次登陆的时候需要做一次比较长时间的初始化,需要根据提示先在指定路径下找到生成的一个默认密码,然后重置用户密码安装插件的等等的安装,这个过程较长,完成之后便可以进入 Jenkins 后台管理的主要界面。

其余

详细教程参考这篇博客吧,# Jenkins+Maven+SVN 自动部署配置文档我也懒得截图写了,大致流程就如博客所言,根据自身项目情况做下变动即可

  • 运维

    互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。

    149 引用 • 257 回帖
  • 总结
    205 引用 • 1748 回帖 • 2 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3187 引用 • 8213 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...