【云原生】4.2 DevOps 精讲篇

简介: 软件开发最开始是由两个团队组成:开发团队从头开始设计和整体系统的构建。需要系统不停的迭代更新。运维团队将开发团队的Code进行测试后部署上线。希望系统稳定安全运行。

  哈喽~ 大家好呀,这篇就来详细介绍 DevOps 以及需要安装什么软件。


一、DevOps 诞生

软件开发最开始是由两个团队组成:

开发团队从头开始设计和整体系统的构建。需要系统不停的迭代更新。运维团队将开发团队的Code进行测试后部署上线。希望系统稳定安全运行。

这看似两个目标不同的团队需要协同完成一个软件的开发。那么这里就出现了一个问题,假设我在开发一款软件,开发完之后,交给了运维团队,运维团队向开发团队反馈需要修复的BUG以及一些需要返工的任务。这是开发团队在一直等候,开发人员啥也做不了,这无疑推迟了整个软件开发的周期。为了解决这类问题,诞生出了 DevOps ,专门解决开发团队与运维团队之间的沟通问题与交互问题。

二、DevOps 介绍

DevOps,字面意思是 Development & Operations 的缩写,翻译过来就是开发 & 运维(前面有一篇云原生扩展篇对此有些介绍)。

虽然字面意思只涉及到了开发团队和运维团队,其实QA测试(扩:QA 主要有两方面的工作:1.做过程中的改进 2.做质量的保证工作。)团队也是参与其中的。

百度一下可以查看到 DevOps 的符号类似于一个无穷大的符号

image.png

三、DevOps管理软件生命周期

整体的软件开发流程包括:

PLAN:开发团队根据客户的需求与目标制定开发计划与开发周期(收到需求,制定计划)

CODE:根据 PLAN 开始编码过程(一般工具用 git 或SVN)。

BUILD:编码完成后,需要将代码构建并且运行(通过 Maven 或 gradle 将他构建成一个可运行的软件)。

TEST:成功构建项目后,需要测试代码是否存在 BUG 或错误(手动测试与自动化测试)。

DEPLOY:代码经过测试后,认定代码已经准备好部署并且交给运维团队(测试无误后 TEST 发到 DEPLOY 上)。

OPERATE:运维团队将代码部署到生产环境中(通过 docker 与 k8s 进行部署)。

MONITOR:项目部署上线后,需要持续的监控产品(部署完成之后通过监控类的软件进行监控)。

INTEGRATE:然后将监控阶段收到的反馈发送回PLAN阶段,整体反复的流程就是DevOps的核 心,即持续集成、持续部署。

image.png

这就是软件开发的一套生命周期,但如果我们还要在执行一遍,我们可以根据 Jenkins 让他继续执行下去,代码啥时候测试?代码啥时候发布到运维?在吗进行部署到 k8s 与docker ?都是我们的 Jenkins来做。

最终我们得出一个结论——DevOps 强调的是高效组织团队之间如何通过自动化的工具协作和沟通 来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。

image.png

上图就是我们最简单的一个通过 Jenkins 来管理,那么下面我们就要基于这张图来实现功能了。

四、GitLab 与 Maven 安装

1、GitLab 安装

像我们的开发人员使用的是 Git ,这里安装 Git 就不一一列出了,可以自行百度上网安装,我们这里使用 Docker 安装 GitLab。

输入命令

查看 GitLab 镜像

docker search gitlab

image.gif

获取 GitLab 镜像

docker pull gitlab/ gitlab-ce: latest

image.gif

image.png

创建 docker-compose.yml 文件

version: '3.1'
services:
gitlab:
image: 'gitlab/gitlab-ce:latest'
container_name: gitlab
restart: always
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.11.11:8929'
gitlab_rails['gitlab_shell_ssh_port'] = 2224
ports:
- '8929:8929'
- '2224:2224'
volumes:
- './config:/etc/gitlab'
- './logs:/var/log/gitlab'
- './data:/var/opt/gitlab'

image.gif

image.png

启动容器

docker-compose up -d

image.gif

安装的时间有点长,请耐心等待,后面再浏览器输入你设置的地址与端口号,就能进入了。

使用默认的用户(root)以及查看密码

docker exec -it gitlab cat /etc/gitlab/initial_root_password

image.gif

image.png

然后记得修改密码,密码至少长度为 8 位。

2、Maven 安装

如何安装 JDK 自行百度搜索安装

安装 Maven 包在官网里面下载需要的版本,下完之后输入指令

tar -zxvf jdk-8u231-Linux-x64.tar.gz -C/usr/local
tar -zxvf apache-maven-3.6.3-bin.tar.gz -C/usr/local

image.gif

