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

news2024/10/5 22:26:02

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

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

file

我们借鉴了自动驾驶的 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 可以实现这个级别。

file

第 5 级 - 完全自动化

在最高级别,整个数据库任务流程实现了完全自动化,几乎无需人为干预。

  • 端到端任务自动化:从任务请求到部署和监控的全程自动化。
  • 自我修复系统:在出现问题时自动回滚。
  • 全面的合规性:自动化的合规审计和安全检查被集成到事前,事中,事后的整个生命周期中。

由于数据库在现代基础设施中扮演着至关重要的角色,我们还很难讲执行数据库任务是否能够完全摆脱人为干预。你说呢?👀


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1710993.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

系统思考—决策

风险来自于你不知道你在做什么。——沃伦巴菲特 今天和一个合作伙伴的创始人交流,她提出了一个引人深思的问题:“策略性陪伴和战略复盘,什么原因不由客户自己来做?”这个问题让我深入思考了第三方策略性陪伴顾问的独特价值和重要…

《征服数据结构》块状链表

摘要: 1,块状链表的介绍 2,块状链表的代码实现(Java和C) 1,块状链表的介绍 前面我们讲过数组和链表,数组具有 O(1)的查询时间,O(N)的删除,O(N)的插入,而链表具…

java 对接农行支付相关业务(二)

