AoneFlow和云效快速使用DevOps

今天学习一下git分支管理模型之阿里的AoneFlow模型,以及阿里的云效代码管理平台

分支管理模型简介

使用过git一段时间之后,开始深入了解git分支管理模型,经过百度学习后,常用的一般有两种分支模型 TrunkBased模型(简称tbd)和目前最常用的GitFlow模型,以及今天学习的阿里分支管理模型AoneFlow.
分支管理模型只是一种通用的约定,并不是强制要按照这个模型的管理办法实施,只是针对各种分支管理的情况总结出来的通用的管理办法,每个项目可能根据自身项目的周期和实际情况来指定分支管理模型.

TBD模型

TBD模型只有一个主分支(master)和多个发布分支(release),这种模式主要在svn这种集中式管理工具里使用的比较多,所有开发人员都在一个分支工作,并提交代码到一个分支,这种模式对开发人员的协调沟通要求较高.
个人理解这种模式适用于只有一个版本运行的项目,如果多个版本同时维护就不太方便了.

GitFlow模型

GitFlow模型主要分为以下几个核心:
master分支: 为生产环境运行分支代码,只能有一个
develop分支: 主干分支,只能有一个
feature分支: 特性分支,可以有多个,每个工作项一个分支
release分支: 发布分支,可以有多个
hotfix分支: 热修复分支,可以有多个,用于生产环境出现问题时快速修复

gitflow的分支管理比较复杂,简述下个人理解的分支管理流程:

  1. 有新的工作项(新增/修改功能,修复缺陷)时,基于develop分支(最初的develop分支是基于master分支的)拉取代码,创建新分支feature/newFeature
  2. 新的功能开发完毕后,将feature/newFeature合并入develop分支,而不是master分支
  3. 当发布周期到来时,基于develop分支创建一个release分支用于发布,此时的release分支应该不再有新的feature分支合并,只能用于缺陷修复
  4. 发布时,将release分支合并入master分支并基于master分支打标签,标志一次发布.
  5. 当master分支发布后,线上突然出现紧急问题时,基于master分支新增hotfix分支,修复缺陷后,将hotfix分支合并入master分支和develop分支,并且基于master分支打标签,标记一次发布

image.png

AoneFlow模型

AoneFlow模型是基于上述两种模型演变出来的一种新模型,核心内容如下:

  1. master分支: 1个 主干分支
  2. feature分支: 多个 特性分支
  3. release分支: 多个 发布分支

工作流程:

  1. 有新功能/缺陷时,基于master分支新建feature分支进行开发,
  2. 发布时,基于master分支新建release分支,并将本次需要发布的feature分支合并入release分支,并基于此release分支发布
  3. 将此release分支合并入master分支,并打tag标签 此操作发布前后进行都可
  4. 线上突然出现bug时,基于master分支新建release分支,基于此release分支新建feature分支,修复后再合并入release分支,重复2.3步操作.
  5. 删除release分支,删除release分支关联的feature分支.

可以总结:
AoneFlow是通过release分支来关联feature分支来做分支管理的.
目前AoneFlow是最贴合我们公司工作流程的.

云效

https://devops.aliyun.com/workbench
公共云免费,一般小型项目可以直接使用的.
云效是阿里云免费的一站式DevOps平台,提供了从需求到交付的一站式平台.
我们只是在这里测试下云效中的代码管理库提供的对AoneFlow的支持

基于上文说的AoneFlow的核心思想:
我们做如下测试:
模拟正常开发过程,新增两个feature分支,修改代码后,都提交

  1. 通过dev流水线自动生成release分支
  2. 通过test流水线发布release分支的发布
  3. 通过prod流水线发布release,并将release分支合并到master分支

新建项目

进入云效直接新建项目即可
image.png
image.png

新建分支

新建feature/testFeature分支和feature/bugFix分支
image.png
image.png

新建流水线

image.png
流水线这里我们简单点,只做代码测试,后续部署就跟jenkins一样了,云效的图形化也是非常给力的

新建流水线的时候,因为要基于AoneFlow模型来做,所以需要流水线源需要开发分支模式image.png
然后就会出现分支管理器,这个不用修改,默认自动触发

然后简单添加一个单元测试,DEV的流水线就建立成功了,我们保存运行一下
image.png

此时需要你添加运行分支,此时就是AoneFlow里的多个feature分支合并到一个release分支,只不过云效可以通过流水线帮你做了合并的动作.
image.png
我们将刚才的两个分支都添加上,然后运行
image.png
等待运行成功后回到分支页面,你会发现多了一个release分支,这就是自动生成的release分支.
image.png

此后,我们用同样的方法建立test流水线和prod流水线

写基线

区别的是prod流水线多了一个写基线的操作
写基线就是将生产流水线生成的release分支代码合并到master分支,并删除源分支,也对应AoneFlow中的操作
image.png

最终流水线就如下所示:

image.png

且又生成了一个release分支,这个由生产流水线生成的release分支其实就是生产环境运行分支了
image.png

通过上述实验,可以看到云效里其实通过流水线来支持了AoneFlow模型,让操作更方便.

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhang.yao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值