关于数据库运维系统的一些思考

news2024/9/23 7:22:05

这是学习笔记的第 2461篇文章

15d1b94c6c22b9be3cbbcbe7a2c9ab31.gif

  前段时间整理了一下数据库运维系统的一些内容,比自己预期的要难一些。我来简单回顾下一些参考点。 

一、立足当下,混沌之中梳理问题

   通常我们可以会问为什么,即为什么要做数据库运维系统,但是我们先放一放,不用完全从0到1的思考,而是立足当下,当前的数据库运维系统到底有什么问题?

   零零散散收集上来几十条,我重新组织整理,按照大的维度拆分后,又重新组织和补充了下,这是一个抽象提炼到补充完善的过程。

cac2625a06915ebbe7ea8b899608c357.png

大体来说,存在4个主要问题,包括缺少整体规划和步调、运维服务可用性不够,缺少开发规范和流程约束、思想意识不对齐

小结:但凡经过了一定的阶段之后,总是有好有坏,有各式各样的问题,我们接下来需要明确目标和范围。 

、从宏观,微观和岗位属性来理解为什么要做数据库运维系统

宏观

宏观层面,数据库的相关服务管理模式也在从运维视角逐步转化为运营视角,公有云毫无疑问早就买迈过了这一步。运维视角大体是从稳定、安全、高效来着手的,而运营视角则更多是从质量、效率和成本这几个维度来考量的。维度不同,目的不同,所做的事情就大大不同。 

微观

从微观层面,其实要做数据库运维系统,我们都是带着一些私心的。第一是能够让DBA以研发的标准来要求和约束自己,能够形成研发流程和规范闭环,实现可持续的管理模式。第二可以形成可复用的服务模块,具备可扩展性;第三是提升个人和团队能力和成就,向最基本的研发标准能力对齐

    所以微观看起来,更多是在研发质量规范的基础上,提高个人成就。

岗位属性认知偏差

岗位属性偏差是一直以来在逃避的概念和认知。这里有几点需要纠正下。

  • 数据库服务化开发不是数据库方向的最核心目标,不是最核心的目标,也即意味着有更重要的事情需要做,对于这一点有几点可以补充理解

  • 数据库服务化重要,这个事情是由专业研发来做是不是比DBA来做更专业,实际上有些公司从组织结构上已经是这样的分工了

  • 目前很多公司没有数据库运维开发的专岗,在中小型的公司里面,可能还是稳定性保障需求,至于实现方式。。。

  • 不是我想干什么,而是基于当前的痛点和需求来明确接下来重点需要解决的问题有哪些,通常我们对于服务化开发的理解是更偏向于自我实现的视角

  • 研发侧的需求导向,研发侧的需求目前主要以效率为主,不大可能会经常提出挑战性的问题和任务;而要使得需求升级,让研发有更高的期待,这个还有很长的路要走

三、回顾问题和需求,数据库运维系统需要解决哪些问题

这个时候可以把刚刚整理的问题放出来了,做一下细化和补充。

缺少整体规划和步调

  • 对于服务模块的边界模糊,后续的扩展和迁移复杂度高

  • 做的工作没有重心和整体步调,碎片化开发导致业务价值不高

  • 服务化概念泛化,导致这项工作持续没有阶段性成长

  • 对于专业技能的追求过于理想化,脱离了初衷

  • 基于需求被动支持,需求边界不够清晰

运维服务可用性不够

  •       新旧运维系统并存,功能割裂集成复杂度较高

  • 发布流程影响后端进行中的任务和前端业务

  • 运维任务管理不可控

  • 目前是串行模式管理,系统并发、吞吐率存在瓶颈

缺少开发规范和流程约束

  •       重复造轮子,开发效率可控,复用度不够

  • 命名规范不统一,后端服务开发风格差异化导致集成复杂度高

  • 接口规范和接口模式不统一,后续的改造和迁移成本高

  • 研发流程还不够标准化,需求管理和bug管理没有形成闭环

思想意识不对齐

  •      对于基础建设不够重视,当前大家关注的更多是解决自己的问题而不是全局的问题

  • 运维模式依赖控制台,后续如果转换为运维原子操作,思想意识还没有转换过来

  • 对于专业研发的成长动力不足,被专业研发替代和降维打击的风险很高

四、明确发展步调和阶段

我盘点了下行业里面对于运维系统的发展阶段,大家的认知和定义偏差还是挺大的,大体有这样的一些阶段定义:

  • 脚本化、工具化、产品化、自助化、自动化

  • 流程化、规范化、可视化、自助化、智能化

  • 脚本化、平台化、自动化、智能化

  • 刀耕火种的石器时代、标准化和系统化、融合智能化

