跳到主要内容

管理层概览

Cirrus CDN 面向需要精细掌控源站路由、TLS 自动化与运维可观测性的运营团队,提供可编排的内容分发网络。控制平面由 FastAPI 服务、Redis 配置存储与 Next.js 管理门户构成;数据平面依赖 OpenResty 承载与缓存业务流量。本章概述平台使命、关键利益相关方、差异化优势以及指导原则。

项目背景与目标

随着全球内容分发与边缘计算的迅速普及,传统 CDN 架构在延迟、灵活性与成本控制方面面临瓶颈。企业在应对多地域流量调度、跨云接入、安全合规与智能化运维时,迫切需要一套可自主部署、可二次开发、可持续演进的 CDN 控制体系。

Cirrus CDN 控制平面(以下简称“Cirrus”)旨在提供统一的配置中心、调度引擎与可观测系统;支持跨云、跨地域的节点治理,实现高可用、高自治的内容分发。

平台差异化能力

  • 端到端自动化:ACME 申请与续签内建于控制平面,由 Celery worker 执行,消除零散脚本。
  • 集成式权威 DNS:系统合成权威 DNS 区域(隐藏主节点 + NSD 从节点),使用一致性哈希将流量引导至健康边缘节点。
  • Redis 配置中心:所有可变状态——域名、节点、证书、缓存清理队列——均存于 Redis,具备原子更新、发布订阅与易于排查的特性。
  • 前端与 API 一体化:Next.js 管理门户与外部客户端调用同一套 REST API,确保手动与自动流程一致。
  • 可观测性优先:OpenResty 输出 Prometheus 指标,健康检查刷新节点状态,日志自动轮转;这些能力在设计中被优先考虑。

指导原则

  1. 运营透明:API、DNS、边缘、自动化各子系统倾向于使用可观测的 Redis 键与显式动作,避免隐式行为。
  2. 确定性行为:通过一致性哈希、带锁的 ACME 流程与幂等 API 规避竞态条件。
  3. 默认安全:密码使用 Argon2 哈希、令牌为 SHA-256 哈希、TLS 证书仅存在于 Redis/边缘内存,主令牌控制特权操作。
  4. 易于扩展:基于 Docker 的部署与模块化 Python/Lua 组件,便于替换外部集成(如扩展 DNS 从节点或新增指标后端)。
  5. 提升开发效率justfile 固化常用流程(just upjust pytestjust deploy),帮助贡献者保持一致实践。

核心价值

维度传统 CDN 痛点Cirrus 价值
架构灵活性配置割裂、中心化控制模块化设计 + 控制平面可自托管
调度智能性静态策略滞后、地域粒度粗基于健康感知的一致性哈希与动态副本分配
可观测性缺乏端到端可追踪Prometheus 指标 + 结构化日志,覆盖 API/DNS/边缘
合规安全数据出境风险高私有部署、本地证书托管、令牌哈希存储
运维效率手工操作多、可重复性差ACME 自动化、确定性缓存清理、模板化发布

适用场景与目标用户

  • 适用场景
    • 企业级私有 CDN(金融、医疗、政企)
    • 跨境与多云接入
    • IoT 与边缘应用
    • 内容分发与视频加速
  • 目标用户
    • 中大型企业 IT 团队
    • 数据安全要求高的组织
    • 混合云/边缘应用开发者与厂商
    • 基础设施提供商

竞争与差异化定位

Cirrus 的定位是面向工程主导团队的自托管 CDN 控制平面,强调数据主权、自动化与可扩展性。它与托管型 CDN 形成互补:保留私有部署与精细运维控制,同时保持 API 优先。

对比维度Cirrus CDN托管型 CDN(Cloudflare、AWS、阿里云)
部署形态自托管或混合全托管
控制平面所有权团队自有供应商
数据主权本地托管云/区域托管
自动化内建 ACME,API 优先流程依产品而异
可观测性Prometheus + 结构化日志各产品自带工具
成本模型基础设施+带宽,可控按 GB/请求计费

关键 KPI 示例(参考值)

参考值汇总自公开的 NGINX/OpenResty 基准(见 nginx-openresty_performance.csv)。

指标参考值
HTTP QPS(1KB,缓存静态)≈ 131 万 rps(32–36 workers)
HTTPS QPS(1KB,缓存静态)≈ 124 万 rps(36 workers)
TLS TPS(每次请求新握手)≈ 5.8 万 tps(Ingress,24 workers)
1MB 对象吞吐≈ 8.8 Gbps(≥ 4 workers)
如何解读这些样例指标
  • 数值为公开基准的参考值;请在目标硬件与业务上验证。
  • 比较缓存前后 p95 延迟,量化缓存收益。
  • 持续跟踪一周内缓存状态分布的趋势变化。

更多规模指标(依环境而定)

指标如何衡量说明
单节点 QPS(缓存流量)Prometheus nginx_http_requests_total主要受 CPU 约束;请在目标硬件上验证。
并发连接worker_processes * worker_connections默认 auto * 1024;可在构建时调优。
延迟下降p95 nginx_http_request_duration_seconds vs 源站 RTT命中应显著消除源站 RTT。
TLS 稳定性nginx_ssl_handshake_errors_total应接近 0。

文档阅读指引

以下章节分别介绍各子系统,可按需跳转:

文中会交叉引用代码路径(例如 control-plane/src/cirrus/app.py:21 的 API 启动流程),以确保与仓库实现保持一致。

未来迭代路线图

  • Celery 指标导出:通过 Prometheus 输出 worker/beat 任务耗时与结果,补齐可观测性。
  • 会话存储迁移至 Redis:将内存会话迁移至 Redis,支撑 API 无状态横向扩展。
  • 托管/集群 Redis:支持高可用部署与故障切换演练。
  • 扩展 DNS 功能:在保持一致性哈希稳定性的前提下,增加地理覆写与更多记录类型。
  • Webhooks 与审计:支持外发 Webhooks 与追加式审计日志。
  • 边缘能力:引入 Origin Shield、按路径预取、更丰富的缓存规则谓词。
  • 安全加固:令牌分级/过期、可选客户端 TLS、生产环境可配置的 CORS。