什么是DevOps?

简介: DevOps 一词的来自于 Development 和 Operations 的组合,突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。DevOps 其实包含了三个部分:开发、测试和运维。换句话 DevOps 希望做到的是软件产品交付过程中IT工具链的打通,使得各个团队减少时间损耗,更加高效地协同工作。

一、DevOps 工具链
项目管理(PM):Jira
代码管理:GitLab
持续集成(CI):GitLab CI
镜像仓库:VMware Harbor
容器:Docker
容器平台: Rancher
镜像扫描:Clairctl
编排:Kubernetes
服务注册与发现:etcd
脚本语言:python
日志管理:EFK
系统监控:prometheus
Web服务器:Nginx
数据库:MySQL redis

二、DevOps 架构
DevOps 流水线(工具链)
image.png
三、DevOps环境部署
备注: 按照 DevOps 流水线顺序部署
先部署,后续实战中简介如何把流水线打通,实现通过平台一键发布功能

1、安装JIRA(项目管理)
JIRA简介:
JIRA 是 Atlassian 公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。 JIRA 中配置灵活、功能全面、部署简单、扩展丰富,其超过150项特性得到了全球115个国家超过19,000家客户的认可。

安装配置过程请参考:官方网站

JIRA 使用:
以下是通过JIRA管理的驻云内部运维平台视图
image.png

2、安装 GitLab(代码管理)
GitLab 简介:
Git 是目前世界上最先进的分布式版本控制系统(没有之一), 而 GitLab 是基于 git 协议开发 Web 控制台,Git 命令能操作的大部分功能, 都可以通过gitLab web控制台操作。

GitLab 安装:
请参考:GitLab 安装详情

3、安装 Docker(容器服务)
Docker 简介:
Docker 是通过内核虚拟化技术(namespaces及cgroups等)来提供容器的资源隔离与安全保障等。由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,提高资源利用率。 三大理念:Build(构建)、Ship(运输)、Run(运行) Docker 组成:Docker Client、Docker Server

image.png

Docker 安装:
请参考: Docker安装详情

4、安装 Rancher(容器调度)
Rancher 简介:
Rancher是一个开源的企业级容器管理平台。通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。 Rancher由以下四个部分组成: 基础设施编排、容器编排与调度、应用商店、企业级权限管理 下图展示了Rancher的主要组件和功能:

image.png

Rancher 安装:
请参考: Rancher安装部署

5、安装 Harbor(镜像仓库)
Harbor 简介:
Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。 Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

Harbor 安装:
请参考:安装详情

6、安装 Clair(镜像扫描)
Clair 简介:
Clair 的功能通过 Restful API 实现,但是每个 API 参数很多,而且上传镜像时还有很多复杂的处理。所以 CoreOS 为我们提供了 Clairctl 这款工具。Clairctl 是一个 Clair 客户端, 让用户可以通过简单的命令就能实现镜像的上传、扫描、输出报告等等。

Clair 安装:
请参考:安装详情

四、应用实战篇(部署验证)
1、创建应用
备注:​ 以Python Flask为例

a) 环境准备:​ CentOS7.+​ Python 2.7.0+​ Flask 0.11 +

b)环境安装:

image.png

c)创建应用

image.png

d)添加代码:

image.png

e)启动测试:

image.png

最终实现,打开浏览器输入 http://localhost:5000/

image.png

2、容器化
a)编写Dockerfile

image.png

b)构建镜像

docker build -f dockerfile -t webapp .

image.png

c)查看本地镜像列表

image.png

d)启动构建后的容器

image.png

最终实现,打开浏览器输入 http://localhost:5000/, 容器化成功,此时你可以把该容像迁移至任何docker环境运行。

image.png

3、添加镜像到镜像仓库
a)创建项目
b)上传镜像

image.png

4、代码托管
a)登录已经安装好的Gitlab
image.png

b)创建项目
image.png

c)关联本地代码
image.png

image.png

d)确认Gitlab仓库代码已提交

刷新浏览器, 选择 Repository → 文件
image.png

5、CI配置(CI流水线)
a)创建gitlab CI配置文件

注意: 此文件属于隐藏文件, 在当前目录可以通过 ls -a命令查看。

image.png

b)Gitlab 配置runner, 开启共享runner

image.png

c)重新提交代码到gitlab仓库
image.png

d)Gitlab CI自动构建镜像
image.png

最终,整个过程自动执行, 最终产生可以发布的镜像
image.png

6、一键发布
a)创建应用

在浏览器打开Rancher容器管理平台
image.png

b)添加服务
image.png

c)发布验证

进入webapp应用→选择web服务→选择端口→点击主机IP,此时自动跳转到我们开发的应用程序WEB页面
image.png

最终,恭喜你, 你已经成功进入新的领域, 祝你一路顺风。
image.png

7、应用升级
a)更新代码
我们继续开发webapp应用程序, 添加新代码进入app.py
image.png

b)提交代码
image.png

c)自动流程线CI
自动执行编译构建
image.png

产生新的docker镜像
image.png

d)升级发布
点击升级按钮
image.png

点击升级, 升级过程自动下载新镜像并运行, 此时旧版本还存在
image.png

点击升级完成。 如果升级失败可以选择旧版本回滚
image.png

e)升级验证
image.png

最终,恭喜, 你成功了!
image.png

相关文章
|
3月前
|
安全 Devops 测试技术
DevOps 那些事儿
DevOps 那些事儿
DevOps 那些事儿
|
3月前
|
运维 监控 Devops
DevOps 的应用
DevOps 的应用
|
6月前
|
运维 监控 Devops
【devops】一、DevOps介绍
【devops】一、DevOps介绍
|
10月前
|
运维 监控 Kubernetes
DevOps
DevOps是一种将开发(Development)和运维(Operations)相结合的实践方法和文化。它旨在通过促进开发和运维之间的协作和沟通,从而实现更快、更可靠和更频繁的软件交付。DevOps的核心理念是将软件交付视为一个整体过程,包括开发、测试、部署、运维和监控等方面,而不是一个单独的阶段。
185 1
|
运维 Java Devops
20、DevOps
DevOps是Development和Operations两个词的缩写,它涵盖开发、测试和运维的整个过程,简言为自动化部署
108 0
20、DevOps
|
机器学习/深度学习 人工智能 运维
DevOps 的未来
DevOps 的未来
94 0
DevOps 的未来
|
运维 Devops
DevOps到底是什么
DevOps到底是什么
104 0
|
Devops
DevOps是什么呢?
DevOps是什么呢?
100 0
|
运维 监控 Kubernetes
DevOps是什么
DevOps是什么
105 0
DevOps是什么
|
运维 监控 安全
【DevOps】DevOps 初探
【DevOps】DevOps 初探
105 0
【DevOps】DevOps 初探