Jenkins自动化部署-----持续交付
前言:
感谢之前带领过我的leader,让我能够知道什么是好的开发方法。
在很早之前就接触过敏捷开发。什么是敏捷开发,简单来说就是让软件可靠地,快速地发布出来的一种开发方法和技巧。
而敏捷开发中有许多的实践,可能并不是每一种实践都适合于你的团队,但是总有一种能帮助你们的团队快速地将软件可靠地,高可用地发布出来。
如果在读这篇文章之前,还没有接触过敏捷开发,那么推荐一门敏捷开发入门的书籍:《硝烟中的scrum和xp》,这本书是一本敏捷开发的入门入籍,介绍了诸如:产品如何编写backlog、怎么准备sprint计划、如何做回顾、如何做测试、如何管理scrum团队等基础的一些敏捷知识。这本书帮助了很多人了解了敏捷开发,是一本很经典的敏捷入门引导书。
至于关于持续交付的入门入籍,附上链接,欢迎下载持续交付-发布可靠软件的系统方法
chapter 1: 为什么要使用持续交付
在我们的开发部署工作中,有一些典型的反人类发布软件模式:
1.手工部署软件
无论是自己编写的系统,还是系统所需的一些软件:mysql、redis、git等,统统都是用手动部署的方式,每次需要发布、更新,都要连接到服务器上,手动地部署其新版本(例如:先将本地的war包上传到服务器的tomcat中,然后服务器上kill -9 xxx,重新启动tomcat这样),23333。。且不说这样部署的人力成本很大,不知道部署的软件是否有bug。并且还有一定的出错机率,在互联网竞争如此激烈的今天,这样的部署,肯定是不行的。
试想,如果有一种方法,当你本地Push代码之后,只需要在网页上点击一个按钮,或者点击按钮这一步都省略掉,再倒上一杯咖啡,你的系统已经部署到线上环境了,这样的自动化,不是更人性化吗
2.开发完成后才向类生产环境部署
很多团队表示,我们一定要把系统全部coding完成,才向(类)生产环境部署系统,这样有一个好处,就是大家更加专注于coding。不被打扰。但是也有一个坏处,就是无法及时反馈出系统中的问题,你的boss也无法知道系统究竟开发到什么程度,boss也无法向客户/他的boss展示项目的进程。
及时反馈在软件开发中是非常重要的,反馈得及时,能帮助软件能快速发现并解决掉软件中很多典型的问题:
(1)开发出的功能和boss想要的功能不一样
(2)软件开发中没被发现的bug
(3)页面实现和UI设计不一致等等。。。
那么有的人就会说,每部署一次都非常麻烦,需要打包、上传、部署配置、部署系统,而且容易出错。一旦部署失败,还要去看日志,找到bug并且修复后,重复以上的全部操作。
今天我们要讲解的jenkins就是解决这个问题的,只需要点击一个按钮就可以部署git上的代码,是不是特别方便。
3.生产环境纯手工配置管理
将配置文件、变量都通过手工的方式去部署是非常不科学的,这不仅需要一个部署专家,若是哪天这个专家请假或者离职,那么你们的团队便无法部署了。而且手工部署还极其容易出错,多台服务器,需要多次重复部署。
自动化是必然的趋势,那么典型的解决方案就是使用某个配置管理软件,或者将配置放在某个具体的脚本中,这样会使软件发布轻松很多
chapter 2: jenkins介绍
jenkins是一个开源软件项目,基于java开发的一款持续集成(Continuous Integration)工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
一切的目的都是快速反馈。
喏,下面就是这货的图标
jenkins的标语:
“Build great things at any scale”
“以任何规模建造伟大的事情”
Jenkins,之前叫做Hudson,所以如果你在jenkins的很多地方,看到hudson这个单词,一定要知道他是jenkins的旧名字。
Jenkins是基于Java开发的一种持续集成工具,用于监控秩序重复的工作,包括:
1)、持续的软件版本发布/测试项目。
2)、监控外部调用执行的工作。
下面是一个官网的简单图形介绍:
chapter 3: jenkins安装和配置
上面介绍了那么多,估计你也没看,我们关心的只有软件的使用方法(23333)。那么我们下面就进入jenkins的安装和配置
环境准备:
首先,你的机器上面,需要安装jdk、git、maven相关的运行环境,我这里使用的jdk1.8、maven3.3.9、git2.16.2
jenkins安装:
下载地址https://jenkins.io/download/,仅下载war包。这个下载就不需要截图了吧。
得到war包后,有两种运行jenkins的方式
1.将war包放在tomcat的webapps目录下,启动tomcat
2.命令启动 java -jar 下载的war包名.war --httpPort=9004
第二种方式启动后,会在/home/xxxxx/.jenkins文件夹下构建jenkins的目录。
你想知道第一种在哪构建这个目录?我也不知道,自己试试咯,启动后日志中有显示位置
用浏览器访问http://localhost:9004 (tomcat启动,访问http://lcoalhost:9004/jenkins),得到以下页面
然后输入密码就可以了。。
密码,你不知道什么密码?图片中红色的部分不是已经说了密码在哪里了吗。打开文件,copy,paste就行了。
接下来就到了插件配置页面,建议FQ进行安装所需要的插件,或者现在直接选择skip plugin installations跳过
设置成功之后,就跳转到用户名密码配置页面,这个用户名和密码用于以后的jenkins登录
这是你之后用来登录的用户名密码,最好记住哦~
当当当当~~到这里,你的Jenkins已经配置成功了,成功进入jenkins的主页了!恭喜恭喜
那么接下来,我们就要开始搭建自动化部署的pipeline了。
什么,你说什么是Pipeline?好吧,简单讲解一下
喏,就是上面这货,三个模块,第一个模块是构建模块,用来执行单元测试+build项目形成二进制文件,由于我使用的是Springboot,所以得到的是一个jar包。第二个模块是部署模块,当第一个模块构建成功(变绿),才会触发第二个模块,如果第一个模块单元测试或者运行失败,当前模块就会变红,那么就不会运行第二个模块,当然,这个触发是自己配置的。第三个模块,就是线上环境了,第二个模块运行成功后,就开始运行第三个模块。
当你push了代码之后,只需要点击上面的Run那个按钮,你的系统就已经部署到线上了,是不是很神奇。
你想要搭建这个玩意,首先,你需要给Jenkins安装几个插件,点击这里安装插件
进去了之后,根据下图进行安装插件哦
Jenkins自动化部署-----持续交付的更多相关文章
- Jenkins自动化部署-----持续交付【转】
感谢之前带领过我的leader,让我能够知道什么是好的开发方法. 在很早之前就接触过敏捷开发.什么是敏捷开发,简单来说就是让软件可靠地,快速地发布出来的一种开发方法和技巧. 而敏捷开发中有许多的实践, ...
- Jenkins自动化部署——持续交付
感谢之前带领过我的leader,让我能够知道什么是好的开发方法. 在很早之前就接触过敏捷开发.什么是敏捷开发,简单来说就是让软件可靠地,快速地发布出来的一种开发方法和技巧. 而敏捷开发中有许多的实践, ...
- Jenkins 自动化部署上线
转载于互联网 jenkins自动化部署项目,通过jenkins 部署来节省运维时间,不需要手动cp上线及版本发布 Jenkins 自动化部署上线 Jenkins Jenkins 自动化部署上线一.Je ...
- Jenkins自动化部署代码
通过jenkins自动化部署项目代码可以大幅度节省打包上传部署的时间,提高开发测试的工作效率 ========== 完美的分割线 =========== 1.Jenkins是什么 1)Jenkins是 ...
- Jenkins自动化部署入门详细教程
大纲 1.背景 在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试: 或者前后端分离后,经常会修改接口,然后重新部署 ...
- Windows环境下实现Jenkins自动化部署
详见:https://blog.csdn.net/Try_harder_every_day/article/details/79170065 Jenkins自动化部署: 几条具体的思路:1.开发人员将 ...
- Linux下的Jenkins+Tomcat+Maven+Gitlab+Shell环境的搭建使用(jenkins自动化部署)
jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...
- Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署)【转】
jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...
- Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署)
jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...
- AspNetCore容器化(Docker)部署(四) —— Jenkins自动化部署
一.前言 (Jenkins.Docker.Git/Svn组建一套简单的自动化发布流程) 文章中用到的相关服务器角色 角色 环境 功能 开发机 Win10.Docker(Linux OS) 编码.调试 ...
随机推荐
- C# Attribute 特性
https://blog.csdn.net/FantasiaX/article/details/1636913
- C# 私钥加密,公钥解密
/// <summary> /// RSA加密的密匙结构 公钥和私匙 /// </summary> public struct RSAKey { public string P ...
- 异步编程——CompletableFuture详解
Future JDK5 新增了Future接口,用于描述一个异步计算的结果. 虽然 Future 以及相关使用方法提供了异步执行任务的能力,但是对于结果的获取却是很不方便,我们必须使用Future.g ...
- python以及java环境搭建+解决不同版本环境共存问题
1.搭建python环境 1.安装python3.9.7,选择自定义安装.将文件添加至环境路径,然后选择下一步. 2.默认.然后选择下一步. 3.选择适用于所有使用者,选择自己想要存放的路径,然后选择 ...
- 基于 .NET Blazor 开源、低代码、易扩展的插件开发框架
前言 今天大姚给大家分享一个基于 .NET Blazor 开源的轻量级.跨平台.低代码.易扩展的插件开发框架:Known. 项目介绍 Known 是一个基于 Blazor 的轻量级.跨平台.低代码.易 ...
- 玩three.js的一点心得
契机: 3-4月份,有机会再次学了一遍高数,然后再一次从二,三重积分的坑里爬来爬去,其中有个直观的问题一直困扰着我就是一个函数在空间坐标系上的图像,所以当时就打算学完这些之后,自己在5月份的时候用th ...
- 解决PyCharm提示Error: Please select a valid Python interpreter
前言 Pycharm运行Python3.7.8的程序时发现源程序运行报错(非语法错误) Error:please select a valid Python interpreter 解决 第一步:打开 ...
- 证件用蓝底、红底、白底照片RGB颜色值
蓝色: R:67 G:142 B:219: 红色: R:255 G:0 B:0: 白色: R:255 G:255 B:255. * PS:仅供参考,如有特殊要求,请按照相应要求调整色值.
- 关于oracle pfile和spfile文件说明
•Pfile(Parameter File,参数文件):是基于文本格式的参数文件,含有数据库的配置参数. 默认的名称为"init+例程名.ora",这是一个文本文件,可以用任何文本 ...
- BUUCTF---RSA4
题目 点击查看代码 N = 33131032421200003002021431224423222240014241042341310444114020300324300210433321420203 ...