部署管道(CI/CD Pipeline)的代码回滚核心目标是:快速恢复稳定版本,最小化故障影响。下面按常见场景和最佳实践系统说明。
适用: Kubernetes、云原生、容器化部署
kubectl rollout undo deployment/my-app
回滚到指定版本:
kubectl rollout history deployment/my-app
kubectl rollout undo deployment/my-app --to-revision=2
✅ 优点:
流程:
示例:
git checkout <last-stable-commit>
git tag rollback-20260121
git push origin rollback-20260121
然后在 CI/CD 中:
✅ 适合:
原理:
回滚方式:
✅ 优点:
回滚方式:
示例(Istio):
route:
- destination:
host: my-app
subset: v1
weight: 100
代码可以回滚,数据库不一定能
✅ 可回滚示例:
ALTER TABLE user ADD COLUMN age INT;
-- 回滚
ALTER TABLE user DROP COLUMN age;
❌ 不可回滚示例:
DROP TABLE order;
✅ 最佳实践:
parameters {
choice(name: 'ROLLBACK_VERSION', choices: ['v1.2', 'v1.1', 'v1.0'])
}
rollback:
only:
- tags
script:
- deploy.sh $CI_COMMIT_TAG
✅ 是否有上一个可用版本
✅ 是否有回滚脚本 / 自动化
✅ 数据库是否兼容
✅ 配置 / 环境变量是否一致
✅ 回滚是否可验证
好的回滚不是“能回”,而是“敢回、快回、安全回”。
如果你愿意,可以告诉我:
我可以给你一套完全贴合你系统的回滚方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。