运维 分布式管理进程/任务用什么工具好?

netqyq · 2023年08月13日 · 最后由 xinyifly 回复于 2023年08月13日 · 514 次阅读

大家好。

我有一个在单机(Ubuntu/Linux)上执行的很好的程序(Go 编译后的二进制文件,主要来处理数据,处理结果存入数据库,可以并行处理),现在我现在想在多台机器上同时执行这个程序,各个进程不交互,互不影响。请问有没有什么工具可以集中管理这种多台机器上的进程,监视运行状态什么的?

需求总结:管理多台机器,每台机器运行多个同样的进程 (dosomething)。

内心:不太想使用 Docker 生态系统的东西。越是原始、底层、简单、有效,越好!。

NixOS + colmena

直接将你的 binary 打包成对应 OS 的 package

xinyifly 回复

@xinyifly 这两个东西我还没听说过。

NixOS 这个概念挺好的(解决了升级迁移痛点,所有东西打包在一起了),我愿意尝试一下

Nix 将所有软件包以彼此分离的方式进行存储,因此就不存在 /bin、/sbin、/lib、/usr 之类的目录;相 反,所有软件包都保存在 /nix/store 中。NixOS 的其他创新特色包括可靠升级、回滚、可重现的系统配置、二进制代码基于源文件的管理模型、多用 户包管理。

不知道该用 Nix: the package manager,还是直接用 NixOS?

netqyq 回复

我只是简单一提,日常安利 NixOS 😂 ,入 Nix 学习曲线陡陗,需要做好长期学习心理准备。

而且目前国内的生态来看,公司运维基本没机会使用 NixOS。

如果是自己的服务器,有条件换 NixOS 当然是学起来最快的。

但是你提到了 Ubuntu,想尝试再用 Nix 做包管理,也是一个办法,我没这么用过,不知道能不能和 systemd 集成。

综合看你使用 Ubuntu,又不想用 Docker 的话,最优雅的方案应该是打包 apt。

不追求那么优雅的话,为啥不试试 Ansible?

我没打包过 apt,但是熟悉了 Nix 之后,给 NixOS 打包有源码的软件简单得不要不要的。 😆

需要 登录 后方可回复, 如果你还没有账号请 注册新账号