【云原生】4.2 DevOps 精讲篇

举报
程序猿追 发表于 2022/08/10 08:44:43 2022/08/10
【摘要】 软件开发最开始是由两个团队组成: 开发团队从头开始设计和整体系统的构建。需要系统不停的迭代更新。运维团队将开发团队的Code进行测试后部署上线。希望系统稳定安全运行。

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


目录

一、DevOps 诞生

二、DevOps 介绍

三、DevOps管理软件生命周期

四、GitLab 与 Maven 安装

1、GitLab 安装

2、Maven 安装

五、Jenkins介绍、安装及配置

1、Jenkins 介绍

2、Jenkins 安装

3、Jenkins 配置



一、DevOps 诞生

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

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


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

二、DevOps 介绍

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

虽然字面意思只涉及到了开发团队和运维团队,其实QA测试(扩:QA 主要有两方面的工作:1.做过程中的改进 2.做质量的保证工作。)团队也是参与其中的。
百度一下可以查看到 DevOps 的符号类似于一个无穷大的符号

三、DevOps管理软件生命周期

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

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

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

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

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

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

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

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

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



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

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

编辑

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

四、GitLab 与 Maven 安装

1、GitLab 安装

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

输入命令

查看 GitLab 镜像

docker search gitlab

获取 GitLab 镜像 

docker pull gitlab/ gitlab-ce: latest

编辑

 创建 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'

编辑

 启动容器

docker-compose up -d

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

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

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

编辑然后记得修改密码,密码至少长度为 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

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

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

五、Jenkins介绍、安装及配置

1、Jenkins 介绍

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

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

编辑

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

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 目录写权限即可。

编辑

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

# 修改数据卷中的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 内部进行下载,后面创建用户

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

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

 3、Jenkins 配置

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

输入命令

mv/usr/local/jdk/ ./

mv/usr/local/maven/ ./


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


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


不积跬步无以至千里,趁年轻,使劲拼,给未来的自己一个交代!向着明天更好的自己前进吧!




【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。