您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[-]:构建基于GitOps的PostgreSQL数据库变更工作流 - 发现报告

构建基于GitOps的PostgreSQL数据库变更工作流

信息技术2024-09-10Bytebase(王长煜)-J***
AI智能总结
查看更多
构建基于GitOps的PostgreSQL数据库变更工作流

王长煜|Bytebase商业化负责人 GitOps简介1 Bytebase变更管理系统5 GitOps简介 什么是GitOps GitOps是一种基于Git仓库的持续交付工作流,将基础设施和应用程序的配置或状态信息存储在Git仓库中,并使用自动化工具对其进行变更管理。 使用Git来存储定义和配置信息,轻松实现版本化管理,确保目标基础设施的配置一致性。 数据库GitOps 数据库的变更是否需要GitOps? 数据库GitOps的实现难点 现有的一些数据库GiOps方案 ❖语法正确性:验证脚本语句是否符合模板引擎的语法❖业务正确性:是否满足应用发布需求❖架构正确性:是否符合性能与扩展性等要求 审核 ❖大型变更:对于数据量庞大的表发起变更❖批量发布:一次对多个同构库发起变更❖流水发布:将一个变更从测试环境逐阶段发布到生产环境❖灰度发布:挑选部分库先行发布,再逐步扩展到所有库❖临时性变更:不涉及应用变更的数据库变更 ❖脚本修正:基于错误原因快速调整脚本语句❖快速撤销:执行反向语句撤销本次变更❖全库回滚:将数据库回退到变更前的某个时间点 新一代数据库GitOps方案 为PostgreSQL打造的开源数据库GitOps工具 具备强大的数据库变更管理能力,与代码仓库集成,提供独立的发布流,同时能与应用发布联动 代码仓库内的PostgreSQL数据库审核能力 ❖符合开发团队工作习惯与流程,无须在多个工具间切换 ❖CI阶段预审核大幅降低上线风险,增加容错时间 开源的PostgreSQL审核能力 SQL自动审核助力研发提升SQL质量 ❖可配置性 ➢内建37条可配置规范➢模板化设计,支持为不同环境适配不同约束力的规范 ❖Git集成 ➢一键集成GitHub/GitLab➢上架GitHubMarketplace➢UI配置在Git中实时生效 ❖可扩展性 ➢支持自定义规范集成,构建符合自身业务特点的规则集➢API支持,便于融入企业已有变更流程 独立与应用发布的数据库CD工作流 SQL自动审核助力研发提升SQL质量 ❖自动触发数据库变更流程 ➢监听指定仓库、指定分支、指定目录➢基于Webhook ❖模式一:基于文件名模板 ➢{{ENV_NAME}}/{{DB_NAME}}__{{VERSION}}__{{TYPE}}__{{DESCRIPTION}}.sql➢易于使用,应对普通的变更请求 ❖模式二:基于YAML格式 ➢更多的配置项应对复杂的变更请求➢调用变更管理系统的高级能力 常见变更场景的GitOps实现 单库发布 bytebase/prod/employee##202303040001##ddl##create_table_salary.sql 对单库进行标准的SQL脚本发布 databases:-name:supermarket_east-name:supermarket_weststatement:|INSERTINTOcompany(id,name,address)VALUES(1,'Bytebase','1DevOpsstreet'); 同构批量发布 对多个数据库发起相同的变更,多见于分库分表、SaaS多租户等场景 单次变更流水发布 bytebase/employee##202303040001##ddl##create_table_salary.sql 一次变更贯穿测试、预上线、生产等多个环境,多见于临时性变更 cpbytebase/test/employee##202303020001##ddl##create_table.sqlemployee##202303020002##ddl##create_index.sqlemployee##202303030001##ddl##add_column.sqltobytebase/prod/ 多次变更流水发布 累积了多个变更后一次性发布到生产环境,多见于应用大版本更新 变更完成自动回写Schema并联动应用发布 变更失败的应对 提供产品化的变更失败处理能力 ❖一键挖掘日志生成撤销语句❖预览工单,按需选择所需回滚语句❖可在变更前后随时激活 场景示例:一个完整的DatabaseCI/CD流程 落地GitOps的实践经验 代码仓库的目录规划 审核规范的实施路径 流程前置提供连贯的开发体验 知其然而知其所以然 以最基础的审核规范开始,逐步结合业务特点构建自定义规范集 弹性审核机制平衡效率与稳定 Bytebase变更管理系统 Bytebase变更管理系统能力矩阵 源自Google与蚂蚁集团的数据库DevOps最佳实践 示例:Bytebase统一查询客户端 全球唯一入选CNCF(云原生计算基金会)推荐目录 官网-www.bytebase.com/zhGitHub-https://github.com/bytebase/bytebaseTwitter-@BytebaseLinkedIn-https://www.linkedin.com/in/bytebase/