首页 > 其他分享 >GitOps与DevOps

GitOps与DevOps

时间:2023-01-27 11:44:56浏览次数:57  
标签:Pull GitOps 方式 代码 DevOps Push

随着DevOps的发展以及采用DevOps思维方式的组织不断增多,DevOps的许多不同方面都日趋成熟。随着DevOps的成熟,在概念和思维方式(DevSecOps,AIOps,SecOps等)领域也在不断发展。GitOps是DevOps中的另一个萌芽概念,其根源在于使开发人员能够使用git创建CI/CD来自动化多云和多容器编排集群的开发和运营。

DevOps大家都很熟悉,不做介绍,GitOps是一种集成在DevOps周期中的技术,是一种用于存储,管理和检索K8s,Swarm等容器协调器的部署描述符的方法。现在,它已扩展到可以是IaC文档(Terraform, Cloudformation等),软件配置(Ansible,Puppet等)。

GitOps 的两种模式

GitOps 的部署策略有两种实现方式:基于 Push 的方式和基于 Pull 的方式。两者的主要区别如下:

基于 Push 的方式

 

基于 Pull 的方式

 

Push 方式是作为上帝视角来做环境的更新,而 Pull 方式则可以利用权限鉴权等信息做安全性及合规性保障。

Push 方式是在代码变更后触发更新,如果有人手动修改了集群中的配置,集群中的配置就会和代码库中的配置有差异;而 Pull 方式实现方式,则是检测集群和代码库中的配置,当发现不一致时,自动/手动触发更新,让环境中使用的配置始终和代码库中的保持一致。

GitOps 是实现 DevOps 的方法之一。

GitOps 以 Git 作为唯一可信源,并结合一些工具例如 FluxCD 或 ArgoCD 来实现持续部署。

此外,GitOps 和 DevOps 实际上还涉及到不同的领域,例如:

  • 持续构建
  • 代码扫描
  • 单元测试
  • 持续部署
  • 日志、监控和告警

GitOps 相比较 DevOps 概念诞生相对晚一些,工具链也比较新。比如:

  • 容器和镜像:Docker
  • 持续集成:GitHub Action、Jenkins、Tekton
  • 镜像仓库:Harbor
  • 应用定义:Helm、Kustomize
  • 持续部署:FluxCD、ArgoCD
  • 秘钥管理:Vault
  • 容器编排:K8s
  • 网关:Ingress-Nginx
  • 日志:Grafana Loki、Fluentd
  • 监控:Grafana
  • 告警:Prometheus
  • 应用开发:Nocalhost

标签:Pull,GitOps,方式,代码,DevOps,Push
From: https://www.cnblogs.com/muzinan110/p/17068761.html

相关文章