DevOps是一种软件开发和运维的方法论,它的核心理念是将软件开发和运维进行整合,通过自动化、协作和共享来提高软件开发和运维的效率和质量。DevOps的目标是打破传统软件开发和运维之间的隔阂,实现快速、可靠、可持续的软件交付和运维。
市面上有较多种类的DevOps工具,此次我们以云效的CodeUp(代码管理)结合云效的流水线进行讲述如何将开发和版本发布做到自动化衔接。
场景:
开发同学在开发分支完成开发任务后提交代码,发布人员在确认验收完毕后进行版本发布。
在上述场景中在不借助自动化工具的情况下,通常发布人员在每次版本发布时都将进行重复性的打包发布工作,并且在“人”收到消息后再处理往往会有滞后性,做不到及时反应。而结合云效的Codeup代码管理 和 流水线 我们可以去除重复性的打包工作,并能做到发布及时性。
大致的流程如下:
CodeUp端:
- 创建开发分支,命名 dev
- 创建测试环境使用的分支,命名 test
- 生产环境分支:master
开发阶段我们定义开发分支为 dev,当开发结束后进入到测试阶段,我们将不同的开发版本提测的开发分支提交到test分支,测试通过后再将各开发分支合并到master。
主机组:
- 创建测试环境主机组,命名:test主机组
- 创建生产环境主机组,命名:prod主机组
Flow流水线端:
- 创建测试环境使用的流水线,命名:testFlow。代码源的默认分支选择:test;部署主机组设置为:test主机组
- 创建生产环境使用的流水线,命名:prodFlow。代码源的默认分支选择:master;部署主机组设置为:prod主机组
针对不同环境,创建不同的流水线运行,每个流水线的代码源也对应不同的分支。在每个流水线的部署阶段,不同环境选择不同的主机组。
基于上述的内容,可进行如下操作:
- 编辑流水线源,设置触发事件,复制webhook 中的地址
- 进入到Code对应的项目代码中,点击 设置>Webhooks>新建 Webhook,输入上一步复制的地址,设置对应的触发器后点击确定
至此,当test分支有代码推送时,就会触发testFlow流水线的运行,并且构建时是使用的test分支的代码,构建完成后将部署到test服务器。
在上述步骤中,通常在构建完成和机器部署的步骤中间添加人工卡点,以防止开发提交代码导致环境变化,影响不同轮次的测试结果: