限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: muyang-0410

数据库开发运维作为研发流程上的刚需场景,目前在行业内还尚未形成标准或者主流方案。Zadig 作为云原生持续交付平台,我们关注最终产品的稳定性和业务交付能力,势必对该领域也抱有持续的关注度。

我们有观察到在该领域有国内外大厂发力同样也有后起之秀,今天就这一领域的工具现状做初步的研究和分析,并对这些工具(Flyway、Liquibase、Bytebase、阿里 DMS)如何结合 Zadig 做了一些简要设计 ,希望能够帮助到大家。

Flyway

Flyway ()是一款开源的数据库版本管理工具,Flyway 可以独立于应用实现管理并跟踪数据库变更sql数据库管理工具,支持数据库版本自动升级,并且有一套默认的规约,无需复杂的配置,Migrations 可以写成 SQL 脚本,也可以写在 Java 代码中,不仅支持 Command Line 和 Java API,还支持 Build 构建工具和 Spring Boot 等,同时在分布式环境下能够安全可靠地升级数据库,支持失败恢复等。

支持数据库类型

支持所有关系型数据库

sql数据库管理工具在哪_sql数据库管理工具_数据库工具箱

Flyway 社区版和企业版差异

sql数据库管理工具_sql数据库管理工具在哪_数据库工具箱

主要特性

工作原理

初始化过程

使用 flyway 来接管空数据库:flyway 在对应的数据库中创建一个记录 Schema metadata 的表 flyway_schema_history(非空数据库需要使用 baseline 命令进行初始化)

Flyway 开始扫描文件系统或者应用 classpath 里变更,变更可以是 SQL 或者 JAVA 编写的。根据版本号依次执行变更。

flyway_schema_history 记录每个变更 metadata。

变更新版本过程

Flyway 扫描文件系统或者应用 classpath 里的变更,小于等于当前数据库中记录的版本的变更不执行,剩余的版本为可以执行的版本

根据版本顺序执行

Schema 变更记录表更新

也就是说,每次有变更只需要加一个高版本的变更文件,flyway 就可以执行。

结合 Zadig 的实践

SQL 变更文件存放在 Git 代码库

有新的 SQL 变更提交 PR 到代码库

自动触发 Zadig 工作流执行 flyway migrate

不同环境的数据库的变更可以使用不同的 flyway.conf 区分

Liquibase

Liquibase () 是一个用于跟踪、管理和应用数据库变化的开源的数据库重构工具。它将所有数据库的变化(包括结构和数据)都保存在 changelog 文件中,便于版本控制,它的目标是提供一种数据库类型无关的解决方案,通过执行 Schema 类型的文件进行变更。

支持数据库类型

Liquibase 社区版和企业版差异

sql数据库管理工具在哪_sql数据库管理工具_数据库工具箱

主要特性

结合 Zadig 的实践

SQL 变更文件存放在 Git 代码库

有新的 SQL 变更提交到代码库

自动触发 Zadig 工作流执行 liquibase update

不同环境的数据库的变更可以使用不同的 liquibase.properties 区分

Bytebase

Bytebase()是一款开源的数据库 DevOps 工具,面向应用开发和 DBA,管理 Schema(DDL) 和数据(DML)的全生命周期。

支持数据库类型

Bytebase社区版、团队版和企业版差异

sql数据库管理工具在哪_数据库工具箱_sql数据库管理工具

主要特性

结合 Zadig 的实践

方式一:在 Zadig 中集成 Bytebase bb CLI,可以作为依赖的软件包/打成自定义的构建镜像在 Zadig 中使用

变更的 SQL 放在 Git 仓库中

有新的 SQL 变更提交代码库

自定触发 Zadig 工作流执行 bb migrate

不同的环境通过给命令行传入不同变量的方式区分

方式二:借助 Zadig 自定义工作流强大的扩展能力开发一个「Bytebase 数据变更」任务,参考文档:工作流任务 | Zadig 文档 [1]

触发 Zadig 工作流,利用「Bytebase 数据变更」自动创建工单

DBA 在界面上进行工单审批,审批通过并且完成执行

工作流收到回调信息继续执行业务变更

阿里 DMS

DMS() 是一种集数据管理、结构管理、用户授权、安全审计、数据趋势、数据追踪、BI图表、性能与优化和服务器管理于一体的数据管理服务。

支持数据库类型

主要特性

结合 Zadig 的实践

在 DMS 上对数据的操作需要通过工单来完成,所以首先借助 Zadig 自定义工作流强大的扩展能力开发一个「DMS 数据变更工单」。参考文档:工作流任务 | Zadig 文档 [1]

触发 Zadig 工作流,利用「DMS 数据变更工单」自动创建工单

DBA 在 DMS 界面上进行工单审批sql数据库管理工具,审批通过并且完成执行

工作流收到回调信息继续执行业务变更

主要差异

文中所列 Flyway、Liquibase、Bytebase、阿里 DMS 的相关差异对比见下图:

sql数据库管理工具_sql数据库管理工具在哪_数据库工具箱

后续将推出数据库版本管理工具在 Zadig 上详细实践系列文章,敬请期待…

参考链接:

[1]

Zadig,让工程师更专注创造。

点击小程序参与调研,赢《致匠心 – 基于 Zadig 落地云原生 DevOps 行业案例 & 故事集》:

数据库工具箱_sql数据库管理工具在哪_sql数据库管理工具

sql数据库管理工具_数据库工具箱_sql数据库管理工具在哪

限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: muyang-0410