注:中间的 jdk 只是版本号,输入时记得要改。设置 Maven 的私服(阿里云或腾讯云都可以),追加 JDK 的插件(可以行百度)

接下来我们需要安装 Docker,这里可以看看之前写的文章,我是文章

五、Jenkins介绍、安装及配置

1、Jenkins 介绍

Jenkins 是一个开源软件项目,是基于Java开发的一种持续集成工具。 Jenkins 应用广泛,大多数互联网公司都采用 Jenkins 配合 GitLab、Docker、K8s 作为实现 DevOps 的核心工具。 Jenkins最强大的就在于插件,Jenkins官方提供了大量的插件库,来自动化 CI/CD 过程中的各种琐碎功 能。

Jenkins 就像一个人,安装完插件后就像穿好了装备一样

image.png

这是官方给的图(官方玩梗,最为致命)

2、Jenkins 安装

获取 Jenkins 镜像

docker pull jenkins/jenkins

image.gif

编写 docker-compose.yml

version: "3.1"
services:
jenkins:
image: jenkins/jenkins
container_name: jenkins
ports:
- 8080:8080
- 50000:50000
volumes:
- ./data/:/var/jenkins_home/

image.gif

注:首次启动会因为数据卷 data 目录没有权限导致启动失败,设置 data 目录写权限即可。

image.gif编辑

我们就可以进行下载了,但下载时间可能有点长,可以配置一下国内的下载镜像地址

# 修改数据卷中的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

image.gif

在网址输入地址、账号与密码,就可以访问了。

后面下载插件可能会失败(很正常)我们可以进入 Jenkins 内部进行下载,后面创建用户

image.png

直接下一步,就可以进入了

image.png

在 Dashboard ——> Plugin Manager 里面下载我们安装失败的插件,就可以了

3、Jenkins 配置

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

输入命令

mv/usr/local/jdk/ ./
mv/usr/local/maven/ ./

image.gif

image.png

然后在 Dashboard ——> Global Tool Configuration 里面 add 一个 JDK 的地址

image.png

同样的 Maven 也是一样的。连接的方式有很多,可以采用用户名和密码(如何配置自行度娘)


相关文章
|
6月前
|
运维 Cloud Native Devops
云原生 DevOps CI/CD 概述
【1月更文挑战第7天】云原生 DevOps CI/CD 概述
|
6月前
|
运维 Cloud Native Devops
云原生 DevOps 自动化运维 概述
【1月更文挑战第7天】云原生 DevOps 自动化运维 概述
|
3月前
|
运维 Cloud Native Devops
一线实战:运维人少,我们从 0 到 1 实践 DevOps 和云原生
上海经证科技有限公司为有效推进软件项目管理和开发工作,选择了阿里云云效作为 DevOps 解决方案。通过云效,实现了从 0 开始,到现在近百个微服务、数百条流水线与应用交付的全面覆盖,有效支撑了敏捷开发流程。
19352 30
|
2月前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
203 3
|
2月前
|
运维 Cloud Native Devops
云原生时代的DevOps实践:自动化、持续集成与持续部署
【9月更文挑战第3天】未来,随着人工智能、大数据等技术的不断融入,DevOps实践将更加智能化和自动化。我们将看到更多创新的技术和工具涌现出来,为软件开发和运维带来更多便利和效益。同时,跨团队协作和集成也将得到进一步加强,推动软件开发向更加高效、可靠和灵活的方向发展。
|
6月前
|
Kubernetes Cloud Native Devops
【阿里云云原生专栏】DevOps与云原生的融合:阿里云CI/CD流水线最佳实践
【5月更文挑战第23天】阿里云融合DevOps与云原生技术,提供高效CI/CD解决方案,助力企业提升研发效能。通过云效平台,集成代码管理、构建服务、容器服务、持续部署及监控日志组件,实现自动化研发流程。案例中,应用从GitHub构建到Kubernetes部署,全程无缝衔接。借助阿里云,企业能快速构建适应云原生的DevOps体系,以应对复杂需求和提升市场竞争力。
181 1
|
Cloud Native Devops 持续交付
云原生DevOps思考
云原生时代,一些DevOps思考
268 2
云原生DevOps思考
|
6月前
|
Kubernetes Cloud Native Devops
云原生技术落地实现之二KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (2/2)
云原生技术落地实现之二KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (2/2)
154 1
|
运维 数据可视化 Devops
阿里云云原生DevOps-开启企业级DevOps方案
阿里云云原生DevOps-开启企业级DevOps方案
阿里云云原生DevOps-开启企业级DevOps方案
|
存储 安全 测试技术
阿里云云原生 DevOps-云效平台六大产品(2)
阿里云云原生 DevOps-云效平台六大产品(2)
阿里云云原生 DevOps-云效平台六大产品(2)