AoneFlow分支管理模型+云效打造快速DevOps操作

本文涉及的产品
云效 DevOps 流水线,基础版人数 不受限
云效 DevOps 代码管理,基础版人数 不受限
云效 DevOps 项目协作,基础版人数 不受限
简介: 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分支打标签,标记一次发布

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分支

新建项目

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

新建分支

新建feature/testFeature分支和feature/bugFix分支


新建流水线

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

新建流水线的时候,因为要基于AoneFlow模型来做,所以需要流水线源需要开发分支模式

然后就会出现分支管理器,这个不用修改,默认自动触发

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

此时需要你添加运行分支,此时就是AoneFlow里的多个feature分支合并到一个release分支,只不过云效可以通过流水线帮你做了合并的动作.

我们将刚才的两个分支都添加上,然后运行

等待运行成功后回到分支页面,你会发现多了一个release分支,这就是自动生成的release分支.


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

写基线

区别的是prod流水线多了一个写基线的操作

写基线就是将生产流水线生成的release分支代码合并到master分支,并删除源分支,也对应AoneFlow中的操作


最终流水线就如下所示:


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

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

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
SVN版本控制系统
SVN是现在软件开发之中的主流软件版本控制工具,在工作之中利用SVN可以有效的解决多人开发的代码管理问题,本课程将为读者讲解SVN服务器的配置以及基于MyEclipse的SVN客户端插件的配置与使用,并且在讲解之中着重讲解了冲突的产生于解决。
目录
相关文章
|
30天前
|
敏捷开发 安全 测试技术
阿里云云效产品使用合集之云效安全白皮书在什么地方可以查看
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
敏捷开发 缓存 测试技术
阿里云云效产品使用问题之购买高级版云效后,该怎么运营
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
1月前
|
弹性计算 监控 Devops
"揭秘!阿里云云效如何以戏剧性飞跃,重塑企业门户网站部署,一键解锁DevOps魔法,让您的网站秒变行业巨星!"
【8月更文挑战第8天】阿里云云效企业门户网站部署解决方案是一站式DevOps平台,集成云效Flow、Codeup、Testplan等,支持自动化构建、部署与测试。通过ECS实例等资源准备、云端代码托管、持续集成与部署、及全方位监控,实现网站高效稳定运行。采用YAML配置简化流程,确保快速迭代与优化,适用于各类企业的数字化转型。
63 3
|
21天前
|
敏捷开发 存储 测试技术
阿里云云效产品使用合集之如何查看云效管理员
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
21天前
|
Java 应用服务中间件 测试技术
阿里云云效产品使用合集之云效流水线如何使用alb ingress的脚本
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
30天前
|
敏捷开发 前端开发 测试技术
阿里云云效产品使用合集之如何将云效构建执行过程中产生的日志通过邮件发送
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
30天前
|
敏捷开发 测试技术 API
阿里云云效产品使用合集之一个企业可以绑定几个云效
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
持续交付 开发工具 git
阿里云云效产品使用问题之在云效代码域中gitlab使用docker安装的,迁移时遇到“获取企业信息失败”,是什么原因
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
监控 BI 持续交付
阿里云云效产品使用问题之如何获取云效的出口IP地址
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
存储 JavaScript 前端开发
阿里云云效操作报错合集之如何解决云效流水线内存溢出的问题
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。