管理层概览
Cirrus CDN 面向需要精细掌控源站路由、TLS 自动化与运维可观测性的运营团队,提供可编排的内容分发网络。控制平面由 FastAPI 服务、Redis 配置存储与 Next.js 管理门户构成;数据平面依赖 OpenResty 承载与缓存业务流量。本章概述平台使命、关键利益相关方、差异化优势以及指导原则。
项目背景与目标
随着全球内容分发与边缘计算的迅速普及,传统 CDN 架构在延迟、灵活性与成本控制方面面临瓶颈。企业在应对多地域流量调度、跨云接入、安全合规与智能化运维时,迫切需要一套可自主部署、可二次开发、可持续演进的 CDN 控制体系。
Cirrus CDN 控制平面(以下简称“Cirrus”)旨在提供统一的配置中心、调度引擎与可观测系统;支持跨云、跨地域的节点治理,实现高可用、高自治的内容分发。
目标利益相关方
| 角色 | 需求 | Cirrus 能力 |
|---|---|---|
| CDN / 平台工程师 | 域名接入、节点生命周期与缓存刷新的编程化接口。 | src/cirrus/api/* 下的 REST API、schemas.py 中的类型化模式、支持自动化的服务令牌。 |
| SRE / 值班人员 | 健康信号、指标、隔离节点与快速重配能力。 | Redis 状态存储、Celery 健康检查(cirrus/cname/health.py)、Prometheus 指标、/api/v1/nodes 端点。 |
| 安全工程师 | 证书管理、可审计性与受控的密钥处理。 | ACME 自动化(cirrus/celery_app.py)、令牌哈希(core/tokens.py)、OpenResty 动态加载 TLS。 |
| 交付 / 运维团队 | 开箱即用的部署、文档、仪表盘与标准化流程。 | docker-compose.yml、justfile、Grafana + Prometheus 组合,以及本白皮书。 |
平台差异化能力
- 端到端自动化:ACME 申请与续签内建于控制平面,由 Celery worker 执行,消除零散脚本。
- 集成式权威 DNS:系统合成权威 DNS 区域(隐藏主节点 + NSD 从节点),使用一致性哈希将流量引导至健康边缘节点。
- Redis 配置中心:所有可变状态——域名、节点、证书、清缓存队列——均存于 Redis,具备原子更新、发布订阅与易于排查的特性。
- 可组合前端:Next.js 管理门户与外部客户端调用同一套 REST API,保证手动与自动流程等价。
- 可观测性优先:OpenResty 输出 Prometheus 指标,健康检查刷新节点状态,日志自动轮转;这些能力作为一等公民设计。
指导原则
- 运营透明:API、DNS、边缘、自动化各子系统倾向于使用可观测的 Redis 键与显式动作,避免隐式行为。
- 确定性行为:通过一致性哈希、带锁的 ACME 流程与幂等 API 规避竞态条件。
- 默认安全:密码使用 Argon2 哈希、令牌为 SHA-256 哈希、TLS 证书仅存在于 Redis/边缘内存,主令牌控制特权操作。
- 易于扩展:基于 Docker 的部署与模块化 Python/Lua 组件,便于替换外部集成(如扩展 DNS 从节点或新增指标后端)。
- 提升开发效率:
justfile固化常用流程(just up、just pytest、just deploy),帮助贡献者保持一致实践。
核心价值主张
| 维度 | 传统 CDN 痛点 | Cirrus 价值 |
|---|---|---|
| 架构灵活性 | 配置割裂、中心化控制 | 模块化设计 + 控制面可自托管 |
| 调度智能性 | 静态策略滞后、地域粒度粗 | 基于健康感知的一致性哈希与动态副本分配 |
| 可观测性 | 缺乏端到端可追踪 | Prometheus 指标 + 结构化日志,覆盖 API/DNS/边缘 |
| 合规安全 | 数据出境风险高 | 私有部署、本地证书托管、令牌哈希存储 |
| 运维效率 | 手工操作多、可重复性差 | ACME 自动化、确定性清缓存、模板化发布 |
适用场景与目标用户
- 适用场景:
- 企业级私有 CDN(金融、医疗、政企)
- 跨境与多云接入
- IoT 与边缘应用
- 内容分发与视频加速
- 目标用户:
- 中大型企业 IT 团队
- 数据安全要求高的组织
- 混合云/边缘应用开发者与厂商
- 基础设施提供商
竞争与差异化定位
| 对比维度 | Cirrus CDN | Cloudflare | AWS CloudFront | 阿里云 CDN |
|---|---|---|---|---|
| 部署形态 | ✅ 公/私/混合云 | 🌐 公有云 | 🌐 公有云 | 🌐 公有云 |
| 控制面架构 | ✅ 自托管 + API | ✅ Workers | ✅ CloudFormation | ✅ OpenAPI |
| 节点自治 | ✅ 自发现、自愈 | ✅ 智能自治 | ✅ 健康切换 | ✅ 调度容灾 |
| 数据主权 | ✅ 本地托管 | ⚙️ 云托管 | ⚙️ 区域托管 | ⚙️ 区域托管 |
| 可观测性 | ✅ Prometheus + 日志 | ✅ LogPush | ✅ CloudWatch | ✅ 云监控 |
| 成本模型 | 💡 带宽弹性可控 | 💰 按流量 | 💰 按 GB | 💰 按流量 |
关键 KPI 示例(参考值)
| 指标 | 数值 |
|---|---|
| RTT | 80ms |
| 命中率 | 86% |
| 可用性 | 99.95% |
| 吞吐量 | 12Gbps |
文档阅读指引
后续章节将深入各子系统。希望快速了解全貌的读者可侧重第 2、3 章,负责自动化、DNS 或边缘运维的团队应重点阅读第 4–6 章。前端维护者可参考第 7 章,安全与合规人员关注第 8 章,运维与 SRE 团队重视第 9、10 章。第 11 章收录附录与速查表,并交叉引用代码路径(例如 src/cirrus/app.py:21 的 API 启动流程),确保内容与仓库保持同步。