关于数据库:11000新能源车企如何将数据库管理效能发挥到极致

3次阅读

共计 2220 个字符,预计需要花费 6 分钟才能阅读完成。

1:1000 的数据库变更治理窘境

在数字化转型的浪潮下,越来越多的企业扩充了软件研发团队的规模以减速业务零碎的迭代降级,从而应答疾速变动的市场竞争环境。新能源汽车作为近年的风口行业,更加重视研发的投入,以 Bytebase 的某新能源车企客户为例,仅研发人员就超过千人。然而业务迭代并非简略的越快越好,因为快而疏忽了品质,可能造成难以估计的损失,作为零碎中最要害一环的数据库,每一次变更都要尤为审慎。

该企业的数据库治理团队曾经建设了根底的变更治理流程,每一次对数据库的改变都要求业务开发团队在零碎中提交申请,DBA 审核实现后再由专人正式公布。但就像少数研发组织一样,该企业同样面临数据库管理人员严重不足的问题,甚至达到了 1:1000 的迥异比例,而疾速倒退的业务又带来了极为频繁的数据库变更需要,这让日常的数据库管理工作陷入了窘境:

  • 业务开发提交变更脚本繁琐。须要将语句复制粘贴到文档中,文字描述待变更指标库,再通过 IM 等合作管理工具发送给审核人,割裂的流程导致沟通老本极高。
  • 人工审核流于形式。随着变更申请疾速增多,人工审核逐步难以应答,最终只能抓大放小,甚至齐全跳过审核阶段。
  • 手工公布效率低下。DBA 须要下载对应脚本再连贯指标库执行,一旦出错须要重复沟通批改
  • 变更治理占用大量工夫。因为变更频繁,DBA 日常破费大量工夫解决相干工作,为了不影响变更时效,团队成员甚至须要时刻随身携带电脑。

这种窘境亟待扭转。

构建全新变更治理流程

通过引入 Bytebase,该企业构建了全新的变更治理流程,通过与上下游的研发工具买通,从变更发动,审核,再到最终公布实现全流程自动化,极大晋升了人效,在确保变更品质的同时,DBA 节约了大量工夫用于更多高价值的工作。

利用代码仓库治理 SQL 脚本并间接发动变更申请

SQL 脚本作为代码的一种,同样要求有序、统一,利用代码仓库进行治理无疑是最佳的抉择。利用 Bytebase 的能力,实现了与代码仓库的集成,所有 SQL 脚本只有合并入指定分支,即可主动触发部署工单。对于企业的业务开发团队而言,在本人最相熟的 GitLab 工作界面即可实现所有工作,大幅提效的同时也升高了来回复制代码出错的概率。

工单触发 IM 告诉

由 GitLab 发送的变更脚本将在 Bytebase Console 生成工单,同时会主动在飞书中生成相应的音讯告诉,审核人员能够第一工夫查看工单,而业务开发团队也能第一工夫获知工单状态变动。

SQL 脚本全自动审核

通过 Bytebase 内置的主动审核能力,该团队定义了不同的审核策略,实现了全自动的工单审核流程,诸如语法错误、性能隐患等问题在正式执行前即可被自动检测工具发现。同时,业务开发团队也能够实时获知审核后果,缩小了沟通老本。

主动变更公布

通过审核的变更工单将主动公布到指标数据库,并即时反馈执行后果,免去了 DBA 手动执行的繁琐流程,也杜绝了误操作的可能。

挪动端审批

对于一些小型变更,DBA 甚至无需登录 Bytebase Console,在 IM 中即可实现审阅与核准,大幅晋升了业务团队的体验,这种便捷的审核模式极为适宜这种业务变动频繁,审核需要多而迫切的业务场景。

数据库变更版本化治理

所有的变更都将进行版本化治理,相干的变更脚本、变更前后的数据库构造变动、工单审核流程等信息,全部都是可追溯的,数据库全生命周期尽在把握。

企业的落地实际

在实际新一代数据库变更治理流程的过程中,该企业的 DBA 团队也总结出了一些落地教训。

主动、主动、还是主动

该团队核心理念就是贯彻自动化,通过利用一系列工具,将数据库的 CI/CD 的绝大多数环节实现了自动化,大幅解放了多个团队的生产力。当然,数据库的复杂性也决定了难以实现齐全的自动化,对于特定场景的人工染指,依然是一种必要的补充。

以 DevOps 为理念的自助治理

以 DevOps 的理念为指引,该团队十分强调让业务开发参加变更管理工作。这一过程要害是寻找到不影响开发团队工作习惯的模式,最合适的莫过于将相干工作内容植入开发团队罕用工作界面,如 GitLab 与 IM 等工具。

正当分类数据库

为了有序疏导开发团队参加变更管理工作,包含提交工单以及参加工单的审核流程,须要精准的界定权限。在这种理念下,不能简略连续传统集中化管理模式中依照保护等级进行分类的模式,更要依照产品线、项目组等维度进行划分,从而确保每一个开发者只能参加本身所属我的项目的数据库变更流程。

正当布局代码仓库目录

因为利用了代码仓库进行 SQL 脚本的治理,同样须要对其目录构造进行正当布局。总体上能够延用 monorepo 的理念,将所有脚本集中在一个仓库中寄存。具体的子目录设计则与 Bytebase 中的项目组划分进行一一对应,确保同一个我的项目下的数据库脚本寄存在同一个子目录下。

合作,而非单纯的管控

合作提效是最终目标,而非强制性管控。在实践中,DBA 对各类策略的制订都会与相干团队进行充沛的探讨,能够无效升高新流程落地的阻力。

继续宣贯的必要性

面对上千人的开发团队,任何流程的落地都不会太简略,在晚期不免有一些共事不习惯或是易于犯错,通过更新流程阐明并进行持续性的宣贯,通过 2-3 周的适应期即可进入失常运行。

目前,该团队仍在一直优化治理流程,并继续摸索诸如自助审核、自助优化、查问脱敏等能力赋能开发团队,后续咱们也将邀请相干负责人来分享,敬请期待。(✪ω✪)


💡 你能够拜访官网:https://www.bytebase.com/,收费注册云账号,立刻体验 Bytebase。

正文完
 0