在这里插入图片描述

(本文目录:)

前言: 📢📢📢 当下云原生火爆全网,云原生充分利用了云计算弹性、敏捷、资源池和服务化特性,改变云端应用的设计、开发、部署和运行模式,为我们大大提供了便利,本篇文章将带大家走进云原生的世界,揭开它的神秘面纱。 💕 入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀 💓最后,愿我们都能在看不到的地方闪闪发光,一起加油进步🍺🍺🍺

一、Build阶段工具

构建Java项目的工具一般有两种选择,一个是Maven,一个是Gradle。

这里我们选择Maven作为项目的编译工具。

具体安装Maven流程不做阐述,但是需要确保配置好Maven仓库私服以及JDK编译版本。

二、Operate阶段工具

部署过程,会采用Docker进行部署,暂时只安装Docker即可,后续还需安装Kubenetes

2.1 Docker安装

  • 准备测试环境&生产环境

  • 下载Docker依赖组件

    yum -y install yum-utils device-mapper-persistent-data lvm2
    
  • 设置下载Docker的镜像源为阿里云

    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
  • 安装Docker服务

    yum -y install docker-ce
    
  • 安装成功后,启动Docker并设置开机自启

    # 启动Docker服务
    systemctl start docker
    # 设置开机自动启动
    systemctl enable docker
    
  • 测试安装成功

    docker version
    
    效果

在这里插入图片描述

2.2 Docker-Compose安装

  • 下载Docker/Compose:https://github.com/docker/compose

  • 将下载好的docker-compose-Linux-x86_64文件移动到Linux操作系统:……

  • 设置docker-compose-Linux-x86_64文件权限,并移动到$PATH目录中

    # 设置文件权限
    chmod a+x docker-compose-Linux-x86_64
    # 移动到/usr/bin目录下,并重命名为docker-compose
    mv docker-compose-Linux-x86_64 /usr/bin/docker-compose
    
  • 测试安装成功

    docker-compose version
    
    效果

在这里插入图片描述

三、Integrate工具

持续集成、持续部署的工具很多,其中Jenkins是一个开源的持续集成平台。

Jenkins涉及到将编写完毕的代码发布到测试环境和生产环境的任务,并且还涉及到了构建项目等任务。

Jenkins需要大量的插件保证工作,安装成本较高,下面会基于Docker搭建Jenkins。

3.1 Jenkins介绍

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具

Jenkins应用广泛,大多数互联网公司都采用Jenkins配合GitLab、Docker、K8s作为实现DevOps的核心工具。

Jenkins最强大的就在于插件,Jenkins官方提供了大量的插件库,来自动化CI/CD过程中的各种琐碎功能。

在这里插入图片描述
在这里插入图片描述

Jenkins最主要的工作就是将GitLab上可以构建的工程代码拉取并且进行构建,再根据流程可以选择发布到测试环境或是生产环境。

一般是GitLab上的代码经过大量的测试后,确定发行版本,再发布到生产环境。

CI/CD可以理解为:

  • CI过程即是通过Jenkins将代码拉取、构建、制作镜像交给测试人员测试。
    • 持续集成:让软件代码可以持续的集成到主干上,并自动构建和测试。
  • CD过程即是通过Jenkins将打好标签的发行版本代码拉取、构建、制作镜像交给运维人员部署。
    • 持续交付:让经过持续集成的代码可以进行手动部署。
    • 持续部署:让可以持续交付的代码随时随地的自动化部署。
CI、CD

在这里插入图片描述

3.2 Jenkins安装

  • 拉取Jenkins镜像

    docker pull jenkins/jenkins
    
  • 编写docker-compose.yml

    version: "3.1"
    services:
      jenkins:
        image: jenkins/jenkins
        container_name: jenkins
        ports:
          - 8080:8080
          - 50000:50000
        volumes:
          - ./data/:/var/jenkins_home/
    
  • 首次启动会因为数据卷data目录没有权限导致启动失败,设置data目录写权限

    错误日志

在这里插入图片描述

