DevOps平台

一、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 流水线(工具链)

四、DevOps环境部署

备注: 按照 DevOps 流水线顺序部署
先部署,后续实战中简介如何把流水线打通,实现通过平台一键发布功能

1、安装JIRA(项目管理)

JIRA简介:

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

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

JIRA 使用:

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

1

2、安装 GitLab(代码管理)

GitLab 简介:

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

GitLab 安装:

请参考:GitLab 安装详情

离线安装示例

环境

系统:rhel 7.2
gitlab版本:11.11.0

离线下载安装包

登录gitlab网站下载想要的安装包
https://packages.gitlab.com/gitlab/gitlab-ce?page=1
下载汉化包
git clone https://gitlab.com/xhang/gitlab.git

安装

  1. 安装
     
      
    1. yum -y install gitlab-ce-11.11.0-ce.0.el7.x86_64.rpm

    2. yum -y install git

  2. 初始化gitlab
    gitlab-ctl reconfigure
  3. 查看服务
    gitlab-ctl status
  4. 重启、停止或启动服务
    gitlab-ctl restart/stop/start
  5. 访问http://ip 服务刚启动时需要等一下,不然会报502错误,第一次登录需要修改密码,默认管理员为root

    gitlab离线安装(汉化)

汉化

  1. 停止gitlab服务
    gitlab-ctl stop
  2. 获取当前gitlab的版本
    cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
  3. 进入汉化包目录,比较差异生成补丁
     
      
    1. cd gitlab/

    2. git diff v11.11.0 v11.11.0-zh > ~/v11.11.0-zh.diff

  4. 安装补丁
     
      
    1. yum -y install patch

    2. cd ~

    3. patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < v11.11.0-zh.diff

  5. 会有如下报错,一路回车即可

    gitlab离线安装(汉化)

  6. 启动gitlab
    gitlab-ctl start

3、安装 Docker(容器服务)

Docker 简介:

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

1

Docker 安装:

请参考: Docker安装详情

4、安装 Rancher(容器调度)

Rancher 简介:

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

1

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命令查看。

1

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

1

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

1

d)Gitlab CI自动构建镜像

1

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

1

6、一键发布

a)创建应用

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

1

b)添加服务

1

c)发布验证

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

1

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

1

7、应用升级

a)更新代码

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

1

b)提交代码

1

c)自动流程线CI

自动执行编译构建

1

产生新的docker镜像

1

d)升级发布

点击升级按钮

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

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

e)升级验证

最终,恭喜, 你成功了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值