蓝绿部署
Blue-Green Deployment
高级通用蓝绿部署(Blue-Green Deployment)是让新旧两个版本分别在独立环境中运行,验证新版后再把生产流量切过去的上线方式。它解决了直接替换运行中版本时难以检查和快速恢复的问题;新版出错时,可以把流量切回旧版。
你可能会说:「网站更新时,我想先让新版跑起来检查,确认没问题再让用户访问,出错还能切回去。」
动手看看订单页新版上线
1
订单页的生产请求先到流量入口,再进入运行旧版的蓝环境;用户此时还不会碰到新版。
要点蓝绿部署是怎么切换版本的?
- 1
两套环境分别运行新旧版
假设蓝色环境正在服务用户,我们把新版部署到绿色环境,先让它启动并接受检查。这里的颜色只是区分两套环境,不代表哪一套固定是新版。
- 2
验证后切换用户流量入口
新版通过冒烟测试后,我们在负载均衡器等流量入口把请求切到绿色环境。这样不用在用户正在访问的环境里直接替换程序;切换后仍要看错误率和关键业务是否正常。
- 3
切回流量不等于撤销数据
如果新版有问题,只要旧环境还可用,就能把流量切回去。但两套环境若共用数据库,新版写入的数据不会随之撤销;数据库结构和数据写法得让切换前后的版本都能处理。
容易混淆的地方
蓝绿部署和金丝雀发布都能在上线前保留旧版,但切流量的方式不同:蓝绿部署通常在验证后把生产流量整体切向新版;金丝雀发布先让一小部分用户使用新版,再逐步扩大范围。它也不等于普通的「回滚」:切回旧环境是恢复服务的一种办法,却不会自动还原数据库变更或已发送的消息。
什么时候用
适合用
- 网站后端改动较大,希望先在另一套生产环境完成检查,再切换用户请求。
- 后台系统需要缩短上线时的服务中断时间,并在新版异常时保留切回旧版的路径。
- AI 工具更新了请求处理逻辑,想在新版环境验证接口和关键流程后再接入正式流量。
不适合用
- 个人作品网站几乎没有在线用户,也不需要快速切回时,直接部署并做好版本备份更省资源。
- 想先让少量真实用户试用新版、观察反馈再扩大范围时,选金丝雀发布更贴合目标。
- 本次改动会立即让旧版无法读取数据库中的新数据时,先处理数据兼容或迁移方案,单靠蓝绿部署无法安全切回。
练一练选一个答案,看看解释
你的网站正在用蓝色环境服务用户,新版已经部署到绿色环境。新版需要改数据库字段,而团队希望出错时能切回蓝色。你会怎么安排?
让 AI 帮你做复制给 AI Agent 直接用
请为这个网站后端设计蓝绿部署方案:保留当前版本运行,在另一套环境部署新版;说明如何做冒烟测试、切换与切回流量,并检查数据库变更是否兼容新旧版本。先列出当前架构中缺少哪些必要信息,不要假设切回能撤销数据。