写点什么

一文带你了解什么是 GitOps

  • 2021 年 12 月 23 日
  • 本文字数:1142 字

    阅读完需:约 4 分钟

摘要:说起 GitOps,可能很多朋友马上会联想到 DevOps,那么 GitOps 和 DevOps 之间有什么关系、又有什么区别呢?

 

本文分享自华为云社区《浅谈GitOps》,作者: 敏捷的小智。

GitOps 与 DevOps


说起 GitOps,可能很多朋友马上会联想到 DevOps,那么 GitOps 和 DevOps 之间有什么关系、又有什么区别呢?

DevOps 是一种文化


DevOps 包含了 Development 和 Operations 两个部分,是一种重视“软件开发人员(Dev)”和“IT 运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。


如今很多团队当中都在践行着 DevOps 文化,其中核心的一条理念就是“自动化一切可自动化的”。而 GitOps,也正是基于这种理念下而诞生的一种持续交付方式。

GitOps 是一种持续交付方式


GitOps 核心思想是将应用系统的声明性基础架构和应用程序存放在 Git 版本库中。


将 Git 作为交付流水线的核心,每个开发人员都可以提交拉取请求(Pull Request)并使用 Git​​来加速和简化应用程序部署和运维任务。通过使用 Git,开发人员可以更高效地将注意力集中在创建新功能而不是运维相关任务上(例如,应用系统安装、配置、迁移等)。


同时,GitOps 还是一整套 CI/CD 流水线方案。


在 GitOps 中可以自由地为流水线的不同部分选择最佳工具。可以从开源生态系统中选择一组工具,也可以从封闭源中选择一组工具,或者根据使用情况,甚至可以将它们组合在一起。



​不过目前业界已经有了不少端到端的 DevOps 平台,华为云 DevCloud 就可以一站式端到端地覆盖 CI/CD 全流程。让开发者不必再纠结于如何选择流水线中的不同部分。从项目管理、代码开发,到编译构建、部署发布、测试运维,软件开发的全生命周期都可以在华为云 DevCloud 上完成。



​当然,也可以只使用华为云 DevCloud 中的个别服务与已有流水线进行拼接,搭建成新的 CI/CD 流水线。例如,在 DevCloud 中可以由代码托管服务 CodeHub 来作为本期主题 GitOps 中的 Git 仓库。

GitOps 流水线


GitOps 基于拉模式构建交付流水线。在 DevCloud 中以 GitOps 的方式搭建的交付流水线,流程如下:



1、 源码存储于 CodeHub,开发人员推送提交包含新功能的代码到代码仓库的对应分支中;代码审核通过后将被合并至对应分支。

2、 合并请求通过后会触发构建(CloudBuild)并进行测试,构建好的镜像将被推送至镜像仓库 SWR 中。

3、 GitOps 检测到有新的镜像,会提取最新的镜像标记,然后同步到 Git 配置仓库(Config)的清单中。

4、 GitOps 检测到集群状态过期,会从配置仓库(Config)中拉取更新后的清单,并将包含新功能的镜像通过 CloudDeploy 部署到集群(CCE)里。


对于不同环境而言,可以在 Config 仓中创建多个子目录或者子分支管理不同环境对应的多个集群,从而实现多环境的 GitOps。


点击关注,第一时间了解华为云新鲜技术~

发布于: 58 分钟前阅读数: 5
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
一文带你了解什么是GitOps