参考阿里云DMS快速开发数据管理平台

每个公司基本都有自己的各种运维管理平台,常见的比如 CMDB,发布系统,监控系统,日志系统,工单系统,任务调度,CI/CD,私有云等等;跟数据库相关的也会有内部 RDS 平台,或者数据库管理平台,数据管理平台等等。

如果做内部 RDS 基本参考公有云设计就可以了,各类数据库作为一级节点,节点基本包括监控告警、日志管理、安装、备份恢复、账号管理、高可用管理、升级扩容、容量管理等等。当然,这里每一个功能点都需要精细化管理,甚至需要独立的服务或平台,我们也有微服务。废话不多说了,这篇文章不讨论什么方法论。

说点数据管理平台,面向用户(多数情况是公司内部人员),功能基本包括:工单、审批流、权限管理、数据查询、数据导出、脱敏、审计、SQL审核、SQL执行、SQL优化等等;有需要你也可以加入任务调度、第三方工具什么的。

我个人之前是二开 Yearning(如果你还不知道,可以去 GitHub 看看哦,感谢作者) 在公司使用,后面用了阿里云 DMS 服务,由于是商业版,需要满足各种场景,功能相对来说自然强大,但很多功能可能用不到。另外,由于灵活性足够导致使用复杂度提高很多,两者不好平衡。透明度也不够,比如做 DDL 相关的,现在不知道好点了没有。

总结一些常用的功能(其余看阿里云官网):
基本支持了阿里云家族90%数据产品(SQL审核引擎也都支持)
查询够简便好用,统一了所有数据库的使用方式;各种流程处理和 UI 目前来看相对比较简洁方便;前端SQL自动补全做的完善(其余数据库不知道做了没有)
只要需要审批的地方都可以自定义自己的审批流,审批流是嵌套到安全规则里面,安全规则是设置在数据库实例上面
DML 支持无锁变更(大事务拆分),DDL 支持无锁变更(类似 GHOST)
有安全规则的概念,每个不同的数据库实例可以指定不同的安全规则,安全规则主要控制资源对象审批流程,能执行的命令,以及 DDL 审核规则和 DDL 研发流程(研发流程是指可以自由组合不同环境成为一个工作流),大概工作模式图如下:
参考阿里云DMS快速开发数据管理平台_第1张图片

进入正题,参考阿里云 DMS 这套设计模式和用户交互模式开发一套适合自己公司使用的系统,主要写一些实用的功能,太复杂且用的不多的功能就算了(主要疫情期间在家办公一天可以工作N小时码出来的代码,都是业务逻辑代码,整体毫无参考价值)。

系统是前后端分离,前端使用的 Vue 的 iview-admin,后端 Django DRF 框架,想着后面后端如果换到 Go 或者 FastAPI 框架会方便很多。

登录什么的就不用介绍了,都是正常的前后端系统常用的 Token 机制验证,支持用户密码登录和企业微信扫描登录。

登录验证通过之后,就会进入到工作台,截图如下:
参考阿里云DMS快速开发数据管理平台_第2张图片
看图应该就看出来,工作台主要提供查看工单相关的,比如待处理工单不为 0 就表示有你需要审核的工单了,点击每个区域都会进入对应的页面。

点击进入到待处理工单如下:
参考阿里云DMS快速开发数据管理平台_第3张图片
好像也没什么好说的。

系统管理部分都是一些常规功能,截图如下:参考阿里云DMS快速开发数据管理平台_第4张图片
实例管理就是添加各种数据库的,比如支持 MySQL、MongoDB、Redis、ADB 之类的。点击实例的库会进入到 schema 管理界面,如下图:
参考阿里云DMS快速开发数据管理平台_第5张图片
schema 管理界面主要设置 schema 的 owner 和描述的。为什么要设置schema owner呢?owner 有这个库的所有权限,待会下面说到审批流,审批流可能也会用到库的 owner,比如权限审核和 SQL 审核需要库 owner 审批。

