【云原生】DevOps(二):Build工具|Operate工具|Integrate工具 介绍及使用方法

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 【云原生】DevOps(二):Build工具|Operate工具|Integrate工具 介绍及使用方法

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

一、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'?>

<id>default</id>
<url>https://updates.jenkins.io/update-center.json</url>


将下载地址替换为http://mirror.esuni.jp/jenkins/updates/update-center.json

<?xml version='1.1' encoding='UTF-8'?>

<id>default</id>
<url>http://mirror.esuni.jp/jenkins/updates/update-center.json</url>


清华大学的插件源也可以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本地拉取到的源码。

查看Jenkins容器中/var/jenkins_home/workspace/test的源码

源码存放位置
在这里插入图片描述

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

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

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

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

<id>alimaven</id>  
<name>aliyun maven</name>  
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>          

<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>        


Jenkins配置JDK&Maven并保存

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

配置Jenkins任务构建代码

配置Maven构建代码
在这里插入图片描述

在这里插入图片描述

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

构建源码
在这里插入图片描述

在这里插入图片描述

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

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

Publish Over SSH配置
在这里插入图片描述

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

配置构建后操作
在这里插入图片描述

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

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

立即构建
在这里插入图片描述

在这里插入图片描述

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
1月前
|
运维 Cloud Native Devops
一线实战:运维人少,我们从 0 到 1 实践 DevOps 和云原生
上海经证科技有限公司为有效推进软件项目管理和开发工作,选择了阿里云云效作为 DevOps 解决方案。通过云效,实现了从 0 开始,到现在近百个微服务、数百条流水线与应用交付的全面覆盖,有效支撑了敏捷开发流程。
19282 30
|
15天前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
24 3
|
1月前
|
消息中间件 运维 监控
|
25天前
|
运维 Cloud Native Devops
云原生时代的DevOps实践:自动化、持续集成与持续部署
【9月更文挑战第3天】未来,随着人工智能、大数据等技术的不断融入,DevOps实践将更加智能化和自动化。我们将看到更多创新的技术和工具涌现出来,为软件开发和运维带来更多便利和效益。同时,跨团队协作和集成也将得到进一步加强,推动软件开发向更加高效、可靠和灵活的方向发展。
|
1月前
|
Prometheus 监控 安全
|
3月前
|
运维 Devops 测试技术
DevOps:文化、工具与实践的深度融合
【6月更文挑战第21天】DevOps融合文化、工具与实践,促进开发与运维协作,加速软件交付。核心包括共享文化、自动化工具(如Git、Jenkins)与流程优化(敏捷、自动化、微服务)。DevOps助力团队协作,提高效率,降低运维成本,驱动企业持续创新与成长。
|
3月前
|
运维 监控 Devops
云效DevOps:不仅仅是工具,更是思维方式的转变
【6月更文挑战第11天】云效DevOps是软件行业的 game changer,超越技术工具层面,推动协作、自动化和持续改进的思维转型。它连接开发、测试、运维,强化团队协作,通过自动化提升效率和准确性,减少人为错误。示例展示了自动化构建过程,强调每次迭代都是改进机会,促进项目持续优化和竞争力提升。
150 3
|
2月前
|
Prometheus 运维 监控
DevOps实践中的监控策略与工具应用
在当今快速发展的软件交付领域,DevOps实践已成为提升效率、确保质量的关键因素。本文深入探讨了在DevOps流程中实施有效监控的必要性,分析了监控数据对于优化运维工作的价值。文章首先概述了监控在DevOps中的作用,随后详细介绍了一系列现代监控工具,并通过实际案例展示了如何整合这些工具以构建强大的监控系统。最后,文中讨论了监控策略的最佳实践,旨在帮助读者构建一个全面、自动化和高效的监控体系。
|
3月前
|
运维 JavaScript Devops
阿里云云效操作报错合集之node.js构建时,报错:The build failed because the process exited too early.该怎么办
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
4月前
|
Kubernetes Cloud Native Devops
【阿里云云原生专栏】DevOps与云原生的融合:阿里云CI/CD流水线最佳实践
【5月更文挑战第23天】阿里云融合DevOps与云原生技术,提供高效CI/CD解决方案,助力企业提升研发效能。通过云效平台,集成代码管理、构建服务、容器服务、持续部署及监控日志组件,实现自动化研发流程。案例中,应用从GitHub构建到Kubernetes部署,全程无缝衔接。借助阿里云,企业能快速构建适应云原生的DevOps体系,以应对复杂需求和提升市场竞争力。
137 1