持续平台

作者: Jeff_9021 | 来源:发表于2020-07-20 20:26 被阅读0次

    关键词:持续平台   Jenkins

    一、持续平台

    1.1 从开发到上线,整体流程:持续集成——>持续交付——>持续部署

    持续集成

    持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。(只有自动化测试通过,才可以集成到主干。成功集成到主干后,也意味着可以部署上线,将涉及持续交付和持续部署)

    持续交付

    持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」中。比如,我们完成单元测试后,可以把代码部署到连接数据库的 Staging 环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境中。

    持续部署

    持续部署则是在持续交付的基础上,定时地、自动地将过去的一个稳定的发布版本自动部署到生产环境里。

    1.2 什么是持续?

    代码定时频繁的更新,集成、交付和部署流程依次不断运行,达到有可用版本随时可以部署到生产环境。

    很明显,集成、交付和部署是软件开发到发布流程中的不同阶段。那所谓的持续是相对于过去的流程提出的。那持续的概念就是,做一点就马上递交给下一个流程,这样能够尽早地发现并解决问题。

    1.3 流程

    1) 提交:代码提交到GitHub仓库

    2)单元测试

    这个过程 通常是一个针对 commit 操作的钩子,只要有提交,就会触发自动化测试,测试通过才可以推代码到主干。(这轮测试至少要有单元测试

    常见测试:

    单元测试:针对函数或模块的测试

    集成测试:针对整体产品的某个功能的测试,也叫功能测试

    端对端测试:从用户界面直达数据库的全链路测试

    3)构建

    第一轮测试通过,代码可以成功合并到主干,交付。

    那么接下来,就要构建(build),进入第二轮测试。但是,构建并不是绝对必须的过程,构建就是为了让源码变成可以运行的程序或代码。如果是 java、golang 项目,通常要 build 后才可以运行。但如果是 php、python,可能并没有构建过程,只要更新代码到对应的 CGI容器的工程目录就可以了。

    构建过程,我们可以自己写一些脚本和接口,挂到对应的钩子里。当然,也可以用一些成熟的构建工具:(jenkins,maven,gradle)

    4) 全面测试

    这轮测试 ,应该是一次全面测试,除了前面提到的自动化测试,还应该包含一些无法自动化测试的部分。如果第一轮测试已经很全面(意味着前一步和第一轮测试合并了,不构建,自然无法全面测试),那么这轮测试可以作为第一轮测试的补集存在。

    这里需要注意的是,测试的覆盖率。每次版本更新,更新点都应测试到位。

    二、持续集成工具

    2.1 持续集成工具Jenkins

    Jenkins 是一个开源软件项目,是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。没错,它就是一个具体的持续集成解决方案。基于 Java 实现。 可以实现:

    持续版本发布/测试;

    监控外部调用执行的工作;

    2.2 技术组合

    jenkins本身没有整合太多的功能,只能提供一个持续集成的平台,通过大量的插件,实现一系列的持续化集成的工作

    1)整合GitHub或者subversion实现版本的控制

    2)通过构建工具(maven,gradle)等进行项目的部署

    3)通过与sonarqube的结合,实现自动化测试

    4)通过与shell脚本的结合,实现部署,增量包等一系列的功能

    三、环境搭建

    使用的相关软件版本

    centos 7

    JDK 1.8

    git

    maven 3

    gradle 3.5

    tomcat

    jenkins 2.107.2

    3.1 JDK的安装(离线安装jdk

    1)上传jdk安装包到服务器/src/local/java,并解压到当前目录中

    执行命令

    2)配置环境变量

    3)测试安装是否成功

    java -version

    *显示以上信息表上安装jdk成功

    3.2 git安装

    1)卸载Centos自带的git1.7.1:

    通过git –version查看系统带的版本,Centos应该自带的是git版本是1.7.1

    终端输入:yum remove git

    2)安装所需软件包

    yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc

    yum install gcc perl-ExtUtils-MakeMaker

    3)下载git2.2.1并将git添加到环境变量中

    (1)wget https://github.com/git/git/archive/v2.2.1.tar.gz

    或者直接在浏览器器打开输入:https://mirrors.edge.kernel.org/pub/software/scm/git/

    选择你要下载的版本,下载后上传至Linux服务器相应路径下

    (2)解压:tar -zxvf v2.2.1.tar.gz

    (3)终端输入:

      cd git-2.7.0

      make prefix=/usr/local/git all

      make prefix=/usr/local/git install

    (4)配置环境变量

          sudo vim /etc/profile

      export PATH=$PATH:/usr/local/git/bin

      :wq! 保存并退出

    (5)终端输入:source /etc/profile

    3.3 maven安装

    1)上传安装包到服务器/src/local/maven,并解压到当前目录中

    2)配置环境变量

    3)测试安装结果

    mvn -v

    3.4 gradle安装

    1)上传安装包到服务器/src/local/gradle,并解压到当前目录中

    2)配置环境变量

    3)测试安装结果

    gradle -v

    3.5 Tomcat安装

    1)上传Tomcat离线文件,并创建Tomcat安装路径并解压

    2)配置Tomcat

    通过查看Tomcat的cataline.sh文件中我们看出,Tomcat建议我们对Tomcat个性化配置通过在bin目录下新建一个setenv.sh进行参数上的配置

    配置/src/local/tomcat/jenkens/apache-tomcat-8.0.51/conf目录下的server.xml配置文件 

    一共修改以下三处的端口:

    3)设置防火墙

    4)启动Tomcat

    访问localhost:1314,出现以下页面。

    解决Tomcat启动警告

    3.6 Jenkins的部署

    1)下载Jenkins

    2)上传到服务器

    将Jenkins上传到Tomcat的webapps目录下

    3)配置Jenkins目录

    Jenkins默认的工作目录位于用户目录下的.jenkins中,在启动脚本上配置Jenkins的目录。

    4)Jenkins初始化

    在配置结束后,重启Tomcat服务器,查看Tomcat的运行日志

    访问地址:http://服务器的ip:1314/jenkins/

    其中为了安全,需要到Jenkins地址提示的路径下获取密钥填写到网页中

    将获取的密码填在输入框里,点击继续

    安装插件

    建议安装推荐的插件,安装失败的后期可以单独安装。

    创建登录账户,默认为admin

    到此,就可以开始使用Jenkins了

    四、Jenkins系统初始化配置

    在Jenkins中,常用配置主要为以下三部分:

    1)全局安全配置

    如果需要进行权限上的管理,可以开启安全矩阵功能进行对用户权限的控制

    2)全局工具配置

    主要把在服务器上设置的一系列的工具目录配置到Jenkins当中;而且必须使用绝对路径,非必须情况下,不勾选自动。

    3)管理插件

    根据需要可以在可选插件中,搜索进行直接安装。安装失败解决办法

    在这里,以deploy to container插件为例,他的功能为让Jenkins自动把构建的项目部署到服务器中间件当中,它是非必须插件,可以使用shell脚本代替完成。

    持续集成系统的组成

    由此可见,一个完整的构建系统必须包括:

    1、一个自动构建过程,包括自动编译、分发、部署和测试等。Maven或者Gradle(针对APP)

    2、一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库。git

    3、一个持续集成服务器。本文中介绍的 Jenkins 就是一个配置简单和使用方便的持续集成服务器。jenkins

    参考:

    持续集成工具: Jenkins学习

    ant和maven的区别:

    https://blog.csdn.net/jdliyao/article/details/80076845

    https://www.cnblogs.com/straybirds/p/11605406.html

    相关文章

      网友评论

        本文标题:持续平台

        本文链接:https://www.haomeiwen.com/subject/yqtukktx.html