查看原文
其他

数据库自动化管理的六大等级

天舟 Bytebase
2024-09-04

什么是数据库自动化管理?

数据库自动化管理是指通过使用工具和流程,在尽量减少人为干预的情况下,管理和执行与数据库相关的任务。主要目的当然是提高效率,减少人为错误,确保一致性,并解放 DBA 和开发者,让他们能够专注于更加重要的任务。
我们借鉴了自动驾驶的 6 大等级,并定义了数据库自动化管理的 6 个等级。


第 0 级 - 无自动化

在这个级别,所有的数据库任务都是手动处理的,容易引发高风险的人为错误和数据不一致。
  • 手动变更:数据库更改由 DBA 或开发者手动执行。

  • 无版本控制:没有系统化地对数据库 schema 或变更进行版本控制。

  • 高错误率:由于手动执行,容易出现错误和数据不一致。

  • 高数据安全风险:数据访问权限是手动授予的,常常导致权限过期,违反最小权限原则(PoLP)。

  • 无法追溯:难以跟踪数据库操作和维护数据库审计日志。


第 1 级 - 工单系统

在这个级别,数据库操作通过工单系统进行管理,引入了一定程度的流程和监督。许多组织就停留在这个级别。
  • 工单系统:使用如 Jira, ServiceNow 等工单系统来请求、跟踪和批准数据库变更和访问权限。

  • 审批流程:在发布变更和授予权限前需要经过批准,确保一定程度的审核。

  • 手动执行:尽管使用了工单系统,变更仍然需要通过另一个独立的数据库客户端手动执行。

  • 基本审计记录:在工单中捕获基本的审计记录。


第 2 级 - 版本控制

在这个级别,引入了版本控制来管理数据库变更,提高了可追溯性和团队协作性。采用了 DevOps 最佳实践的团队通常会达到这个级别。
  • 版本控制:使用版本控制系统(VCS),例如 Git,来管理数据库 schema 和变更。

  • 变更脚本:使用 SQL 变更脚本来管理数据库变更。

  • 开发协作:通过共享版本历史,团队成员之间可以更好地协作。

  • 手动执行:虽然变更仍然通过独立的数据库客户端手动部署,但具有更好的追踪和回滚能力。


第 3 级 - 流水线化

在这个级别,使用自动化工具来进行部署,减少了手动操作和错误。
  • 自动化部署:使用 CI/CD 自动化部署数据库变更。

  • 库变更工具:使用数据库变更工具(例如 Liquibase, Flyway)来管理和应用变更。

  • 回滚能力:如果部署出现问题,可以自动回滚变更。

  • 环境一致性:确保在开发、预生产和生产环境中进行一致地部署。


第 4 级 - 集成化

第 2 和第 3 级都增强了变更自动化,尤其是计划中的 schema 变更和作为应用发布周期一部分的数据变更。这些变更可以存储在版本控制系统(VCS)中并采用 DevOps 最佳实践。然而,还有一些临时变更,如修改生产数据和临时权限授予,这些一次性的数据库任务不适合存储在 VCS 中。
第 4 级涉及将所有数据库任务一起整合在整个数据库开发生命周期中。
  • 完全集成的变更管理:数据库变更与应用代码一起,无缝集成到 CI/CD 中。

  • 集中的权限控制:一次性的数据访问和导出权限授予遵循相同的数据库变更审批流程。而长期的权限则从外部认证系统(如 Okta, Active Directory 或 LDAP)同步。

  • 安全和合规:所有人工数据库操作都在一个平台内处理,通过这样一种集中的方式,来加强安全性及合规性。
💡 Bytebase 可以实现这个级别。


第 5 级 - 完全自动化

在最高级别,整个数据库任务流程实现了完全自动化,几乎无需人为干预。
  • 端到端任务自动化:从任务请求到部署和监控的全程自动化。

  • 自我修复系统:在出现问题时自动回滚。

  • 全面的合规性:自动化的合规审计和安全检查被集成到事前,事中,事后的整个生命周期中。
由于数据库在现代基础设施中扮演着至关重要的角色,我们还很难讲执行数据库任务是否能够完全摆脱人为干预。你说呢?👀

我的 CEO 觉得任何技术经理都是多余的

来 2024 亚马逊云科技中国峰会,抽法拉利!

SB-OSC, 最新的 MySQL Schema 在线变更方案

我欺骗了CTO,但拯救了公司(附HN热评)


继续滑动看下一个
Bytebase
向上滑动看下一个

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

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