如下图所示,基于多分支的 Spark 一连交付方案如下
- 正常开拓在 spark-src.git/master 长举办
- 每周一通过 fast-forward merge 将 spark-src.git/master 最新代码归并到 spark-src.git/dev。如下图中,第 2 周将 commit 4 及之前全部 commit 归并到 spark-src.git/dev
- 将 spark-src.git/dev 打包天生 release 并提交到 spark-bin.git/dev 的 spark-${ build # }(如下图中第 2 周的 spark-2) 文件夹内。spark 作为 symbolic,指向该 spark-${ build # }
- 每周一通过 fast-forward merge 将 spark-src.git/master 一周前最后一个 commit 归并到 spark-src.git/prod。如第 3 周归并 commit 4 及之前的 commit
- 上一步中,假如 commit 4 后紧临有一个或多个 bugfix commit,均需归并到 spark-src.git/prod 中,由于它们是对 commit 4 举办的 bug fix。后文先容的 bug fix 流程担保,假如对 commit 4 后宣布版本有多个 bug fix,那这多个 bug fix commit 细密相连,中间不会被正常 commit 分隔
- 将 spark-src.git/prod 打包天生 release 并提交到 spark-bin.git/prod 的 spark-${ build # }(如下图中第 2 周的 spark-2) 文件夹内。spark 作为 symbolic,指向该 spark-${ build # }

Continuous Delivery Solution 3
bug fix
在 Staging 情形中发明白 dev 版本的 bug 时,修复及集成和交付方案如下:
- 如下图中,第 2 周与第 3 周之间在 Staging 情形中发明 dev 版本的 bug,在 spark-src.git/dev(包括 commit 1、2、3、4) 上提交一个 commit(如图中玄色的 commit 9),且 commit message 中包括 bugfix 字样
- Jenkins 发明该 bugfix 的 commit 后当即执行构建,将 spark-src.git/dev 打包天生 release 并提交到 spark-bin.git/dev 的 spark-${ build # }(如图中的 spark-3) 文件夹内,spark 作为 symbolic,指向该 spark-${ build # }
- 通过 git checkout master 切换到 spark-src.git/master ,再通过 git rebase dev 将 bugfix 的 commit rebase 到 spark-src.git/master,假如 rebase 产生斗嘴,通过告警关照开拓职员人工参与处理赏罚斗嘴
- 在一个 release 周期内,如发明多个 dev 版本的 bug,都可按上述方法举办 bug fix,且这几个 bug fix 的 commit 在 spark-src.git/dev上次序相连。因此它们被 rebase 到 spark-src.git/master 后如故次序相连

Continuous Delivery Solution 3 bugfix
hot fix
在出产情形中发明白 prod 版本的 bug 时,修复及集成和交付方案如下
- 在 spark-src.git/prod 中提交一个 commit,且其 commit message 中包括 hotfix 字样
- Jenkins 发明该 commit 为 hotfix,当即执行构建,将 spark-src.git/prod 打包天生 release 并提交到 spark-bin.git/prod 的 spark-${ build # }(如图中的 spark-3) 文件夹内,spark 作为 symbolic,指向该 spark-${ build # }
- 通过 git checkout master 切换到 spark-src.git/master,再通过 git rebase prod 将 hotfix rebase 到 spark-src.git/master
- 在一个 release 周期内,如发明多个 prod 版本的 bug,都可按上述方法举办 hot fix

Continuous Delivery Solution 3 hotfix
灰度宣布
本文先容的实践中,不思量多个版本(经实践检讨,多个版本维护本钱太高,且一样平常无须要),只思量一个 prod 版本,一个 dev 版本
上文先容的一连宣布中,可将 spark-bin.git/dev 陈设至必要行使最新版的情形中(不必然是 Staging 情形,可所以部门出产情形)从而实现 dev 版的陈设。将 spark-bin.git/prod陈设至必要行使不变版的 prod 情形中
回滚机制
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|