GitOps与DevOps
随着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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)