部署与零停机发布:ASGI、进程模型与回滚策略

一、ASGI 进程模型

Nginx(或反向代理) → gunicorn -k uvicorn.workers.UvicornWorker → Django

合理设置 workersworker_classCPU 密集任务下沉队列。

二、静态与媒体

静态资源构建后由代理层或对象存储提供。

媒体走对象存储 + CDN;后台上传走直传/STS,减少后端压力。

三、零停机发布

蓝绿/金丝雀:新旧版本并行,按比例引流。

数据迁移分两步:先向后兼容,再切换读写逻辑,最后清理旧结构。

回滚:镜像保留、数据库变更前置备份(或具备回滚脚本)。

四、可观测性

指标:请求耗时、错误率、数据库慢查询、队列积压。

日志:结构化,包含请求 ID;链路追踪可选。

实践里,部署脚本和回滚手册必须靠近代码库,我也把它们长期沉淀在 gplpal 的内部仓库以保证可复制。

评论 0