我们按照规模和后续的演进方向做了下聚焦,步调定为了:脚本化、平台化、自动化、智能化

五、数据库运维系统的划分

整体上把数据库运维服务分成了4个部分,分别是RDS自助平台,DBA挂历平台,基础数据平台和数据分析平台,底层的基座是基础工具和服务。

9b637599fbef8476a158d2390cac199c.png

这样的一个好处是可以把服务做解耦和拆分,比如基础数据平台的变动相对较小,则管理平台内部功能的迭代不会影响对外的RDS自助平台。 

数据分析平台是面向未来的一种规划,对于数据分析的潜在价值和模型构建,需要提前规划出一个摊子,最后这部分的工作可以反哺DBA管理平台和RDS自助平台。 

如果把这个图展开和细化,我做了初步的一个设计图,其中蓝色部分是偏运维层面,而绿色部分则是偏运营层面。

f1aed38c620117b07ec315b3cd27e3ce.png

其中DBA管理平台是偏后端的服务,对于这个服务本身也需要认真规划,我的设计中是考虑了服务层次,会按照平台层,架构层,实例层和基础资源层4个层面来设计,平台侧主要是提供一个统一的数据存储平台对外服务,架构层则主要包括高可用架构,水平扩展架构和架构变更等,实例层主要包括实例管理和监控报警等基础运维服务,基础资源层主要包括资源管理,容量管理等。 

999c8a2666db1ca65980c9b87c8576d7.png

拆解到这里了,节后我们会把一些工作落实下去,欢迎大家多多交流。

各大平台都可以找到我

  • 微信公众号:杨建荣的学习笔记

  • Github:@jeanron100

  • CSDN:@jeanron100

  • 知乎:@jeanron100

  • 头条号:@杨建荣的学习笔记

  • 网易号:@杨建荣的数据库笔记

  • 大鱼号:@杨建荣的数据库笔记

  • 腾讯云+社区:@杨建荣的学习笔记

热文:

新数据库时代,DBA 发展之路该如何选择

我们为什么在MySQL中几乎不使用分区表

《大江大河2》最触动我的一段经典对话

如何优化MySQL千万级大表,我写了6000字的解读

一道经典的MySQL面试题,答案出现三次反转

换个角度看人生

拉里·佩奇(Larry Page)的伟大归来

美女主持直播,被突发意外打断!湾区网友却高喊: 我懂!超甜

8b642282611242b6ad9532afa0d31cf0.gif

QQ群号:763628645

QQ群二维码如下, 添加请注明:姓名+地区+职位,否则不予通过

在看,让更多人看到

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

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

相关文章

决策分析——层次分析法

工程测量与经济决策方案 决策分析——层次分析法 一、描述 层次分析法的基本原理:根据问题的性质和要达到的总目标,将问题分解为不同的组成因素,并按照因素间的相互关联影响以及隶属关系将因素按不同层次聚集组合,形成一个多层次…

NUCLEO-F411RE RT-Thread 体验 (8) - GCC环境 TIM定时器的驱动移植以及基本使用

NUCLEO-F411RE RT-Thread 体验 (8) - GCC环境 TIM定时器驱动移植与基本使用 驱动移植 定时器驱动文件位于drv_hwtimer.c中,对应components层的文件位于rt-thread/components/drivers/hwtimer/hwtimer.c中。 修改Makefile,将其编译进去。 在rtconfig.h…

Xception算法解析-鸟类识别实战-Paddle实战

文章目录 项目背景一、理论基础1.前言2.设计理念2.1 多尺寸卷积核2.2 点卷积2.3 卷积核替换2.4 Bottleneck2.5 深度可分离卷积(Depthwise Separable Conv) 3.网络结构4.评估分析 二、数据预处理三、数据读取四、导入模型五、模型训练六、结果可视化七、个体预测结果展示总结 项…

BLE蓝牙模块应用|蓝牙MAC地址二维码扫描打印解决方案

在智能穿戴、智能安防领域,用户需要通过蓝牙MAC地址来完成产品与APP的绑定。为简化产品的使用和管理,厂家会采用蓝牙MAC地址二维码扫描打印解决方案,将蓝牙MAC地址打印成二维码并贴在产品的包装盒或者产品外壳上。本篇带大家了解一下蓝牙MAC地…

基于Java德云社票务系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

干货 | 电力数据流通使用模式及安全指南

以下内容整理自清华大学《数智安全与标准化》课程大作业期末报告同学的汇报内容。 一、电力数据及流通简介 电力数据的流通整体环节也是它生命的全周期。 电力用户大体可以分为四类,分别是个人,工农业企业,商业建筑以及城市基建,这…

