查看原文
其他

攻略|三种集成 SQL Review 到 GitHub 的模式,哪种最适合你

cy Bytebase 2023-01-28

SQL 脚本的审核是数据库变更过程中极为关键的一环,以往这一工作完全由 DBA 负责,经常是在上线的前一刻才由开发者提交到 DBA 侧,时效性的不足导致难以确保变更质量,甚至一些团队由于缺少专业 DBA 而完全跳过了这一环节。Bytebase 作为一款面向研发团队打造的数据库 CI/CD 工具,致力于赋能开发者完成高质量的数据库变更工作,产品内置了强大的自动 SQL 审核能力。

为了更好兼容开发者的工作习惯,Bytebase 将其能力集成到了 GitHub 中,开发者可以在代码仓库中管理 SQL 脚本并自助完成 SQL 的审核工作,这样不仅避免了在多个工具中切换,更重要的是能够把 SQL 审核工作前置,在研发流水线的代码提交阶段就能发现问题,而无需等到部署阶段。
为了应对不同的需求,Bytebase 提供了三种集成模式供用户选择:
  • GitHub Action
  • GitHub App
  • GitOps SQL Review CI

在本文中,我们将详细介绍它们的区别,并在文末附上了三种模式的对比。

GitHub Action

简介

Bytebase 实现了基于 Action 的自动化审核,只需要将预生成的 workflow 文件存入 `.github` 目录,即可将 SQL 审核规则集成到 CI 流程中。

简略配置过程

1. 获取 GitHub Action workflow 文件

Bytebase 已经上架 GitHub Action (https://github.com/marketplace/actions/sql-review),用户可以访问该链接,获取相应配置文件。
2. 手动创建 workflow 文件从而激活默认 SQL 审核规范
用户需要手动在代码仓库中创建 wrokflow 文件 `.github/workflows/sql-review.yml`,基于提供的模板修改几个关键参数值,即可让 Action 生效,并实现默认的 SQL 审核规范。
3. 自定义 SQL 审核规范
如果不满足于默认审核规范,Bytebase 在官方网站提供了可视化的 SQL 规范配置页面 SQL Review Guide (https://www.bytebase.com/sql-review-guide)。用户可将自定义规范一键导出为 yml 文件,并将 Action workflow 文件中的 override-file-path 参数指向该文件,即可让自定义规范生效。
详细配置过程可查看文档 GitHub-Action: https://www.bytebase.com/docs/sql-review/sql-advisor/github-action

审核效果

完成配置后,当用户提交的 PR 中检测出 SQL,即可自动触发审核过程,并在被审核的文件中查看详细审核结果。

该模式特点

免费。用户可以无条件的免费使用该 Action。
轻量级。用户无需部署任何额外组件,只需在代码仓库生成单一文件即可激活。
同时支持多种数据库类型。需通过文件路径划分来显式指定数据库类型,可同时支持多种数据库审核。
配置较复杂。由于需要手动编辑 yml 文件,初始配置或更新规范复杂度较高。
基础审核能力。由于无法连接数据库,该模式只能基于规则对 SQL 文本进行审核。
单一生效审核策略。同一时间只允许激活一套审核策略。
展示方式较单一。只能在被审核文件中查看审核结果,缺乏审核结果总览。

仅实现 CI。该模式只实现 SQL 审核,无法触发后续的 SQL 部署流程。


GitHub App

简介

Bytebase 实现了基于 App 的自动化审核,只需部署对应 App 并关联对应代码仓库,即可将 SQL 审核规则集成到 CI 流程中。

简略配置过程

1. 部署 GitHub App

Bytebase 已经上架 GitHub App (https://www.bytebase.com/docs/sql-review/sql-advisor/github-app),可以访问链接直接部署该 APP。

2. 关联指定仓库激活 SQL 审核

用户可以在 APP 的配置页面关联指定的代码仓库,即可激活审核能力。

3. 自定义 SQL 审核规范

用户可以通过 GitHub 账号登录 hub.bytebase.com 进行可视化自定义规范配置,所有修改即时生效。

详细配置过程可查看文档 GitHub-App: https://www.bytebase.com/docs/sql-review/sql-advisor/github-app

审核效果

完成配置后,当用户提交的 PR 中检测出 SQL,即可自动触发审核过程。在 PR 的主界面可以看到审核结果总览。
并在被审核的文件中查看详细审核结果。

该模式特点

免费。用户可以无条件的免费使用该 APP。
轻量级。用户无需部署任何额外组件,只需一键部署 APP 即可激活。
配置简单。全流程可视化配置,并且修改规范可以即时生效。
展示方式全面。可以在被审核文件中查看审核结果,同时支持审核结果总览。
基础审核能力。由于无法连接数据库,该模式只能基于规则对 SQL 文本进行审核。
需显式指定数据库类型。由于无法连接数据库,该模式只能显式配置对一种支持的数据库类型生效。
单一生效审核策略。同一时间只允许激活一套审核策略。

仅实现 CI。该模式只实现 SQL 审核,无法触发后续的 SQL 部署流程。


GitOps SQL Review CI

简介

基于 Bytebase Console 的集成模式提供了更强大的功能,该模式可以一键自动配置 GitHub Action,同时支持与待变更的数据库通信,进而实现更高级的审核项与后续 CD 流程。

配置过程

1. 部署 Bytebase Console 并完成基础配置

该模式需要完成 Bytebase Console 的部署,并进行基础配置将相应数据库纳入管理,详细过程可查看部署文档 Bytebase Installation Guide (https://www.bytebase.com/docs/get-started/install/overview)。

2. 一键激活 SQL Review CI

在 Bytebase Console 的 Project 配置页面中通过配置 GitOps Workflow 即可自动生成 GitHub PR 完成 GitHub Action 的配置,无需进行任何繁琐的文件编辑。

3. 自定义 SQL 审核规范

如果不满足于默认审核规范,在 Bytebase Console 中可以进行可视化自定义规范配置,所有修改即时生效。

详细配置过程可查看文档 GitOps-CI: https://www.bytebase.com/docs/sql-review/sql-advisor/gitops-ci

审核效果

完成配置后,当用户按照指定格式提交 SQL 脚本,即可自动触发审核过程,并在被审核的文件中查看审核结果

该模式特点

配置简单。全流程可视化配置,并且修改规范可以即时生效。
高级审核能力。审核过程中可通过 Bytebase Console 连接目标数据库,通过获取数据库的结构和统计信息给出额外审核建议。
同时支持多种数据库类型。审核过程可自动连接数据库判断类型,无需显式配置,因此可同时支持多种数据库审核。
同时生效多套审核策略。可配置多套审核策略,与特定环境(Test、Prod)关联,提交审核时可灵活指定。
同时支持 CD。该模式在完成 SQL 审核合并代码后,可自动触发后续的 SQL 部署流程,实现完整的数据库 CI/CD,同时采用与 Bytebase Console 中的同一套审核规范,统一了研发团队与 DBA 团队的审核标准。
付费订阅。需订阅 Bytebase Console 企业版。
较重。用户需要部署 Bytebase Console,适合企业级用户应用于生产环境。

展示方式较单一。只能在被审核文件中查看审核结果,缺乏审核结果总览。


综合对比


从 Google 删库,到蚂蚁跑路,Care 与 Fear 点燃的 Flare
聊聊中国原创的开源项目|活动回顾(含视频 & PPT)
AWS CodeCatalyst 走马观花
SQL Editor 进化之 Web Terminal

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存