加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Spark灰度宣布在十万级节点上的实践

发布时间:2018-10-12 12:48:30 所属栏目:教程 来源:技术小能手
导读:【新产物上线啦】51CTO播客,随时随地,碎片化进修 本文先容了顶级互联网公司数万节点下 Spark 的 CI 与 CD CD 灰度宣布实践。包括怎样维护源代码,怎样维护 Release 多版本,开拓版与正式版,以及怎样实现灰度宣布,怎样举办 hotfix 等。为了进步本文内容

如下图所示,基于多分支的 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 # } 

Spark灰度宣布在十万级节点上的实践

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 后如故次序相连 

Spark灰度宣布在十万级节点上的实践

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 

Spark灰度宣布在十万级节点上的实践

Continuous Delivery Solution 3 hotfix

灰度宣布

本文先容的实践中,不思量多个版本(经实践检讨,多个版本维护本钱太高,且一样平常无须要),只思量一个 prod 版本,一个 dev 版本

上文先容的一连宣布中,可将 spark-bin.git/dev 陈设至必要行使最新版的情形中(不必然是 Staging 情形,可所以部门出产情形)从而实现 dev 版的陈设。将 spark-bin.git/prod陈设至必要行使不变版的 prod 情形中

回滚机制

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读