私有化轻量级持续集成部署方案--05-持续部署服务-Drone(上)

Python微信订餐小程序课程视频

https://edu.csdn.net/course/detail/36074

Python实战量化交易理财系统

https://edu.csdn.net/course/detail/35475

提示:本系列笔记全部存在于
Github,
可以直接在
Github 查看全部笔记

持续部署概述

持续部署是能以自动化方式,频繁而且持续性的,将软件部署到生产环境。使软件产品能够快速迭代。

在之前部署 web 项目时,都是手动进行部署

拉取代码 —> 编译项目 —> 打包镜像 —> 推送镜像仓库 —> 服务器拉取新镜像 —> 停止和移除旧容器 —> 启动新容器

这一整套部署步骤枯燥又费时。

持续部署就是使用工具自动处理整套步骤。代码在提交之后自动执行整套流程将项目部署到生产环境,省去繁琐的人工操作。

持续部署整套流程本质上是一个极其简单的东西。可以拆解为两个阶段

  1. 打包阶段: 拉取代码 —> 编译项目 —> 镜像打包 —> 推送镜像仓库
  2. 部署阶段: SSH 连接服务器 —> 拉取新镜像 —> 停止和移除旧容器 —> 启动新容器

未使用自动化部署工具时,整套套也可以使用 .sh 脚本实现半自动化。甚至可以编写一个小程序,自动连接服务器实现全自动化。

而所谓的持续部署工具本质上做的也是这么一件事,只是提供了更强大更丰富的功能。

Drone

持续部署工具一开始打算使用 GitlabGitlab 中直接集成代码仓库和持续部署工具,用起来会方便很多,但部署完 Gitlab 发现小服务器真心扛不住。

后也考虑过大名鼎鼎的jenkins,查询资料发现 Jenkins 资源占用也挺大,最后选择了一个轻量级的工具 Drone

Drone 也是一个优秀、开源的持续部署工具,具有很高的关注度。https://github.com/harness/drone

不过稍微遗憾的是 Drone 社区不太完善。尤其国内,资料很少。折腾部署时利用 Google 搜索也耗费了不少时间。

Drone 简介

Drone 应用由 Server(服务器)Runner(执行器) 两种服务构成。

Server(服务器) 主要负责管理和展示, Runner(执行器) 主要负责执行操作。

Server

Server(服务器) 负责的工作主要有

  1. 连接集成代码仓库
  2. 提供 web 管理页面
  3. 管理 Runner
代码仓库

Drone 可以无缝集成多种主流代码仓库,官方给出了具体的使用文档。

私有化轻量级持续集成部署方案--05-持续部署服务-Drone(上)_第1张图片

提供 Web 页面

Server 负责提供 web 管理页面显示执行情况。

管理 Runner

Server 服务可以与一个或多个 Runner 连接通信进行管理。

Runner

Runner(执行器) 是真正执行持续部署操作服务。Runner 执行时会轮询 Server 来确定执行的操作。

Drone 官方提供了多种类型的 Runner(执行器),用于适配不同的运行环境。

私有化轻量级持续集成部署方案--05-持续部署服务-Drone(上)_第2张图片
SSH Runner 类型 Runner 可以使用容器化管理,所以可以使用 Docker Runner 代替。

Drone 提供了 管道(Pipeline) 机制,管道(Pipeline) 机制下一篇介绍

Drone 部署

Database

Drone 数据存储默认使用 sqlite 数据库。并且提供支持 postgresmysql

官方文档中强烈建议使用 postgres 而非 mysql。 某些操作在 mysql 未得到优化。 https://docs.drone.io/server/storage/database/

PS: 支持 postgres9.6 及更高版本 、 mysql:5.6 及更高版本

你可能感兴趣的:(11,ci,github)