前段时间整理了一下数据库运维系统的一些内容,比自己预期的要难一些。我来简单回顾下一些参考点。
一、立足当下,混沌之中梳理问题
通常我们可以会问为什么,即为什么要做数据库运维系统,但是我们先放一放,不用完全从0到1的思考,而是立足当下,当前的数据库运维系统到底有什么问题?
零零散散收集上来几十条,我重新组织整理,按照大的维度拆分后,又重新组织和补充了下,这是一个抽象提炼到补充完善的过程。
大体来说,存在4个主要问题,包括缺少整体规划和步调、运维服务可用性不够,缺少开发规范和流程约束、思想意识不对齐。
小结:但凡经过了一定的阶段之后,总是有好有坏,有各式各样的问题,我们接下来需要明确目标和范围。
二、从宏观,微观和岗位属性来理解为什么要做数据库运维系统
宏观
宏观层面,数据库的相关服务管理模式也在从运维视角逐步转化为运营视角,公有云毫无疑问早就买迈过了这一步。运维视角大体是从稳定、安全、高效来着手的,而运营视角则更多是从质量、效率和成本这几个维度来考量的。维度不同,目的不同,所做的事情就大大不同。
微观
从微观层面,其实要做数据库运维系统,我们都是带着一些私心的。第一是能够让DBA以研发的标准来要求和约束自己,能够形成研发流程和规范闭环,实现可持续的管理模式。第二可以形成可复用的服务模块,具备可扩展性;第三是提升个人和团队能力和成就,向最基本的研发标准能力对齐
所以微观看起来,更多是在研发质量规范的基础上,提高个人成就。
岗位属性认知偏差
岗位属性偏差是一直以来在逃避的概念和认知。这里有几点需要纠正下。
三、回顾问题和需求,数据库运维系统需要解决哪些问题
这个时候可以把刚刚整理的问题放出来了,做一下细化和补充。
缺少整体规划和步调
运维服务可用性不够
缺少开发规范和流程约束
思想意识不对齐
四、明确发展步调和阶段
我盘点了下行业里面对于运维系统的发展阶段,大家的认知和定义偏差还是挺大的,大体有这样的一些阶段定义:
我们按照规模和后续的演进方向做了下聚焦,步调定为了:脚本化、平台化、自动化、智能化
五、数据库运维系统的划分
整体上把数据库运维服务分成了4个部分,分别是RDS自助平台,DBA挂历平台,基础数据平台和数据分析平台,底层的基座是基础工具和服务。
这样的一个好处是可以把服务做解耦和拆分,比如基础数据平台的变动相对较小,则管理平台内部功能的迭代不会影响对外的RDS自助平台。
数据分析平台是面向未来的一种规划,对于数据分析的潜在价值和模型构建,需要提前规划出一个摊子,最后这部分的工作可以反哺DBA管理平台和RDS自助平台。
如果把这个图展开和细化,我做了初步的一个设计图,其中蓝色部分是偏运维层面,而绿色部分则是偏运营层面。
其中DBA管理平台是偏后端的服务,对于这个服务本身也需要认真规划,我的设计中是考虑了服务层次,会按照平台层,架构层,实例层和基础资源层4个层面来设计,平台侧主要是提供一个统一的数据存储平台对外服务,架构层则主要包括高可用架构,水平扩展架构和架构变更等,实例层主要包括实例管理和监控报警等基础运维服务,基础资源层主要包括资源管理,容量管理等。