about blog github

03 Jan 2022
云原生之cicd

最近读到一本云原生相关的书,也结合自己在cicd方便的一些经验,分享下在云原生环境中cicd的流程:

  • 开发人员编写好代码后,在本地做一些基本的测试,然后将代码提交到仓库如github

  • 创建PR,基于本次修改在PR上运行相关测试,如代码扫描和分析、yaml文件(可以使用kubesec)或者json文件分析、构建测试、单元测试、e2e测试等

  • 所有测试都通过后,找相关人员review code,然后merge代码到主干

  • 代码merge后,build系统获取最新的代码,开始build image,然后将image push到指定的镜像仓库如dockerhub

  • 镜像仓库运行镜像安全扫描(可以使用trivy),确保镜像没有漏洞等问题

  • 更新部署应用的manifest文件,一般都是一堆yaml文件,用于部署到kubernetes集群

  • 定期从镜像仓库中获取最新的应用,然后运行canary测试,尽早发现问题

  • gitops组件比如argocd监控到有仓库有新的代码提交,触发同步操作,将新的manifest文件部署到kubernetes集群,发布应用

  • 监控发布应用的状态,若有问题及时回滚,没有问题就将流量慢慢导入新部署版本,直至100%都导入新部署版本,本次发布完成

:) 未完待续……

参考

  • 云原生:运用容器、函数计算和数据构建下一代应用


LEo at 12:12

about blog github