Spark灰度宣布在十万级节点上的实践
副问题[/!--empirenews.page--]
【新产物上线啦】51CTO播客,随时随地,碎片化进修
本文先容了顶级互联网公司数万节点下 Spark 的 CI 与 CD & CD 灰度宣布实践。包括怎样维护源代码,怎样维护 Release 多版本,开拓版与正式版,以及怎样实现灰度宣布,怎样举办 hotfix 等。为了进步本文内容的可小心性,隐去了公司特有内容,只保存通用部门。 CI 先容 一连集成是指,实时地将最新开拓的且颠末测试的代码集成到骨干分支中。 一连集成的利益
Spark CI 实践 今朝主流的代码打点器材有,Github、Gitlab等。本文所先容的内容中,全部代码均托管于私有的 Gitlab 中。 鉴于 Jenkins 险些是 CI 究竟上的尺度,本文先容的 Spark CI CD & CD 实践均基于 Jenkins 与 Gitlab。 Spark 源码生涯在 spark-src.git 库中。 因为已有陈设体系支持 Git,因此可将集成后的 distribution 生涯到 Gitlab 的宣布库(spark-bin.git)中。 每次开拓职员提交接码后,均通过 Gitlab 提倡一个 Merge Requet (相等于 Gitlab 的 Pull Request) 每当有 MR 被建设,可能被更新,Gitlab 通过 Webhook 关照 Jenkins 基于该 MR 最新代码举办 build。该 build 进程包括了
Jenkins 将 build 功效关照 Gitlab,只有 Jenkins 构建乐成,Gitlab 的 MR 页面才应承 Merge。不然 Gitlab 不应承 Merge 其它,还需人工举办 Code Review。只有两个以上的 Reviewer 通过,才气举办最终 Merge 全部测试与 Reivew 通事后,通过 Gitlab Merge 成果自动将代码 Fast forward Merge 到方针分支中 该流程担保了
Spark CD 一连交付 CD 一连交付先容 一连交付是指,实时地将软件的新版本,交付给质量保障团队可能用户,以供评审。一连交付可看作是一连集成的下一步。它夸大的是,不管怎么更新,软件都是可随时交付的。 这一阶段的评审,一样平常是将上文集成后的软件陈设到尽也许贴近出产情形的 Staging 情形中,并行使贴近真实场景的用法(可能流量)举办测试。 一连宣布的利益
Spark CD 一连宣布实践 这里有提供三种方案,供读者参考。保举方案三。 方案一:单分支 正常流程 如下图所示,基于单分支的 Spark 一连交付方案如下:
注:
bug fix 在 Staging 情形中发明 spark-dev 的 bug 时,修复及集成和交付方案如下:
hot fix (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |