架构
架构
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 | 更低的资源开销,一体化方案 |