3 个不稳定版本
0.1.0 | 2021 年 8 月 16 日 |
---|---|
0.0.2-alpha | 2021 年 8 月 12 日 |
0.0.1 | 2021 年 8 月 12 日 |
#12 in #stupid
29KB
647 行代码
TODO:添加徽章
Devin 的编排器(dorc
)- 一个愚蠢的部署实用工具
dorc
是一个用于使用绿-蓝策略部署简单后端服务的工具。
需求、警告等
dorc
目前只能在使用 SystemD 的 Linux 系统上运行。这几乎是唯一的要求。
并非所有软件都适用于 dorc
!
二进制文件需要有一种方式来设置它们监听的端口(例如,./yourbin --port 8081
)。
如果您的软件使用文件系统作为永久存储,并且该数据相对于工作目录存储,则可能会遇到麻烦。
这意味着您应该在外部数据库、存储桶或某些绝对路径(如 /etc/yourapp/data
)中存储数据。
如果您需要更多(或不同)的功能,请使用更主流的部署工具,如 k8s 或 docker swarm。
理解 dorc
为了更好地了解 dorc
,我们需要讨论术语。
一个 应用程序 包含一个发布目录和一个发布二进制文件。这是您应该上传软件文件的位置。
应用程序还包含 服务(也称为子服务)。服务是您软件的实时版本。每个应用程序有两个子服务: green-{app}
和 blue-{app}
,在给定时刻只有一个接收流量。也就是说,一个被认为是 活动 的,另一个是 不活动 的。 dorc
服务也注册为 SystemD 服务。
守护进程 是一个后台进程,它
- 将应用程序的监听端口上的流量路由到当前活动服务,
- 监视发布文件以保持不活动服务最新,
- 监听加载、更新和删除应用程序的命令;以及重新加载或交换应用程序的活动服务。
在此基础上,让我们谈谈实际是如何工作的。
首先,您应该配置您的 CI/CD 工作流程将发布上传到您的服务器。您可以在 这里 看到我如何为我的网站这样做。
在您的服务器上安装 dorc
。它将被注册为 SystemD 服务,在启动时启动守护进程。如果 SystemD 在安装时忽略启动守护进程,只需运行 systemctl start dorc
。
您可以通过运行 dorc register
来注册应用程序及其子服务。
一旦您上传了软件的新版本,dorc
将将其复制到非活动服务。然后您可以通过调用 dorc switch {app}
来交换哪个子服务被视为活动状态。如果您有任何问题,只需再次调用 dorc switch {app}
即可回滚到上一个版本。
部署愉快!
安装 dorc
只需运行 cargo install dorc
!当您第一次使用 dorc
运行命令(例如,dorc register
)时,它将自动安装其 SystemD 服务文件,您可以使用 systemctl start dorc
来启动它。
依赖项
~13–26MB
~368K SLoC