从 Day16 - Day22 我们花了不少时间建立了 CI/CD 流水线,有了这些工具後,交付应用的方式就变得相当简单,只需要建立 Commit 上传到 Repo ,CI/CD 就会自动化部属到 Kubernetes 里面。
当专案团队人数越来越多,在使用 Git 上就需要导入 Workflow,简单讲就是一套使用 Git 的流程,让大家有规矩可以遵守,现在已经有像是 Git flow
、Github Flow
、Gitlab flow
等发展成熟的开发流程,可以根据开发习惯、专案内容等资讯挑选出适合团队的 Git Workflow。
图片取至 GitLab Flow
为了方便 Demo ,本次 Lab 设计的 Git Workflow 相当简单,主要分为 dev ( 开发分支 ) 以及 master ( 部属分支 ),开发人员会将程序 Push 到 dev 分支上,并藉由 Merge Request 合并到 master 分支上,接着就来实际走过整个流程吧。
为了学习 Git Workflow 的整个流程,我们先来修改一下应用程序,并建立新的 Commmit 。
进入 Cloud Shell 网站
点击左上 Explorer -> Open Folder -> 选择 project 资料夹 -> Open
app.js
并将 res.send()
回传的字串修改res.send('This is my Version 2 App')
专案修改完成後就可以上传至 Git Repo ,这里要注意不能直接在 master 分支上做 Commit ,需要建立新的分支并从分支 Commit。
实务上会使用 Protected branches 方式保护 master 使其无法直接 Push 。
cd ~/project
git branch dev
git checkout dev
git add .
git commit -m "Create Version 2 App"
git push origin dev
Username for 'https://gitlab.com':
Password for 'https://[email protected]':
可以看到 dev 分支成功上传。
现在假设我们的应用程序开发完成,准备要进入部属阶段,就可以建立 Merge Request ,将 dev ( 开发分支 ) 合并到 master ( 部属分支 ) 上。
Merge requests
-> 点选 New merge request
dev
, Target branch 选择 master
,接着点选 Compare branches and continue
Create merge request
Merge Request 就建立完成了,在同意 Merge 之前,会先检查 CI/CD Pipeline 测试有无问题,并且进行 Code Review ,部属前的检查都没问题後,就可以请有权限的人合并。
Merge
合并分支合并到 master 後,就会再次执行 CI/CD Pipeline。
若你的 CI/CD Pipelines 正常执行,在 ArgoCD 就可以看到 stage 环境部属成功。
ArgoCD 每隔三分钟才会去检查 Git Repo 是否有做更新,所以会需要等待一段时间。
Stage 环境是一个与生产环境相仿的测试环境,在这里我们会对服务进行实际测试。
测试过没有问题,就可以回到 CI/CD 流水线去触发 prod-deploy 的 stage。
我们走过一遍从开发者修改 Code 到把应用程序进入部属环境的整个流程,就用一张流程图来了解今天到底做了什麽。
到这里,进阶篇就算正式结束了,明天开始就会进入实战篇,讨论一些实务上会遇到的一些问题。最後附上我自己建立的 GitLab Repository 给大家做个参考。
<<: Day 8 - 用 canvas 复刻 小画家 绘制圆形/椭圆形
>>: Day 23 - SwiftUI开发实作2 (多爱女朋友测试APP、Alert用法、传递变数)
如果说Access right是针对model的CURD,那麽Record rules就是针对每笔资...
打 D2R ,连梗图都懒得找... 在资安法中,有些应办事项即使在技术面定义也很广,不会有明确的实作...
devise是一套使用者认证(Authentication)套件,是Rails社群中最广为使用的一套...
Quantum Key Distribution Polarisation can be one o...
先前做的公会文字云 其中任务、副本、主线的出现次数很多代表频道里蛮常有人想纠团的 但我翻了一下纪录成...