语雀:https://www.yuque.com/konglingfei-vzag4/onex/asrtlhk4oa8qd1kw
高效项目管理的最后一点,还需要选择一个合适的源码发布方式。当前的源码发布方式基本上都是借助 CICD 平台,来自动化的完成项目的发布。例如:我们开发完代码、提交 PR ,并合并到 master 分支后,会触发代码管理平台的 Webhook,改 Webhook 会触发 CICD 流程。CICD 平台会根据 Webhook 的请求包,获取待发布的源码仓库、分支等信息,在 CICD 平台中,完成代码的静态代码检查、安全检查、编译、测试和部署等任务。当前比较流行的开源 CI/CD 工具有 Jenkins、GitLab、ArgoCD、Github Actions、JenkinsX 等。
除了借助 CICD 平台来发布我们的源码外,当前还有一种发布方式也很受欢迎:GitOps。GitOps 是一种基于 Git 版本控制的运维模式,其核心理念是将整个基础设施和应用程序的状态都存储在 Git 仓库中,并通过自动化工作流程来实现状态管理、审计和回滚。
GitOps 的工作流程通常包括以下几个主要步骤:
- 基础设施和应用声明:将基础设施和应用程序的状态以声明性的方式存储在 Git 仓库中,如 Kubernetes 资源配置、应用代码等。
- 提交代码:开发人员通过 Git 客户端向 Git 仓库提交代码变更,包括基础设施配置和应用的更新。
- CI/CD 流水线:CI/CD 流水线定期检测 Git 仓库的变更,将变更同步到基础设施平台,如 Kubernetes 等,进行自动化部署和更新。
- 监控和审计:持续监控基础设施和应用程序的状态,及时发现问题并进行处理。通过 Git 提供的版本控制功能进行审计和回滚。
在我的上一个团队,就是用 GitOps 的方式来发布源码的。具体是通过 ArgoCD 获取 Git 仓库的 Kubernetes 资源配置,然后更新到 Kubernetes 集群中。
虽然,GitOps 很受欢迎,但是在我使用过程中,感觉 GitOps 使用起来没有 CICD 平台那样简单、直接、便捷。所以,在选择合适的源码发布方式时,我建议优先考虑 CICD 平台。