文章目录 农行掌银集成第三方APP1:掌银支付对接快e通的流程1.1 在农行网站上注册我们的app信息([网址](https://openbank.abchina.com/Portal/index/index.html))1.2:java整合农行的jar包依赖1.3:把相关配置信息整合到项目中1.4:前端获取授权码信息1.5:后端根据授权码信…

Unity【入门】环境搭建、界面基础、工作原理

Unity环境搭建、界面基础、工作原理 Unity环境搭建 文章目录 Unity环境搭建1、Unity引擎概念1、什么是游戏引擎2、游戏引擎对于我们的意义3、如何学习游戏引擎 2、软件下载和安装3、新工程和工程文件夹 Unity界面基础1、Scene场景和Hierarchy层级窗口1、窗口布局2、Hierarchy层…

Spring Cloud Alibaba-06-Sleuth链路追踪

Lison <dreamlison163.com>, v1.0.0, 2024.4.03 Spring Cloud Alibaba-06-Sleuth链路追踪 文章目录 Spring Cloud Alibaba-06-Sleuth链路追踪为什么使用链路追踪常见链路追踪解决方案Sleuth概述概述Sleuth术语 Sleuth Zipkin 原理Sleuth原理简述Zipkin 原理简述 Sleut…

剪画小程序:自媒体创作的第一步:如何将视频中的文案提取出来?

自媒体创作第一步&#xff0c;文案提取无疑是至关重要的一环。 做自媒体之所以要进行文案提取&#xff0c;有以下重要原因&#xff1a; 首先&#xff0c;提高效率。通过文案提取&#xff0c;可以快速获取关键信息&#xff0c;避免在无关紧要的内容上浪费时间&#xff0c;从而…

OpenEuler安装

1.下载镜像文件 2.新建虚拟机 版本选替他linux5.x内核64位 内存选4G 磁盘大小选40GB 内存和磁盘大小不能按默认&#xff0c;不然会很卡甚至没反应 优先使用英语 安装目的地一开始会有警告标志&#xff0c;点进去点完成 输入密码时不能太短还要保证拥有至少三种字符类型 等待安…

【数据结构】AVL树——平衡二叉搜索树

个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 祝福语&#xff1a;愿你拥抱自由的风 目录 二叉搜索树 AVL树概述 平衡因子 旋转情况分类 左单旋 右单旋 左右双旋 右左双旋 AVL树节点设计 AVL树设计 详解单旋 左单旋 右单旋 详解双旋 左右双旋 平衡因子情况如…

基于微信小程序+ JAVA后端实现的【微信小程序跑腿平台】设计与实现 (内附设计LW + PPT+ 源码+ 演示视频 下载)

项目名称 项目名称&#xff1a; 《微信小程序跑腿平台的设计与实现》 项目技术栈 该项目采用了以下核心技术栈&#xff1a; 后端框架/库&#xff1a; Java, SSM框架数据库&#xff1a; MySQL前端技术&#xff1a; 微信小程序, HTML…&#xff08;其它相关技术&#xff09; …

.BFS.

BFS &#xff08;Breadth-First Search&#xff09;是一种用于遍历或搜索树&#xff08;tree&#xff09;或图&#xff08;graph&#xff09;的算法。 这个算法从根&#xff08;或某个任意节点&#xff09;开始&#xff0c;并探索最近的邻居节点&#xff0c; 然后再探索那些节点…

adb的常见操作和命令

最近学习adb的时候&#xff0c;整理了一些adb的使用场景&#xff0c;如&#xff1a;adb与设备交互&#xff0c;adb的安装、卸载&#xff0c;adb命令启动&#xff0c;通过命令清除缓存&#xff0c;文件传输和日志操作。 adb的两大作用&#xff1a;在app测试的时候可以提供监控日…

如何高效测试防火墙的NAT64与ALG应用协议转换能力

在本文开始介绍如何去验证防火墙&#xff08;DUT&#xff09;支持NAT64 ALG应用协议转换能力之前&#xff0c;我们先要简单了解2个比较重要的知识点&#xff0c;即&#xff0c;NAT64和ALG这两个家伙到底是什么&#xff1f; 网络世界中的“翻译官” - NAT64技术 简而言之&…

【Linux安全】iptables防火墙(二)

目录 一.iptables规则的保存 1.保存规则 2.还原规则 3.保存为默认规则 二.SNAT的策略及应用 1.SNAT策略的典型应用环境 2.SNAT策略的原理 2.1.未进行SNAT转换后的情况 2.2.进行SNAT转换后的情况 3.SNAT策略的应用 3.1.前提条件 3.2.实现方法 三.DNAT策略及应用 1…

学习笔记——数据通信基础——数据通信网络(网络工程师)

网络工程师 网络工程&#xff0c;就是围绕着网络进行的一系列的活动&#xff0c;包括∶网络规划、设计、实施、调试、排错等。网络工程设计的知识领域很宽广&#xff0c;其中路由和交换是计算机网络的基本。 网络工程师∶是在网络工程领域&#xff0c;掌握专业的网络技术&…

Go 使用 RabbitMQ---------------之一

RabbitMQ 是一种消息代理。消息代理的主要目的是接收、存储并转发消息。在复杂的系统设计和微服务架构中,RabbitMQ 经常被用作中间件来处理和转发系统之间的消息,以确保数据的一致性和可靠性。正是因为提供了可靠的消息机制、跟踪机制和灵活的消息路由,常常被用于排队算法、…

SAP PP学习笔记 - 错误 CX_SLD_API_EXCEPTION - Job dump is not fully saved (too big)

我这个错误是跑完MRP&#xff0c;然后在MD04查看在库/所有量一览&#xff0c; 点计划手配&#xff08;Planned order 计划订单&#xff09;生成 制造指图&#xff08;Production order 生产订单&#xff09;&#xff0c; 到目前这几步都OK&#xff0c;然后在制造指图界面点保…

View->Bitmap缩放到自定义ViewGroup的任意区域

Bitmap缩放和平移 加载一张Bitmap可能为宽高相同的正方形&#xff0c;也可能为宽高不同的矩形缩放方向可以为中心缩放&#xff0c;左上角缩放&#xff0c;右上角缩放&#xff0c;左下角缩放&#xff0c;右下角缩放Bitmap中心缩放&#xff0c;包含了缩放和平移两个操作&#xf…

Golang | Leetcode Golang题解之第118题杨辉三角

题目&#xff1a; 题解&#xff1a; func generate(numRows int) [][]int {ans : make([][]int, numRows)for i : range ans {ans[i] make([]int, i1)ans[i][0] 1ans[i][i] 1for j : 1; j < i; j {ans[i][j] ans[i-1][j] ans[i-1][j-1]}}return ans }

NXP i.MX8系列平台开发讲解 - 3.12 Linux 之Audio子系统(一)

专栏文章目录传送门&#xff1a;返回专栏目录 目录 1. Audio 基础介绍 1.1 音频信号 1.2 音频的处理过程 1.3 音频硬件接口 1.3 音频专业术语解释 2. Linux Audio子系统介绍 3. Linux Audio子系统框架 Linux嵌入式系统中的音频子系统扮演着至关重要的角色&#xff0c;它涉…

Vue3+vite项目中使用mock模拟接口

安装依赖 分别安装vite-plugin-mock跟mockjs两个插件 npm install -D vite-plugin-mock mockjs vite.config.ts中添加配置&#xff0c;主要是红色标记的配置 注意此处如果配置出错可能是vite-plugin-mock依赖的版本有问题&#xff0c;重新安装一下依赖指定版本即可&#xf…