天天看点

什么是DevOps?

一、DevOps 工具链

项目管理(PM):Jira

代码管理:GitLab

持续集成(CI):GitLab CI

镜像仓库:VMware Harbor

容器:Docker

容器平台: Rancher

镜像扫描:Clairctl

编排:Kubernetes

服务注册与发现:etcd

脚本语言:python

日志管理:EFK

系统监控:prometheus

Web服务器:Nginx

数据库:MySQL redis

二、DevOps 架构

DevOps 流水线(工具链)

什么是DevOps?

三、DevOps环境部署

备注: 按照 DevOps 流水线顺序部署

先部署,后续实战中简介如何把流水线打通,实现通过平台一键发布功能

1、安装JIRA(项目管理)

JIRA简介:

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

安装配置过程请参考:

官方网站

JIRA 使用:

以下是通过JIRA管理的驻云内部运维平台视图

什么是DevOps?

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

什么是DevOps?

Docker 安装:

请参考:

Docker安装详情

4、安装 Rancher(容器调度)

Rancher 简介:

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

什么是DevOps?

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)环境安装:

什么是DevOps?

c)创建应用

什么是DevOps?

d)添加代码:

什么是DevOps?

e)启动测试:

什么是DevOps?

最终实现,打开浏览器输入

http://localhost

:5000/

什么是DevOps?

2、容器化

a)编写Dockerfile

什么是DevOps?

b)构建镜像

docker build -f dockerfile -t webapp .

什么是DevOps?

c)查看本地镜像列表

什么是DevOps?

d)启动构建后的容器

什么是DevOps?

:5000/, 容器化成功,此时你可以把该容像迁移至任何docker环境运行。

什么是DevOps?

3、添加镜像到镜像仓库

a)创建项目

b)上传镜像

什么是DevOps?

4、代码托管

a)登录已经安装好的Gitlab

什么是DevOps?

b)创建项目

什么是DevOps?

c)关联本地代码

什么是DevOps?
什么是DevOps?

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

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

什么是DevOps?

5、CI配置(CI流水线)

a)创建gitlab CI配置文件

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

什么是DevOps?

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

什么是DevOps?

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

什么是DevOps?

d)Gitlab CI自动构建镜像

什么是DevOps?

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

什么是DevOps?

6、一键发布

a)创建应用

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

什么是DevOps?

b)添加服务

什么是DevOps?

c)发布验证

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

什么是DevOps?

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

什么是DevOps?

7、应用升级

a)更新代码

我们继续开发webapp应用程序, 添加新代码进入app.py

什么是DevOps?

b)提交代码

什么是DevOps?

c)自动流程线CI

自动执行编译构建

什么是DevOps?

产生新的docker镜像

什么是DevOps?

d)升级发布

点击升级按钮

什么是DevOps?

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

什么是DevOps?

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

什么是DevOps?

e)升级验证

什么是DevOps?

最终,恭喜, 你成功了!

什么是DevOps?