这是学习笔记的第 2184 篇文章
读完需要
9
分钟速读仅需5分钟
关于MySQL私有云平台的方案设计,最从开始要基于RDS的设计方式到现在的迭代,其实还是走过了一段旅程,也算是比较坎坷,我来总结一些思路。
1.首先是实例的概念解释:
通常和业务所说的实例和数据库的实例有一些差别,虽然粒度都是IP和端口。
从业务角度来说:
1)对于单实例环境,实例为单实例本身(IP/域名和端口)
2)对于主从环境,实例为相应的主库环境(IP/域名和端口,暂不可考虑读写分离);
3)对于集群环境,实例为相应的代理服务入口
如果仅存在一个代理,实例为代理IP/域名和端口
如果代理层实现负载均衡,则为相应的service_name和端口
从DBA的角度来说:
实例,主机,集群都是相对独立但又密切关联的模块。
1)对于单实例环境,实例为单实例本身(IP/域名和端口)
2)对于主从环境,实例为相应的主库和从库环境(IP/域名和端口);
3)对于集群环境,实例为相应的分片节点,包括分片节点主库和从库
2.然后是租户的概念:
租户这个概念该怎么理解,其实可以分很多维度,但是不过怎么来说,他需要有一个统一的业务属性,可以是项目经理,或者是业务部门管理者。
在数据库层面,理论上一个实例,多个实例都可以归属于一个租户,但是从数据库层面来说,建议租户的粒度可以细化到一个实例,一个实例下面有多个DB实现租户成员多元化管理。
租户管理在实例层面的管理都是基于实例这一个基础的维度。
有的同学可能会说租户是不是会很多,其实从使用来说,不会感觉到很多。
因为在一个用户登录之后,他能够看到的实例其实就已经做好了第一层的过滤,他看到的实例列表是有限的。而实例在业务层面的粒度其实和数据库层面的实例概念存在一些偏差,对于业务来说会屏蔽一些不必要的信息。要做某个数据库的管理,是基于某个实例而言,所以一个开发人员可以归属于多个租户,而一个实例下的数据库只能归属于一个租户。
2.然后是租户权限的设计:
权限体系的基础设计,我们可以需要做到租户层级的管理,同时也需要做到租户间的隔离性。
比如一个用户A请了一个实例,他是某某业务的负责人,那么这个用户A就是一个租户管理员,他创建实例的时候就会生成一条租户注册信息,同时会生成相应的租户账号信息,在这个基础上租户管理员(用户A)可以给其他租户成员(如用户B,用户C)等赋予相应的实例管理权限。
稍后可以进行新建数据库等操作,创建数据库后可以把租户下的数据库(比如数据库A,数据库B,数据库C)的相关权限赋予相应的租户成员,这样虽然都是一个租户内,但是他们的权限可以存在差异化。
整体的设计如下图所示:
要进行基于数据库的一些常规操作(比如创建表,修改数据等)时,租户成员的差异化就会显现出来了。
按照预设的场景,整个基础的管理部分,DBA可以提供后端的技术支撑,同时可以和业务操作紧密结合起来,这其中的一把尺子就是资源成本。
而DBA的服务就可以实现多样化。
基础服务有高可用,分布式,读写分离,备份恢复等,
业务服务有SQL审核,SQL慢日志优化,SQL自助优化,业务巡检和监控查询等。
订阅我的微信公众号“杨建荣的学习笔记”,第一时间免费收到文章更新。别忘了加星标,以免错过新推送提示。
7
近期热文
你可能也会对以下话题感兴趣。点击链接就可以查看。
使用Python分析北京积分落户数据,分析完我陷入了深思
MySQL的主键命名挺任性,就这么定了
华裔教授发现二次方程极简解法,我默默的做了下验算
回答:我不小心把公司的数据库给删了,该不该离职?
迁移到MySQL的业务架构演进实战
数据库修改密码风险高,如何保证业务持续,这几种密码双活方案可以参考
MySQL业务双活的初步设计方案
如何优化MySQL千万级大表,我写了6000字的解读
一道经典的MySQL面试题,答案出现三次反转
业务双活的数据切换思路设计(下)
业务双活的数据切换思路设计(一)
MySQL中的主键和rowid,看似简单,其实有一些使用陷阱需要注意
小白学MySQL要多久?我整理了10多个问题的答案
8
转载热文
你可能也会对以下话题感兴趣,文章来源于转载,点击链接就可以查看。
去IOE or Not?
拉里·佩奇(Larry Page)的伟大归来
《吊打面试官》系列-Redis基础
唯一ID生成算法剖析,看看这篇就够了
关于大数据运维能力的一些思考
DBA菜鸟的进化简史:不忘初心,记工作中踩过的三个坑
美女主持直播,被突发意外打断!湾区网友却高喊: 我懂!超甜