Skip to content
架构

架构

np 架构

np 将四个成熟的开源项目整合为一个统一平台。

┌─────────────────────────────────────────────────┐
│                    np CLI                        │
│         (单一命令界面,统一所有操作)              │
├──────────┬──────────┬──────────┬────────────────┤
│  Nomad   │  Consul  │ Traefik  │  OpenObserve   │
│ 调度器    │ 服务发现  │ 入口网关  │  可观测性       │
├──────────┼──────────┼──────────┼────────────────┤
│                 Linux 主机                       │
└─────────────────────────────────────────────────┘

组件详解

Nomad — 调度器

负责服务编排的核心引擎:

  • 任务调度和工作负载分发
  • 滚动更新和蓝绿部署
  • 健康检查和自动重启
  • 资源感知型装箱

Consul — 服务发现

服务网络层:

  • 服务注册和发现
  • 分布式健康检查
  • DNS 和 API 查询接口
  • 键值存储(配置共享)

Traefik — 入口网关

流量管理层:

  • 反向代理和负载均衡
  • 自动 TLS(Let’s Encrypt)
  • 基于服务标签的动态路由
  • HTTP 到 HTTPS 自动重定向

OpenObserve — 可观测性

日志和指标的一体化平台:

  • 集中日志聚合
  • 指标收集和可视化
  • 内置仪表盘
  • 日志搜索和告警

数据流

用户 → np CLI
         │
         ├─ deploy/stop/scale → Nomad API
         │                         │
         │                  Consul (服务注册)
         │                         │
         │                  Traefik (路由更新)
         │
         ├─ status → Nomad API + Consul API
         │
         ├─ logs → OpenObserve API
         │
         └─ config → Consul KV

设计决策

决策 原因
单二进制 CLI 运维简单,无依赖冲突
Nomad 而非 K8s 更低的操作复杂度,单二进制调度器
Consul 而非 etcd 服务发现不限于配置存储
Traefik 而非 Nginx 原生支持 Nomad/Consul 集成
OpenObserve 而非 ELK 更低的资源开销,一体化方案