zoukankan      html  css  js  c++  java
  • #研发解决方案#iDB-数据库自动化运维平台

    郑昀 创建于2015/12/2 最后更新于2015/12/2

    关键词:数据库,MySQL,自动化运维,AutoDDL,刷库,帐号授权,审核,回滚

    提纲:

    1. 数据库自动化运维什么?别人家是怎么玩的?
    2. 我们打算做哪些特性?
    3. 我们的iDB

    iDB 是刘勤红部门推出的数据库自动化运维平台,它其实已经断断续续开发了几个月了,线上也跑了一段时间,最近又发布了新版本。版本迭代的主力是王晓华同学,李世杰也参与了一部分开发工作,曹富志和张永奎是需求方。

    iDB 的主要目的是解决绝大部分重复、复杂的数据库运维工作 ,满足业务对数据库信息查询和快速变更需求,借此提升研发效率,保证数据库操作符合审计要求,有可追溯的变更和审核日志。20151208Updated:更多技术细节请阅读iDB是如何运转的 一

    0x00,数据库自动化运维什么?别人家是怎么玩的?

    当数据库越来越多时,比如按业务垂直分库了,10个,50个,100个……

    当数据库关系越来越复杂时,比如 Cobar 水平拆库,从库分组,级联从库,合并库,比如某些索引要求只建在特定从库上……

    DBA 的日常管理,手速再快,也不得不希望有系统来帮忙,毕竟数据库拓扑建立起来后,很多操作都可以自动化完成。

     

    举个例子,工程上线前要开数据库访问帐号和权限。没有平台的话,那就得 DBA 一个一个去建,写库是 M 打头的帐号,读库是 S 打头的帐号,密码强度还得高。有了平台之后,DBA 只需要审核研发人员提的需求即可,系统自动化生成帐号密码,然后发邮件给申请人,或者将密码生成对称加密后的密文展示给申请人。

     

    再比如,刷库。DBA 刷库之前为安全起见,都会先备份,然后刷库,一旦刷库有问题需要回滚数据,至少有东西恢复。有了平台之后,研发人员提刷库脚本,DBA 审核,并设定执行时间,系统会自动备份数据,一旦有问题,DBA 点击回滚按钮,系统自动将数据刷回去。

     

    那么,别人家的数据库自动化运维平台都有什么特性呢?

    我们先来看一下美团,它的数据库自动化运维包括如下内容:

    美团,它的数据库自动化运维包括如下内容

    图1 美团的功能点

    可以看到,上图一些功能点如慢查,Processlist 等,我们是放在天机系统里的。

     

    同样是 AutoDDL(建库、建表及更改表字段定义和属性)功能。

    赶集的逻辑是:

    赶集的AutoDDL逻辑

    图2 赶集的AutoDDL

     

    美团的逻辑是:

    美团DDL逻辑

    图3 美团的AutoDDL

     

    新浪则:

    新浪iDB

    图4 新浪的AutoDDL

     

    对于线上数据订正(即刷库)功能。

    赶集的订正逻辑
    图5 赶集的订正逻辑

     

    对于线上数据查询功能。

    阿里的 iDB 界面如下所示:

    阿里的iDB

    图6 阿里iDB的线上数据查询

     

    对于备份还原功能。

    阿里的iDB备份管理

    图7 阿里iDB的备份管理

     

    还有人把数据库监控和报警做到这种系统里了。

    新浪的数据库监控

    图8 新浪的数据库监控

     

    大致如此,各个公司八仙过海各显其能,DBA 和研发运维的生产力大大提升。

     

    0x01,我们打算做哪些特性?

    我们的 iDB 有如下特性:

    • 已经上线的:
      • 线上帐号申请、审核和管理
      • 线上数据查询
      • 线上数据订正
      • AutoDDL
    • 着手在做的:
      • 自动识别数据库拓扑关系(记得吗,我们在天机系统里曾经做过)
      • 新建数据库实例
      • 备份管理
      • ……

     

    0x02,我们的 iDB

    首先,iDB 的用户角色分为研发人员和 DBA。首页会有一个任务导航,如下图所示:

    我们的iDB首页-Engineer版

    图9 云纵iDB首页-工程师的任务看板

    我作为 Engineer,登录 idcenter,跳到 iDB 后,可以:

    发起订正申请,个人帐号申请,工程帐号申请,DDL 申请,

    还可以:

    线上数据查询。

     

    我如果是 DBA,任务看板就变为:

    我们的iDB首页-DBA版

    图10 云纵iDB首页-DBA任务看板

    相对 Engineer,增加了:

    订正审核,帐号审核,DDL 审核,数据库组管理,任务管理等。

     

    简单介绍这么多,以后再介绍一些更高级的特性。再次感谢王晓华、刘勤红、曹富志、张永奎和李世杰!

    p.s.:云纵的 iDB 是我们自主开发的系统,只是 codename 与阿里的 iDB 一样。天机,鹰眼,也均如此,名字一样,但功能和实现是我们自己的脑力成果。
    更多技术细节请阅读iDB是如何运转的 一
     
    -EOF-
    欢迎订阅我的微信订阅号『老兵笔记』,请扫描二维码关注:
    老兵笔记订阅号二维码
    转载时请注明“转载自旁观者-博客园”或者给出本文的原始链接。
  • 相关阅读:
    KMP总结
    条件概率的计算
    EL和JSTL
    tomcat部署web项目
    web
    面试1
    面试可能会问的题
    简介
    建一个springboot项目
    刷题之牛客网
  • 原文地址:https://www.cnblogs.com/zhengyun_ustc/p/idb.html
Copyright © 2011-2022 走看看