Tutorial · 08

部署与降级

Zenith 在 Linux 上提供极致性能,在其他平台自动降级仍全功能可用。本页说明构建要求、降级机制与生产部署建议。

构建要求

  • Rust 1.97.1+(Stable,禁止 Nightly/Beta),edition 2024。
  • Linux 内核 5.4+:启用 linux/ebpf/runtime 特性时。
  • libbpf 1.0+:启用 linux/ebpf 特性时。
  • Windows / macOS:无需特殊依赖,自动降级到 std::net。
构建与测试
# 全量测试(含所有特性) cargo test --workspace --all-features # 默认特性 cargo test -p zenith # 单 crate cargo test -p zenith-web # 安全审计 cargo audit

跨平台自动降级

EnvironmentDetector 真实探测 → ProfileSelector 多目标评分 → degrade() 三级降级链。

降级链
高性能环境 (XDP Native + AF_XDP + 零拷贝 + BTF/CO-RE) → Performance (tier=3, score=100) splice + io_uring + AF_XDP + eBPF 全启用 中等环境 (XDP Generic + BPF,无 Native/零拷贝) → Balanced (tier=2, score=92) XDP Generic + BPF,io_uring 可用 低能力环境 (无 XDP/AF_XDP/eBPF,如 Windows/最小容器) → Minimal (tier=1, score=67) 仅 std::net basic_socket TcpRelay 回退 std::io::copy WAF/代理/缓存/路由 全功能可用

GlobalRuntime 自动推导

运行时通过 RuntimeConfig::auto() 按 CPU/NUMA 自动推导配置,GlobalRuntime 采用三路径 fail-closed 构建:

  • 高性能路径:AF_XDP + eBPF + io_uring 全启用。
  • 平衡路径:XDP Generic + BPF。
  • 最小路径:回落 std::net,仅保留基础能力。
跨平台降级确保功能可用,但性能档位不同。生产环境请先运行 auto_degrade_test 确认实际档位。

生产部署建议

  • Linux 生产:启用 runtime 特性以获取 AF_XDP/eBPF 数据面与 Supervisor 治理闭环。
  • release 优化:仓库已配置 opt-level=3、lto=fat、codegen-units=1、panic=abort、strip=symbols。
  • 安全基线:上线前运行 cargo audit 与全量测试。
  • 热更新:利用 运行时热更新 调整参数,避免频繁重建。
  • 可观测:启用 observability 特性接入 Prometheus 指标与审计日志。

部署检查清单

项目建议
Rust 版本1.97.1+ Stable
Feature生产选 full-stack;仅 Web 选 web
性能档位先跑 auto_degrade_test 确认
安全cargo audit + 全量测试
可观测启用 observability
热更新上线后通过 RuntimeConfig 调整
至此教程完成。你已经从零开始理解并部署了 Zenith。推荐进一步阅读 安全审计性能基准许可证