07|网站上线闭环
域名、发布、资源与运维
域名DNS、SSL、构建发布、CDN、资源调度、回滚、备份和恢复。
DOMAIN
域名、DNS与SSL
页面:域名列表、绑定向导、DNS验证、SSL、主域名和跳转
模块目标
安全地完成域名所有权验证、解析、证书签发、续签和站点绑定。
主流程
添加域名→生成TXT验证→验证所有权→提供CNAME/A记录→探测解析→签发SSL→绑定发布→持续监控。
关键规则
- 域名与站点通过site_domain_binding版本化关联;主域名同时只能绑定一个有效站点。
- DNS变更展示期望值/当前值/TTL,不直接要求客户提供注册商密码。
- SSL自动续签,续签后验证边缘和源站实际证书。
- 域名状态:待验证、待解析、验证中、正常、异常、到期风险、解绑。
- 解析和主域名变更属于高风险动作,客户二次验证;内部协助会话禁止执行。
异常边界
- DNS传播期间保留旧域名正常访问。
- CAA、代理CDN、错误CNAME和循环跳转给出明确诊断。
- 证书续签连续失败升级告警。
核心数据
domain、domain_verification、dns_expectation、certificate、site_domain_binding
接口 / 事件
POST /domains/{id}:verify;domain.verified;certificate.renew_failed
验收标准
- 未验证域名不能绑定。
- HTTPS、HTTP跳转、主/跳转域名行为正确。
- 域名到期和证书风险提前60/30/15/7天提醒。
RELEASE-PIPELINE
构建发布与回滚
页面:发布申请、队列、构建日志、检查、版本和回滚
模块目标
把不可变站点快照构建为静态/动态产物并安全切换到线上。
主流程
锁定snapshot→发布前检查→入优先队列→构建→上传对象存储→CDN预热→灰度URL健康检查→原子切换→清理缓存→通知。
关键规则
- release_id和snapshot_hash保证同一版本幂等。
- 构建Worker按区域、套餐和任务类型隔离;单客户设置并发和发布频率。
- 上线只切换current_release指针;不覆盖旧产物。
- 健康检查包含首页、关键页面、静态资源、表单、HTTPS和自定义域名。
- 失败阈值达到后自动停止批量发布;回滚优先级最高。
异常边界
- 队列积压展示预计等待时间;客户可取消尚未执行任务。
- 构建成功但切换失败可重试,不能生成多个线上状态。
- CDN刷新失败返回旧缓存时明确标记并重试。
核心数据
release、release_task、build_artifact、health_check、deployment_pointer
接口 / 事件
release.queued/building/published/failed/rolled_back
验收标准
- 100站并发发布按配额完成,单站失败不影响其他站。
- 任何失败都保持上一稳定版本在线。
- 发布、回滚、产物、操作者和健康结果可追溯。
RESOURCE
资源池与站点部署
页面:资源池、部署单元、站点绑定、容量、成本和迁移
模块目标
按区域、套餐和容量自动选择站点承载资源,并限制热点故障半径。
主流程
创建站点/发布前→按region/site_type/package/runtime筛选resource_pool→预占deployment_unit容量→绑定→持续计量→迁移/释放。
关键规则
- 客户网站静态产物优先对象存储+CDN;动态表单/搜索使用独立站点API。
- deployment_unit可以是容器命名空间、站点服务集群或独占资源,不把云实例ID写死在site。
- 资源达到70%预警、85%停止新分配或扩容;单租户/站点有CPU、存储、带宽和请求配额。
- 迁移先双写/复制产物、验证新端点,再切换和延迟释放旧资源。
异常边界
- 调度失败时站点保持“待分配资源”,不得生成半上线状态。
- 热点站点可迁移到独立资源池,不影响tenant数据模型。
核心数据
resource_pool、deployment_unit、resource_reservation、site_resource_binding、usage_meter
接口 / 事件
resource.reserved/released;site.migration_started/completed
验收标准
- 高峰下资源不会超卖。
- 站点迁移可回退,域名和SSL不中断。
- 总后台能按客户、站点、区域归集容量和成本。
备份与恢复
发布回滚不等于数据备份
| 对象 | 备份策略 | 目标与验证 |
|---|---|---|
| 交易配置数据 | MySQL高可用;每日全量+小时级增量/PITR | 规划RPO≤1小时、RTO≤4小时;上线前实恢复 |
| 站点内容/版本 | 每次发布不可变snapshot;数据库和对象存储版本/生命周期 | 单站恢复RTO≤2小时;按site_id恢复到隔离环境核对 |
| 媒体原文件 | 对象存储版本、跨区域备份按合同和驻留策略 | 误删可恢复;公开衍生图可重建 |
| 发布产物 | 保留近期稳定版本和长期关键版本 | 分钟级切回旧release;每季度演练 |
| 流量明细 | 按成本/法规留存,聚合数据可重算 | 分析数据丢失不影响网站和客户内容 |