chmod -R a+w data/
  • 重新启动Jenkins容器后,由于Jenkins需要下载大量内容,但是由于默认下载地址下载速度较慢,需要重新设置下载地址为国内镜像站

    # 修改数据卷中的hudson.model.UpdateCenter.xml文件
    <?xml version='1.1' encoding='UTF-8'?>
    <sites>
      <site>
        <id>default</id>
        <url>https://updates.jenkins.io/update-center.json</url>
      </site>
    </sites>
    # 将下载地址替换为http://mirror.esuni.jp/jenkins/updates/update-center.json
    <?xml version='1.1' encoding='UTF-8'?>
    <sites>
      <site>
        <id>default</id>
        <url>http://mirror.esuni.jp/jenkins/updates/update-center.json</url>
      </site>
    </sites>
    # 清华大学的插件源也可以https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
    
  • 再次重启Jenkins容器,访问Jenkins(需要稍微等会)

    Jenkins首页

在这里插入图片描述

在这里插入图片描述

  • 查看密码登录Jenkins,并登录下载插件

    docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
    
    登录并下载插件

在这里插入图片描述

在这里插入图片描述

  • 选择需要安装的插件

    选择需要安装的插件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 下载完毕设置信息进入首页(可能会出现下载失败的插件)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.3 Jenkins入门配置

由于Jenkins需要从Git拉取代码、需要本地构建、甚至需要直接发布自定义镜像到Docker仓库,所以Jenkins需要配置大量内容。

3.3.1 构建任务

准备好GitLab仓库中的项目,并且通过Jenkins配置项目的实现当前项目的DevOps基本流程。

  • 构建Maven工程发布到GitLab(Gitee、Github均可)

    GitLab查看项目

在这里插入图片描述

  • Jenkins点击左侧导航新建任务

    新建任务

在这里插入图片描述

  • 选择自由风格构建任务

    构建任务

在这里插入图片描述

3.3.2 配置源码拉取地址

Jenkins需要将Git上存放的源码存储到Jenkins服务所在磁盘的本地

  • 配置任务源码拉取的地址

    源码管理

在这里插入图片描述

  • Jenkins立即构建

    点击任务test中的立即构建

在这里插入图片描述

  • 查看构建工程的日志,点击上述③的任务条即可

    查看任务拉取Git源码日志

在这里插入图片描述

可以看到源码已经拉取带Jenkins本地,可以根据第三行日志信息,查看Jenkins本地拉取到的源码。

在这里插入图片描述

3.3.3 配置Maven构建代码

代码拉取到Jenkins本地后,需要在Jenkins中对代码进行构建,这里需要Maven的环境,而Maven需要Java的环境,接下来需要在Jenkins中安装JDK和Maven,并且配置到Jenkins服务。

  • 准备JDK、Maven压缩包通过数据卷映射到Jenkins容器内部

    数据卷存放位置
    在这里插入图片描述

|

  • 解压压缩包,并配置Maven的settings.xml

    <!-- 阿里云镜像地址 -->
    <mirror>  
        <id>alimaven</id>  
        <name>aliyun maven</name>  
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>          
    </mirror>
    <!-- JDK1.8编译插件 -->
    <profile>
        <id>jdk-1.8</id>
        <activation>
            <activeByDefault>true</activeByDefault>
            <jdk>1.8</jdk>
        </activation>
        <properties>
            <maven.compiler.source>1.8</maven.compiler.source>
            <maven.compiler.target>1.8</maven.compiler.target>
            <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
        </properties>        
    </profile>
    
  • Jenkins配置JDK&Maven并保存

    在这里插入图片描述

| 在这里插入图片描述

  • 配置Jenkins任务构建代码

    配置Maven构建代码

在这里插入图片描述

在这里插入图片描述

  • 立即构建测试,查看target下的jar包

    构建源码

在这里插入图片描述

在这里插入图片描述

3.3.4 配置Publish发布&远程操作

jar包构建好之后,就可以根据情况发布到测试或生产环境,这里需要用到之前下载好的插件Publish Over SSH。

  • 配置Publish Over SSH连接测试、生产环境

    Publish Over SSH配置

在这里插入图片描述

  • 配置任务的构建后操作,发布jar包到目标服务

    配置构建后操作

在这里插入图片描述

在这里插入图片描述 在这里插入图片描述

  • 立即构建任务,并去目标服务查看

    立即构建

在这里插入图片描述

在这里插入图片描述