https://edu.csdn.net/course/detail/36074
https://edu.csdn.net/course/detail/35475
提示:本系列笔记全部存在于
Github,
可以直接在
Github 查看全部笔记
持续部署是能以自动化方式,频繁而且持续性的,将软件部署到生产环境。使软件产品能够快速迭代。
在之前部署 web 项目时,都是手动进行部署
拉取代码 —> 编译项目 —> 打包镜像 —> 推送镜像仓库 —> 服务器拉取新镜像 —> 停止和移除旧容器 —> 启动新容器
这一整套部署步骤枯燥又费时。
持续部署就是使用工具自动处理整套步骤。代码在提交之后自动执行整套流程将项目部署到生产环境,省去繁琐的人工操作。
持续部署整套流程本质上是一个极其简单的东西。可以拆解为两个阶段
未使用自动化部署工具时,整套套也可以使用 .sh 脚本实现半自动化。甚至可以编写一个小程序,自动连接服务器实现全自动化。
而所谓的持续部署工具本质上做的也是这么一件事,只是提供了更强大更丰富的功能。
持续部署工具一开始打算使用 Gitlab
, Gitlab
中直接集成代码仓库和持续部署工具,用起来会方便很多,但部署完 Gitlab
发现小服务器真心扛不住。
后也考虑过大名鼎鼎的jenkins
,查询资料发现 Jenkins
资源占用也挺大,最后选择了一个轻量级的工具 Drone
Drone
也是一个优秀、开源的持续部署工具,具有很高的关注度。https://github.com/harness/drone
不过稍微遗憾的是 Drone
社区不太完善。尤其国内,资料很少。折腾部署时利用 Google
搜索也耗费了不少时间。
Drone
应用由 Server(服务器)
和 Runner(执行器)
两种服务构成。
Server(服务器)
主要负责管理和展示, Runner(执行器)
主要负责执行操作。
Server(服务器)
负责的工作主要有
Runner
Drone
可以无缝集成多种主流代码仓库,官方给出了具体的使用文档。
Server
负责提供 web 管理页面显示执行情况。
Server
服务可以与一个或多个 Runner
连接通信进行管理。
Runner(执行器)
是真正执行持续部署操作服务。Runner
执行时会轮询 Server
来确定执行的操作。
Drone
官方提供了多种类型的 Runner(执行器)
,用于适配不同的运行环境。
SSH Runner
类型 Runner
可以使用容器化管理,所以可以使用 Docker Runner
代替。
Drone
提供了 管道(Pipeline)
机制,管道(Pipeline)
机制下一篇介绍
Drone
数据存储默认使用 sqlite
数据库。并且提供支持 postgres
和 mysql
。
官方文档中强烈建议使用 postgres
而非 mysql
。 某些操作在 mysql
未得到优化。 https://docs.drone.io/server/storage/database/
PS: 支持 postgres9.6 及更高版本 、 mysql:5.6 及更高版本