今天给笔友们推荐一款最近发现的服务编排工具Nomad
。综合感觉就是功能很强大
,姿势很优雅
,相比 K8S 更加轻量级
,相比 Docker-Compose 能轻松支持分布式
。
Nomad 能做什么?
Nomad 采用统一的工作流程,既可以轻松部署和管理任何容器化应用
或传统应用程序
。Nomad 也具备运行多种任务的能力,包括Docker 容器
、非容器化服务
、微服务
以及批处理应用程序
。
Nomad 赋予开发者以基础设施即代码(Infrastructure-as-Code)
的理念,通过编写脚本及配置文件的方式来部署应用。利用装箱(Bin Packing)
算法,高效调度工作负载,优化资源利用率。当然,Nomad 也同时支持 MacOS、Windows 和 Linux 系统。
据笔者了解,诸如 PagerDuty、Target、Citadel、Trivago、SAP、Pandora、Roblox、eBay、Deluxe Entertainment等很多知名公司,均有广泛采用 Nomad 进行服务编排和资源管理。
Nomad 有什么特性?
-
部署容器和传统应用程序:Nomad 作为灵活的服务编排工具,使我们能够在相同的基础设施上运行
容器
、传统应用程序
和批处理应用程序
。对于编排传统应用程序,Nomad 无需增加额外的容器化插件。 -
简单可靠:Nomad 作为一个
二进制文件运行
,完全自包含——将资源管理和调度结合到一个单独的系统中。它不需要任何外部服务进行存储或协调。Nomad 自动处理应用程序、节点和驱动程序故障。作为分布式系统,Nomad具有弹性
,通过选举和状态复制策略来提供高可用
。 -
设备插件和GPU支持:Nomad 内置支持 GPU 工作负载,如:机器学习(ML)和人工智能(AI)。它使用设备插件
自动检测并使用硬件设备资源
,如:GPU、FPGA 和 TPU。 -
多区域联合部署:Nomad 原生
支持多区域联合部署
。这种内置功能允许将多个集群链接在一起,使开发人员能够将 job 部署到任何区域的任何集群。联合部署还支持跨所有集群自动复制 ACL 策略、名称空间、资源配额和哨兵策略。 -
经验证的伸缩性:Nomad 采用乐观并发,增加了吞吐量并降低了服务延迟。已经验证 Nomad 可在现实生产环境中扩展到
10K+
节点的集群(K8S v1.29 是 5k+ )。 -
生态系统:Nomad 还可与 Terraform、Consul、Vault 无缝集成,用于提供资源调配、服务发现和秘密管理。
Nomad 能做什么事?
Docker 容器编排
越来越多的公司选择以 Docker 方式进行应用程序的部署和管理。但 Docker 方式则会涉及到编排工具来实现:任务调度、CI/CD、动态伸缩、异常恢复等功能。
Nomad 是笔者心中最优的 Docker 编排工具,比 K8S、K3S 都更好用。如果与 Consul 和 Vault 无缝集成,还能实现更加完整的解决方案,同时最大限度地提高操作灵活性。
传统应用程序部署
相信很多人都有过上云的经验,需要把传统应用程序按 Docker 的方式重新构建、打包、部署,整个流程下来既耗时,又很容易触发 Bug。而且基于 Docker 的部署策略对有的历史服务还不能生效。
针对以上问题,想要体验更好的自动化、弹性更强和成本更低部署编排。Nomad 是一个比较好的选择,因为 Nomad 本身支持直接运行传统应用程序、静态二进制文件、Java jars、QEMU 虚拟机和简单的 OS 命令。而且应用在运行时是隔离的,并以装箱的方式最大限度地提高效率和利用率(降低成本)。
微服务
Nomad 很适合于管理微服务,通过与 Consul 通过优雅地集成,很方便的实现了自动服务注册
和动态生成配置文件
。Nomad 和 Consul 为管理微服务及遵循微服务范式提供了一个理想的解决方案。
批处理任务
Nomad 还可以本机运行批作业
和参数化作业
,Nomad 的体系结构可以更容易的实现扩展
和并发调度
,每秒钟可以部署数千个容器。相比之下,其他替代方案在调度吞吐量、可伸缩性和多云能力方面过于复杂并有局限性。
多区域和多云联合部署
Nomad 被设计用于处理多数据中心
和多区域
部署,并且与云平台类型无关。这使得迁移服务和利用共有云进行服务扩展变得更加容易。
运行任何工作负载
Nomad 可以运行所有类型的工作负载,包括 Docker、非 Docker、Windows、QEMU、Java 和更多。无论您使用的是传统的虚拟机映像、Docker 容器映像、静态二进制文件还是 Java 应用程序,Nomad 都可以轻松运行。
做个小结
Nomad 真的算是一款功能强大的集群管理器,简化分布式应用程序的部署、管理和监控。以轻量级设计和高度可扩展性,可以轻松管理从单机到大规模集群的各种环境,真的太牛逼了。
以上就是本期的全部内容,笔者荒生
,一名资深的技术开发,谢谢大家的观看,点赞、评论、加关注
你的支持就是笔者的动力,有问题也可以私信笔者
或留言询问
。