一、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 流水线顺序部署
先部署,后续实战中简介如何把流水线打通,实现通过平台一键发布功能
1、安装JIRA(项目管理)
JIRA简介:
JIRA 是 Atlassian 公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。 JIRA 中配置灵活、功能全面、部署简单、扩展丰富,其超过150项特性得到了全球115个国家超过19,000家客户的认可。
安装配置过程请参考:官方网站
JIRA 使用:
以下是通过JIRA管理的驻云内部运维平台视图
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
Docker 安装:
请参考: Docker安装详情
4、安装 Rancher(容器调度)
Rancher 简介:
Rancher是一个开源的企业级容器管理平台。通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。 Rancher由以下四个部分组成: 基础设施编排、容器编排与调度、应用商店、企业级权限管理 下图展示了Rancher的主要组件和功能:
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)环境安装:
c)创建应用
d)添加代码:
e)启动测试:
最终实现,打开浏览器输入 http://localhost:5000/
2、容器化
a)编写Dockerfile
b)构建镜像
docker build -f dockerfile -t webapp .
c)查看本地镜像列表
d)启动构建后的容器
最终实现,打开浏览器输入 http://localhost:5000/, 容器化成功,此时你可以把该容像迁移至任何docker环境运行。
3、添加镜像到镜像仓库
a)创建项目
b)上传镜像
4、代码托管
a)登录已经安装好的Gitlab
b)创建项目
c)关联本地代码
d)确认Gitlab仓库代码已提交
刷新浏览器, 选择 Repository → 文件
5、CI配置(CI流水线)
a)创建gitlab CI配置文件
注意: 此文件属于隐藏文件, 在当前目录可以通过 ls -a命令查看。
b)Gitlab 配置runner, 开启共享runner
c)重新提交代码到gitlab仓库
d)Gitlab CI自动构建镜像
最终,整个过程自动执行, 最终产生可以发布的镜像
6、一键发布
a)创建应用
在浏览器打开Rancher容器管理平台
b)添加服务
c)发布验证
进入webapp应用→选择web服务→选择端口→点击主机IP,此时自动跳转到我们开发的应用程序WEB页面
最终,恭喜你, 你已经成功进入新的领域, 祝你一路顺风。
7、应用升级
a)更新代码
我们继续开发webapp应用程序, 添加新代码进入app.py
b)提交代码
c)自动流程线CI
自动执行编译构建
产生新的docker镜像
d)升级发布
点击升级按钮
点击升级, 升级过程自动下载新镜像并运行, 此时旧版本还存在
点击升级完成。 如果升级失败可以选择旧版本回滚
e)升级验证
最终,恭喜, 你成功了!