来自电子制造行业视源电子 (CVTE) 的数据库变更管理实践

2023-11-09 13:13

本文主要是介绍来自电子制造行业视源电子 (CVTE) 的数据库变更管理实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关于视源电子

广州视源电子科技股份有限公司 (CVTE) 成立于 2005 年 12 月,旗下拥有多家业务子公司。

file

截至 2022 年底,公司总人数超 6000 人,约 60% 为技术人员。公司的主营业务为液晶显示主控板卡和交互智能平板等显控产品的设计、研发与销售,产品已广泛应用于家电领域、 教育信息化领域、企业服务领域等。自成立以来,依托在音视频技术、信号处理、电源管理、人机交互、应用开发、系统集成等电子产品领域的软硬件技术积累,在细分市场逐步取得领先地位,并建立了教育数字化工具及服务提供商希沃(seewo)、智慧协同平台 MAXHUB 等多个业内知名品牌。

困扰已久的数据库变更发布管理

视源电子此前已经采购了数据库审计安全平台,其理论上可以实现对所有数据库访问的监控与阻断,从而避免违规操作。然而实际使用过程中,却并不能很好的应对复杂的数据库变更管理需求:

  • 拦截规则粒度较粗:由于无法进行精细化的规则设置,粗粒度的规则可能造成误拦截
  • 固定规则无法灵活调整:由于类似防火墙的固定规则配置,一旦终端用户发现规则错误或是需要临时放行,只能不断的反复修改规则
  • 不支持 SQL 审核规范:审计平台的拦截规则基本只限定于 SQL 类型,但是对于更细节的 SQL 审核规范完全无法支持,例如命名风格、字段类型约束等
  • 拦截能力不稳定:存在不明原因的 SQL 执行错误,只能关闭拦截功能才能解决
  • 缺乏线上流程管控:所有的发布依然需要人工在多个割裂的系统中对接,无法在一个闭环流程中实现提交、审核与发布,增加了不必要的沟通成本,也引入了更多的故障点。
  • 缺乏高级发布能力:视源电子一个现实需求是将同一个变更发布到多个工厂的系统中,原有流程中只能逐个登录堡垒机执行,效率低下。
  • 无法实现变更版本化管理:虽然审计平台能够记录所有的变更,但其目的是为了审计,事实上无法支持版本管理中需要的变更差异比对、变更历史分析、历史变更组织编排等能力。
  • 无法管理账号权限:由于存在发布与查询的现实需求,需要将生产系统的账号提供给研发人员,即便做了账号权限的控制,但是下发的账号无法进行有效的管理和回收,也无法控制账号在研发团队间的传播

由于安全平台的诸多局限,为了不影响用户的正常使用,事实上只能放弃拦截功能,而仅仅采用其审计能力。然而变更质量管控的问题依然无法得到解决,成为了日常数据库管理中最大的痛点。

Bytebase:为制造行业带来全新的数据库变更管理体验

专业的事情交给专业的产品。经过充分的试用评估,视源电子选择了 Bytebase 来作为其真正意义上的数据库变更管理平台。作为一款聚焦于数据库变更管理的产品,Bytebase 很好的满足了视源电子在数据库管理需求中的诸多关键需求。

数据库变更全流程管控

file

Bytebase 提供了一站式的变更管理流程,形成变更的合并、审核、发布、通知、记录的完整生命周期管理,同时通过接口等方式与上下游的研发工具实现联动,将原本割裂的行为实现了闭环统一。

  • 合并。可以通过 UI,代码仓库,接口等多种方式合并变更,不同研发团队可以按需选择。
  • 审核。提供了强大的自动审核功能,实现多维度的 SQL 检查。
  • 发布。可以一键将工单发布到目标数据库,避免手工执行低效易错。
  • 通知。可以集成主流 IM,实现流程节点自动化通知。
  • 记录。有别于审计平台只记录最终执行语句,Bytebase 可将记录工单项目的流程信息以及变更前后的结构快照,实现更专业的变更历史管理。

提升发布效率

file

在强调对流程管控的同时,Bytebase 提供了多种能力,帮助开发团队提升其发布效率,其中的一些切实解决了视源团队此前面临的问题。

  • 批量发布。Bytebase 支持多种高级发布能力,其中的批量分组功能可以将大量数据库进行灵活的分组发布,避免逐个库执行的低效,也解决了自定义批处理脚本无法灵活应对交叉分组的问题。
  • 可执行性验证。Bytebase 可以更好的帮助研发同学写出真正可执行的 SQL,不仅包括了语法检查与对象名校验,对于一些特定操作,例如修改被视图引用的表结构(在 Postgres 中需要删除该视图才能修改表结构),可以自动给出视图定义方便研发改写脚本,得到研发团队的一致好评。
  • 简化版本管理。在原有的流程中,测试环境的变更脚本需要通过电子表格等工具进行手工记录与编排,再逐个发布至生产系统,繁琐且易错。Bytebase 提供了变更列表管理功能,可以从历史记录或文件中导入变更,编排后实现一键发布,工作体验得到明显改善。

将访问合规融入流程

file

Bytebase 同时提供了多种安全能力,实现了所有人工直接访问数据库的安全管控。

  • 统一的权限管控。利用一套账号角色体系,可以管理所有项目中的数据库权限,无需将数据库的直接访问权给到开发者。
  • 细粒度的查询导出权限。可以精确到表级或语句级的细粒度权限分配,确保数据的访问合规。
  • 严格控制变更类需求。所有的变更类需求强制通过工单形式执行,便于流程审核与记录。

由浅到深的落地实践

为了确保落地效果,管理团队与不同的项目研发团队进行了深入的沟通,结合实际情况进行分阶段推行,取得了很好的效果。

  • 分部门逐步推广。优先在需求较为迫切的部门推广,例如制造部门急需分组变更等能力。
  • 分场景逐项落地。针对变更最为频繁,场景最为复杂的营销部门,并不急于全面推广,而是结合常规发布、大版本发布、数据修复等不同场景制定不同的应对策略,优先将临时性、易出错的数据变更纳入管理,再逐步接管其他场景,从而让开发团队能够适应新的流程。
  • 分功能逐级演进。优先采用易于上手的 UI 变更工作流,逐步在一些部门启用 GitOps 工作流,实现更无缝的变更体验。

在与视源技术团队合作的过程中,我们也深刻体会到了其专业性,不但将 Bytebase 的各项功能进行了充分的发挥,还贡献了很多极有价值的应用场景。后续的工作中 Bytebase 仍将全力支持,协助视源电子进一步完善新一代的数据库变更管理流程⛽️。


💡 更多资讯,请关注 Bytebase 公号:Bytebase

这篇关于来自电子制造行业视源电子 (CVTE) 的数据库变更管理实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/376310

相关文章

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

如何通过try-catch判断数据库唯一键字段是否重复

《如何通过try-catch判断数据库唯一键字段是否重复》在MyBatis+MySQL中,通过try-catch捕获唯一约束异常可避免重复数据查询,优点是减少数据库交互、提升并发安全,缺点是异常处理开... 目录1、原理2、怎么理解“异常走的是数据库错误路径,开销比普通逻辑分支稍高”?1. 普通逻辑分支 v