2024 最热门开源 GitOps 工具盘点
GitOps 是一种侧重于自动化、协作和持续交付的基础设施管理现代方法。它的核心理念是将 Git 作为配置和代码的唯一真理源。在 GitOps 实践中,对基础设施的任何更改都必须通过 Pull Request(合并请求)来进行,这些合并请求需要在并入主分支之前得到团队其他成员的审查和同意。
在这篇文章里,我们将介绍几款开源的 GitOps 工具:
- 基础设施即代码(IaC):Terraform
- 基础设施即代码(IaC):Pulumi
- 为 Kubernetes 设计的持续交付工具:ArgoCD
- 快速、兼具 Git 友好性的 API 客户端:Bruno
- 全方位人到数据库操作管理:Bytebase
Terraform
Terraform 是一款开源的基础设施即代码(IaC)工具,它使得构建、修改以及版本控制基础设施变得既安全又高效。它覆盖了从低级组件(如计算实例、存储和网络)到高级组件(如 DNS 配置和 SaaS 功能)的广泛需求。
Terraform 采用 HashiCorp 配置语言(HCL)作为主要的配置语言,并同时支持 JSON 格式,以满足不同用户的编写习惯。
为了实施 GitOps,你需要创建一个含有 Terraform 配置的 Git 仓库,通过 Terraform 定义你的基础设施,并通过流水线和 Pull Request 来管理基础设施的更新。这样不仅能保证基础设施配置的版本控制,还能通过代码审查机制保障更改的质量。
Pulumi
Pulumi 是一款开源的基础设施即代码(IaC)工具,它独特之处在于允许开发者使用他们偏好的编程语言——如 Python、JavaScript 或 Go——来创建、部署和管理云基础设施。这一特性使得 Pulumi 与 Terraform 有所不同,后者主要使用专用的配置语言。
类似于 Terraform,Pulumi 也支持 GitOps 的实施方式。你可以创建一个含有 Pulumi 配置文件的 Git 仓库,利用 Pulumi 定义你的云基础设施,并通过流水线和 Pull Request 来管理这些基础设施的更新。这种方法不仅有助于基础设施配置的版本控制,而且能够通过代码审查机制来提高变更的质量和安全性。
ArgoCD
ArgoCD 是一款专为 Kubernetes 设计的声明式 GitOps 持续交付工具。
它采用 GitOps 的方式,将 Git 仓库作为定义应用目标状态的核心依据。Kubernetes 的部署清单可以通过多种形式进行指定,包括但不限于 kustomize 应用、helm 图表以及 jsonnet 文件。
通过 Argo CD,可以自动化地将应用的目标状态部署到特定的运行环境中。这个过程支持跟踪分支、标签的最新更新,或者可以指定部署到某个 Git 提交对应的特定版本,以确保部署的一致性和准确性。
Bruno
Bruno 是一个快速、兼具 Git 友好性的开源 API 客户端,目标是改变 Postman、Insomnia 等流行工具所代表的传统做法。
它通过 Bru 这种纯文本标记语言,直接在你的文件系统上的一个文件夹中存储 API 请求相关的信息,使得管理 API 请求集成简洁且高效。
在 GitOps 实践中,Bruno 让你可以通过 Git 或任意版本控制系统,轻松地与团队成员共享和协作开发 API 请求集。这种方式无疑为 API 开发带来了更高的灵活性和团队协作效率。
Bytebase
Bytebase 是一款开源的数据库 DevOps 工具,被誉为数据库管理领域的 GitLab/GitHub,它支持应用程序开发生命周期中的数据库管理。这款工具为数据库管理员(DBA)、开发人员和平台工程师提供了一个集中的网络协作平台,将 DBeaver、Liquibase、Flyway 等多种数据库工具整合在一起,方便使用。
除了直观的 UI 工作流,Bytebase 还引入了 GitOps 工作流程来管理数据库变更。允许通过 Pull Request 来启动数据库变更请求。并且,Bytebase 提供了 SQL 审核、自定义的审批流程以及部署策略,从而能够以更先进的 GitOps 方式来管理数据库变更。这不仅提高了数据库管理的效率和安全性,也为团队协作带来了新的可能性。
上述介绍的每一款工具都有其特色和强项。通过了解你的特定需求,可以挑选最适合自己场景的工具。
💡 更多资讯,请关注 Bytebase 公号:Bytebase

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
探究网络延迟对事务的影响
1.背景概述 最近在做数据同步测试,需要通过DTS将kafka中的数据同步到数据库中,4G的数据量同步到数据库用了大约4个多小时,这看起来并不合理;此时查看数据库所在主机的CPU,IO的使用率都不高,没有瓶颈;最后通过排查发现由于kafka,DTS,数据库不再同一个机房,网络延迟较大,导致同步速率缓慢; 将kafka,DTS,数据库部署到同一个机房后,同步速度明显提升,只需要15分钟就能同步完。 2.问题复现 本次测试通过sysbench在不同网络延迟的情况下,进行数据写入及性能压测,对比网络延迟对数据库事务的影响。 2.1 查看当前网络延迟 $ ping 192.168.137.162 PING 192.168.137.162 (192.168.137.162) 56(84) bytes of data. 64 bytes from 192.168.137.162: icmp_seq=1 ttl=64 time=0.299 ms 64 bytes from 192.168.137.162: icmp_seq=2 ttl=64 time=0.180 ms 64 bytes from 1...
- 下一篇
Fluid 携手 Vineyard,打造 Kubernetes 上的高效中间数据管理
作者:曹野 车漾 背景介绍和面临的挑战 随着 Kubernetes 在 AI/大数据领域的普及和业务场景变得越来越复杂,数据科学家在研发效率和运行效率上遇到了新的挑战。当下的应用,往往需要使用端到端的流水线来实现,以下图所示的一个风控作业数据操作流为例:首先,需要从数据库中导出订单相关数据;随后,图计算引擎会处理这些原始数据,构建“用户-商品”关系图,并通过图算法,初筛出其中隐藏的潜在作弊团伙;接下来,机器学习算法会对这些潜在团伙进行作弊归因,筛选出更准确的结果;最后这些结果会经过人工筛查,并最终做出业务处理。 在这样的场景下,我们常常会遇到如下问题: 1. 开发环境和生产环境的差异导致数据工作流的开发和调试变得复杂且低效: 数据科学家在自己的计算机上开发时通常使用 Python,但是又需要在生产环境中将代码转化为他们并不熟悉的 YAML 文件从而利用 Argo、Tekton 等基于 Kubernetes 的工作流引擎,这大大降低了开发和部署效率。 2. 需要引入分布式存储实现中间临时数据交换,带来额外的开发、费用、运维成本: 端到端任务的子任务之间的数据交换通常依赖分布式文件系统或对...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker安装Oracle12C,快速搭建Oracle学习环境