每个公司基本都有自己的各种运维管理平台,常见的比如 CMDB,发布系统,监控系统,日志系统,工单系统,任务调度,CI/CD,私有云等等;跟数据库相关的也会有内部 RDS 平台,或者数据库管理平台,数据管理平台等等。
如果做内部 RDS 基本参考公有云设计就可以了,各类数据库作为一级节点,节点基本包括监控告警、日志管理、安装、备份恢复、账号管理、高可用管理、升级扩容、容量管理等等。当然,这里每一个功能点都需要精细化管理,甚至需要独立的服务或平台,我们也有微服务?。废话不多说了,这篇文章不讨论什么方法论。
说点数据管理平台,面向用户(多数情况是公司内部人员),功能基本包括:工单、审批流、权限管理、数据查询、数据导出、脱敏、审计、SQL审核、SQL执行、SQL优化等等;有需要你也可以加入任务调度、第三方工具什么的。
我个人之前是二开 Yearning(如果你还不知道,可以去 GitHub 看看哦,感谢作者) 在公司使用,后面用了阿里云 DMS 服务,由于是商业版,需要满足各种场景,功能相对来说自然强大,但很多功能可能用不到。另外,由于灵活性足够导致使用复杂度提高很多,两者不好平衡。透明度也不够,比如做 DDL 相关的,现在不知道好点了没有。
总结一些常用的功能(其余看阿里云官网):
基本支持了阿里云家族90%数据产品(SQL审核引擎也都支持)
查询够简便好用,统一了所有数据库的使用方式;各种流程处理和 UI 目前来看相对比较简洁方便;前端SQL自动补全做的完善(其余数据库不知道做了没有)
只要需要审批的地方都可以自定义自己的审批流,审批流是嵌套到安全规则里面,安全规则是设置在数据库实例上面
DML 支持无锁变更(大事务拆分),DDL 支持无锁变更(类似 GHOST)
有安全规则的概念,每个不同的数据库实例可以指定不同的安全规则,安全规则主要控制资源对象审批流程,能执行的命令,以及 DDL 审核规则和 DDL 研发流程(研发流程是指可以自由组合不同环境成