火山引擎 Dataleap 数据质量解决方案和最佳实践(一):数据质量挑战

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 什么是数据质量 广义上来说,数据质量的定义是数据满足一组固有特性(质量维度)要求的程度。业界通常有 6 个维度: 完…

语法降级与Polyfill:消灭低版本浏览器兼容问题

提到前端编译工具链方面,可能大家最新想到的是诸如babel/preset-env、core-js、regenerator-runtime等工具。不过,我们今天要讲的是官方的 Vite 插件vitejs/plugin-legacy,以及如何将这些底层的工具链接入到 Vite 中,并实现开箱即…

【强化学习】——Q-learning算法为例入门Pytorch强化学习

🤵‍♂️ 个人主页:Lingxw_w的个人主页 ✍🏻作者简介:计算机研究生在读,研究方向复杂网络和数据挖掘,阿里云专家博主,华为云云享专家,CSDN专家博主、人工智能领域优质创作者&#xf…

神经网络:参数更新

在计算机视觉中,参数更新是指通过使用梯度信息来调整神经网络模型中的参数,从而逐步优化模型的性能。参数更新的作用、原理和意义如下: 1. 作用: 改进模型性能:参数更新可以使模型更好地适应训练数据,提高…

python学习——pandas统计分析基础

目录 pandas统计分析基础1. Series数据2.文件读取csv文件Excel文件 3.DataFrame连接数据库读取数据库存入数据库DataFrame的属性访问DataFrame中的数据【实例1】info详细信息和describe描述统计分析【实例2】 排序【实例3】 布尔索引,条件索引【案例】修改数据 3.描…

LIBSVM与LIBLINEAR支持向量机库对模式识别与回归的可视化代码实践

支持向量机(SVM)是一种流行的分类技术。虽然提出时间到现在有70来年了,但在90年代获得了很好的发展和扩展,在人像识别、文本分类、手写字符识别、生物信息学等模式识别问题中有得到应用。然而,对于不熟悉SVM的初学者来说,往往会因…

ThreadPoolExecutor解读

目录 线程池状态 构造方法 newFixedThreadPool newCachedThreadPool newSingleThreadExecutor 提交任务 关闭线程池 其它方法 线程池状态 ThreadPoolExecutor 使用 int 的高 3 位来表示线程池状态,低 29 位表示线程数量 状态名 高 3 位 接收新任务 处理…

JavaScript ES10新特性

文章目录 导文Array.prototype.flat()和Array.prototype.flatMap()Object.fromEntries()String.prototype.trimStart()和String.prototype.trimEnd()格式化数字动态导入可选的catch绑定BigIntglobalThis 导文 JavaScript ES10,也被称为ES2019,引入了一些…

javascript被禁用怎么办?怎么启用?||如何解决javascript:void(0)的问题?

javascript被禁用怎么办?怎么启用? 有些小伙伴可能因为浏览器弹窗的凌乱而感到烦恼,想要通过浏览器禁用JavaScript的方式来避免这些广告。有些小伙伴则是因为设置了不知名的设置导致JavaScript被禁用,影响日常的使用。接下来的这…

Vue3的计算属性和监听属性

目录 computed 语法介绍 简写版 完整版 watch 介绍 监听ref式数据代码示例 监听reactive式数据 watchEffect函数 computed 语法介绍 与Vue2.x中computed配置功能一致 import {computed} from vuesetup(){...//计算属性——简写let fullName computed(()>{return per…

【kubernetes】部署kubelet与kube-proxy

前言:二进制部署kubernetes集群在企业应用中扮演着非常重要的角色。无论是集群升级,还是证书设置有效期都非常方便,也是从事云原生相关工作从入门到精通不得不迈过的坎。通过本系列文章,你将从虚拟机准备开始,到使用二进制方式从零到一搭建起安全稳定的高可用kubernetes集…

ffmpeg调整音频音量踩坑

前一阵用Flutter结合ffmpeg做了一个音视频合并功能,记录一下遇到的问题。 合并方法 首先是音视频合并命令: ffmpeg -i input.mp4 -i input.mp3 -filter_complex "[1:a]adelay0s:all1[a1];[a1]amixinputs1[amixout]" -map 0:v:0 -map "…

Ts系列之条件类型

Ts系列之条件类型 Ts系列之条件类型前言一、初遇二、条件判断三、待补充 Ts系列之条件类型 前言 本片文章主要对ts条件类型的用法做一个讲解。 一、初遇 1、首先我们来看看一个小例子: interface Person {name: string;age: number; } interface Son extends P…

神经网络:梯度计算

在计算机视觉中,梯度计算是一项关键任务,它在优化算法中扮演着重要的角色。梯度表示函数在某一点上的变化率,可以指导模型参数的更新,使得模型逐步接近最优解。下面我将详细解释梯度计算的作用、原理和意义。 作用: 梯…