#deployment #stupid #orchestrator #service #utility #tool #devin

nightly app dorc

Devin 的编排器 - 一个愚蠢的部署实用工具

3 个不稳定版本

0.1.0 2021 年 8 月 16 日
0.0.2-alpha2021 年 8 月 12 日
0.0.1 2021 年 8 月 12 日

#12 in #stupid

BSD-3-Clause-AttributionGPL-3.0-or-later

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