添加实例表单如下:
参考阿里云DMS快速开发数据管理平台_第6张图片
除了一些常规的设置之外,可以设置这个实例标识(读、写、读写),用来控制操作的;还有选择这个库的 DBA,库 DBA 的设置会继承到 schema 上面充当 schema 的 owner 使用。另外就是设置实例的安全规则了。在系统管理部分可以看到有安全规则菜单,那里就是编写各种数据库的安全规则的。

还有各种查询导出超时时间设置和条数限制的设置,默认启用实例设置的这些参数;当然,你也可以在用户上面设置这些参数,可以选择调整用户参数的优先级高于实例。

再就是敏感列表菜单了,主要用来设置敏感表和敏感列的,被设置为敏感表和敏感列默认用户是没有权限查询的,比如针对性申请权限才行(权限申请待会再说)。
参考阿里云DMS快速开发数据管理平台_第7张图片
我们也是支持自定义审批流的,同样,审批流也是设置在安全规则里面的。首先定义审批节点,默认 Admin,DBA 和 Owner 是系统定义的,这里的 Owne 就是 schema 的 owner 了,其余是可以自定义添加的,如下图:
参考阿里云DMS快速开发数据管理平台_第8张图片
然后把审批节点串联起来就是一个审批流模板了,定义了谁先审批谁后审批,如下图:
参考阿里云DMS快速开发数据管理平台_第9张图片
安全规则,用来定义审批流,比如申请 schema 的审批流程,测试环境不需要审批,敏感表敏感列的审批流程,申请 owner 的审批流程等等;还有定义命令黑白名单,比如 SQLConsole 能执行什么 Redis 命令或 SQL 语句,数据变更能执行什么 SQL 语句之类的。
参考阿里云DMS快速开发数据管理平台_第10张图片
权限申请,点击权限申请菜单会进入到权限申请页面,默认会列出一些你的权限工单,然后点击权限申请按钮会在当前页面打开菜单,如下:
参考阿里云DMS快速开发数据管理平台_第11张图片

点击权限申请,可以选择申请 schema、表、敏感字段、owner权限。
参考阿里云DMS快速开发数据管理平台_第12张图片
提交工单会在当前页面打开工单详情页面,如下图:
参考阿里云DMS快速开发数据管理平台_第13张图片
这里就可以看到工单流了,这里工单流的生成是根据你后端实例关联的安全规则再关联的审批流。

数据导入跟这个也差不多,不过多了预校验功能,比如 SQL 权限校验和语法校验之类的,如下图:
参考阿里云DMS快速开发数据管理平台_第14张图片
再来说一下查询,有权限的 schema,在顶部的搜索框可以看到,如下图:
参考阿里云DMS快速开发数据管理平台_第15张图片
支持关键字模糊匹配,过滤等操作。点击对应的 schema/db0 会进入到查询页面:
参考阿里云DMS快速开发数据管理平台_第16张图片
查询是下了不少功夫,比如 table 自适应,编辑器自适应、选中 SQL 执行、快捷键、多 tab、收藏管理、json 和 table 展示切换、表右键、拖拉中间线条保持编辑器和 table 自动伸展之类的,反正东西蛮多。
参考阿里云DMS快速开发数据管理平台_第17张图片
其中详情会展示表索引,字段,show create等信息。

点击 Redis,展示图如下:
参考阿里云DMS快速开发数据管理平台_第18张图片
也支持了 Redis 命令自动补全之类的。

还有 MongoDB 和其他数据库之类的,就不展示了。在查询页面也集成了小米的 SOAR 工具,上图。
参考阿里云DMS快速开发数据管理平台_第19张图片

参考链接 :
参考阿里云DMS快速开发数据管理平台 (一):https://mp.weixin.qq.com/s/Isi6ZqjRg_IdwR4eBmWHmQ

参考阿里云DMS快速开发数据管理平台(二): https://mp.weixin.qq.com/s/8DQi9qneDS-LubFxqFyC1A

你可能感兴趣的:(参考阿里云DMS快速开发数据管理平台)