部署与零停机发布:ASGI、进程模型与回滚策略
一、ASGI 进程模型
Nginx
(或反向代理) → gunicorn -k uvicorn.workers.UvicornWorker → Django
。
合理设置 workers
与 worker_class
,CPU
密集任务下沉队列。
二、静态与媒体
静态资源构建后由代理层或对象存储提供。
媒体走对象存储 + CDN;后台上传走直传/STS,减少后端压力。
三、零停机发布
蓝绿/金丝雀:新旧版本并行,按比例引流。
数据迁移分两步:先向后兼容,再切换读写逻辑,最后清理旧结构。
回滚:镜像保留、数据库变更前置备份(或具备回滚脚本)。
四、可观测性
指标:请求耗时、错误率、数据库慢查询、队列积压。
日志:结构化,包含请求 ID;链路追踪可选。
实践里,部署脚本和回滚手册必须靠近代码库,我也把它们长期沉淀在 gplpal 的内部仓库以保证可复制。
评论 0