摘要:说起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。

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

一文带你了解什么是GitOps相关推荐

  1. linux awk语法格式,Awk是什么?一文带运维小白快速掌握Linux Awk用法

    原标题:Awk是什么?一文带运维小白快速掌握Linux Awk用法 作者:a8 Awk.sed与grep,俗称Linux下的三剑客,它们之间有很多相似点,但是同样也各有各的特色,相似的地方是它们都可以 ...

  2. DNN、RNN、CNN.…..一文带你读懂这些绕晕人的名词

    DNN.RNN.CNN.-..一文带你读懂这些绕晕人的名词 https://mp.weixin.qq.com/s/-A9UVk0O0oDMavywRGIKyQ 「撞脸」一直都是娱乐圈一大笑梗. 要是买 ...

  3. 一文带你深入理解JVM内存模型

    一文带你深入理解JVM内存模型 一.JAVA的并发模型 共享内存模型 在共享内存的并发模型里面,线程之间共享程序的公共状态,线程之间通过读写内存中公共状态来进行隐式通信 该内存指的是主内存,实际上是物 ...

  4. 训练的神经网络不工作?一文带你跨过这37个坑

    近日,Slav Ivanov 在 Medium 上发表了一篇题为<37 Reasons why your Neural Network is not working>的文章,从四个方面(数 ...

  5. 还不会ts?一文带你打开ts的大门

    一文带你打开ts的大门 序言 一.什么是TypeScript? 1.编程语言的类型 2.TypeScript究竟是什么? 二.为什么要学习TypeScript? 1.程序更容易理解 2.效率更高 3. ...

  6. 一文带你了解Java Agent

    转载自  一文带你了解Java Agent Java Agent这个技术,对于大多数同学来说都比较陌生,像个黑盒子.但是多多少少又接触过,实际上,我们平时用的很多工具,都是基于Java Agent实现 ...

  7. 一文带你理解Java中Lock的实现原理

    转载自   一文带你理解Java中Lock的实现原理 当多个线程需要访问某个公共资源的时候,我们知道需要通过加锁来保证资源的访问不会出问题.java提供了两种方式来加锁,一种是关键字:synchron ...

  8. pyecharts对于经纬度_一文带你掌握Pyecharts地理数据可视化的方法

    本文主要介绍了Pyecharts地理数据可视化,分享给大家,具体如下: 一.Pyecharts简介和安装 1. 简介 Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计, ...

  9. python中集合运算_入门 | 一文带你了解Python集合与基本的集合运算

    原标题:入门 | 一文带你了解Python集合与基本的集合运算 选自DataCamp 作者:Michael Galarnyk 参与:Geek Ai.思源 一般我们熟悉 Python 中列表.元组及字典 ...

最新文章

  1. 使用谷歌Colab Notebooks,这6个小技巧你需要掌握
  2. TensorFlow版的“Hello World”,运行官网第一个例子
  3. matlab实现图像的高斯滤波
  4. Python实现ARP欺骗
  5. linux sed命令:查看gitlab配置文件删除注释行并过滤空行后的内容
  6. [IOI2011]Race
  7. Atitit usrQBK1600 技术文档的规范标准化解决方案
  8. MFC——在视图窗口加载背景图片
  9. chrome启用flash_如何在Google Chrome中启用Adobe Flash Player
  10. 基于相关性分析系统性能瓶颈
  11. setstate是同步还是异步_谈谈 IO模型:同步、异步、阻塞、非阻塞
  12. PostgreSQL概述
  13. 如何使新站得到高权重技巧
  14. 旅游后台管理系列——SSM框架Service层整合
  15. ASA上的NAT配置及互联网接入(动态NAT、动态PAT、静态NAT、静态PAT以及NAT豁免、使用思科TFTP服务器上传ASDM模块)
  16. 电源电压测试所用到的电流探头-品致探头
  17. 数据分析的重要性分析
  18. 英语音标 什么是音素
  19. 华纳云告知您,企业上云的十大优势
  20. android图片涂鸦(标记)

热门文章

  1. 编写代码的软件用什么编写的_如果您编写代码,这就是您的黄金时代
  2. 万字长文,SpringSecurity
  3. HTML 表格的基本布局
  4. es6 Atomics对象
  5. 视觉SLAM笔记(24) 图像基础操作
  6. 安装百分之80卡住_新车买回来要不要安装发动机护板呢
  7. 看完这篇,你的老电脑能够快到起飞再也不卡!
  8. wepy-微信小程序诡异错误
  9. 开发环境很重要,需要学习如何自己搭建开发环境
  10. leetcode 111