GitOps系列 | 为什么协作技术对GitOps至关重要?
点击蓝字 关注我们
虽然有很多DevOps工具可以实现GitOps的部分功能,但极狐GitLab是唯一一个可以覆盖应用程序从构思到代码再到部署全流程的协作平台工具。
本文为GitOps系列内容的第一部分,我们将从流程方面深入挖掘GitOps,并解释极狐GitLab是如何实现这些功能的。
"GitOps "是DevOps词典中最新的流行语,与其他的新概念一样,它有许多不同的解释。不过从核心上来说,GitOps指的是将Git存储库作为构建基础设施和部署应用程序所有代码的唯一可信数据源。
将代码部署到不同的云环境需要一定程度的自动化,有一些声明式工具可以帮助加速这个过程。例如,Terraform可以用来将Kubernetes配置到任何公开可用的云中,而Helm和Kubernetes可用于将应用程序部署到这些Kubernetes集群中。
GitOps和极狐GitLab
通过使用像Git这样的版本控制系统作为唯一可信数据源,工程师能够以持续交付的形式更新其应用程序的底层源代码。
“版本控制系统确保一切都被记录且可见,审计跟踪使团队保持合规性。”Brad Downey在DevOps.com的一篇文章中说,“GitOps将更易于还原有问题的更改,从软件开发和基础架构的角度成为系统中的唯一可信数据源。”
极狐GitLab基于Git构建,是支持整个DevOps生命周期的单一应用程序。除了作为应用开发的重要工具,极狐GitLab还是一个协作平台,允许所有各方参与代码生产过程。
“协作是整个[GitOps]过程的关键。”Brad说,“基础架构团队、开发团队,甚至管理层、项目管理、安全和业务参与人,都需要共同协作,以快速高效的方式生产这些代码。”
接下来我们用一个例子解释极狐GitLab如何允许团队在命名之前就能很好地执行GitOps。
用epics规划项目
Brad(操作演示人)为本次GitOps系列创建了一个名为 "Scale the Cloud "的epic示例,以演示在极狐GitLab中扩展Kubernetes集群的过程。
由于GitOps的部署以版本控制为中心,所以第一步是定义项目范围并确定参与人。接下来,我们会共享项目实现可能需要的所有信息,例如,编码、以代码形式对基础架构进行的更改、哪些更改必须被审查并最终部署到生产中。
在关联的版本库中打开一个epic示例后,您可以在描述中添加一些目标和任务。一个epic 示例可以让您跟踪不同项目和里程碑的问题。issue是极狐GitLab中协作创意和规划工作的主要媒介。因为极狐GitLab是多云的,所以Brad在演示中打开了三个独立的issue,阐述了将Kubernetes集群部署到以下不同独立环境:Azure(AKS)、Google(GKE)和Amazon(EKS)所需的条件。
通过极狐GitLab促进协作和透明度
我们可以在epic层级看到,EKS集群内部的扩展issue已经完成。点击issue可以看到,从issue列出的任务列表中创建了一个合并请求,而且MR已经被合并。
要查看原始代码和当前代码之间有什么变化,请在MR内单击变更。
“我可以看到我合并前和合并后通过的所有测试。”Brad说,“我还可以看到评论的编辑历史记录。而且,记录下来我自己批准并合并了它。”
扩展到GKE的issue还未完成。当Brad打开合并请求时,我们看到它仍然是一个进行中的工作(WIP),这意味着尚未进行任何更改。在Terraform的MR上有一个评论,显示节点数需要从两个节点变为五个节点,以准备部署GKE环境。由于Brad也是这个MR的审批人,他点击解决WIP状态来启动流水线,并选择删除源分支以合并更新的节点数。
“GitOps与代码和协作都有紧密联系。极狐GitLab使协作成为可能,每个人都能以同样的进度工作。”Brad说。
为了让极狐 GitLab 成为一个有效的协作工具,它还需要透明化,这也是为什么组织中的每个人默认都能看到issue和相关的MR。issue和MR可以分配给某个协作者,或者在评论部分给该协作者打上标签,将其添加到待办事项列表中。
返回到Epic视图(即参与人经常用来查看项目进度的视图),我们看到将GKE扩展到五个节点的部署正在进行中。
“每个人都能够在同一个系统中工作,并了解事情的进展情况。”Brad说,“无论你是在基础架构中还是在应用程序开发中,所有的更改都遵循同样的流程,即,定义工作主体,将其分配给个人,团队协作,然后部署这些代码,并将Git存储库作为唯一可信数据源使用。”
敬请期待我们GitOps系列的第二部分,
了解基础架构团队如何使用极狐GitLab和Terraform为应用程序构建动态基础架构。
”(本文节选自Gitlab官网文章Why collaboration technology is critical for GitOps)
推荐阅读
五种方式降低“开放式DevOps平台”成本及常见DevOps工具对比
Webinar回顾 | 极狐GitLab初体验: 开放式一体化DevOps平台
关于极狐(GitLab)
极狐GitLab是全球知名开源代码托管和项目管理平台GitLab的中国发行版,它是一个完整的一体化DevOps平台,以单一应用的形式交付,从根本上改变了开发、安全和运营团队的协作方式。极狐GitLab由极狐信息技术(湖北)有限公司在国内独立运营,提供自助管理和SaaS(GitLab.cn)版本,与国际版本持续同步更新。极狐(GitLab)公司是一家“核心开放”软件公司,通过将全球领先技术最佳实践与国产化自研创新相结合,致力于推动国内DevOps和开源开放的生态发展。极狐(GitLab)公司投资方包括GitLab Inc.、红杉宽带跨境数字产业基金,以及高成资本。公司官网: about.gitlab.com.cn。