【老王公众号】

FaaS 基于多租户技术 SaaS平台设计

多租户技术(英语:multi-tenancy technology)或称多重租赁技术,是一种软件架构技术,它是在探讨与实现如何于用户的环境下共用相同的系统或程序组件,并且仍可确保各用户间数据的隔离性。 多租户简单来说是指一个单独的实例可以为个组织服务。

技术离不开生活,技术源于生活

房东有一套两室一厅的房子,房东和两个租户分别签有合同,合同内容包含租户拥有哪个房间、期限与其房东的授权证明。

A租户是一对小夫妻,B租户是一个刚毕业的单身大学生,A租户在自己的房间有自己的角色(妻子与丈夫),B租户同样在自己的房间拥有自己的角色(单身狗),两个租户都与房东有关系,但俩个租户之间却没有任何关系。

多租户技术特点

1.多个租户共享平台。

2.租户之间数据隔离。

3.租户之间发布更新互不影响。

4.签订合约租户无线扩展

FaaS介绍

微服务(MicroService)是以专注于单一服务/功能的小型单元块为基础,利用模块化的方式组合成复杂的大型应用服务。

FaaS是Function as a Service的缩写,可以简单理解为功能服务化。FaaS提供了一种比微服务更加服务碎片化的软件架构范式。FaaS可以让研发只需要关注业务代码逻辑,不再关注技术架构。

例如:FaaS提供“选择工作流模板”、“启动工作流”、“完成流程”、“查看工作流状态“功能,当触发“启动工作流”事件后,再研发所需的业务代码。业务与架构分离,让专业更加专业。

FaaS特点

无状态     目的:业务隔离

1、组件业务配置抽离,脚手架工程使用则配置。

2、项目适合即使用

脚手架工程pom.xml引入便使用

脚手架     目的:自定义模版,快速集成

版本化     目的:多元化的需求变更互不影响

通过FaaS将架构分层

前端:

组件研发完成上传npm仓库,并提供组件使用说明。注意:同一类业务封装成一个插件,高内聚低耦合原则。

脚手架研发引用组件,并根据组件使用说明向组件传递参数。

并不是所有功能页面全部使用远程组件开发,只有可重复利用的页面使用该模式。

后端:

FaaS组件

提供功能即服务的组件,实现插入即可使用。

MS服务

微服务层,通过脚手架使用FaaS组件,对外提供单一服务。

WS组件

消费者层,用于消费MS服务,对外提供具体的业务实现。注意:该WS不直接对外提供服务,需打成jar包发布到maven私服上。

WS服务

脚手架工程,直接装配WS组件。同时也可以实现特性业务研发。

基础功能介绍

应用注册

就像是将每个房间安装完锁后,把钥匙交给房东。

申请应用

租户选择房间,并向房东申请签订合同。

授权应用

租户和房东签订合同,确定那个房间(钥匙),什么期限。

数据授权

只有签订合同租户才享有房间内物品使用权。

应用隔离

每个房间互不干涉

权限管理

用户有用户的权限、房东有房东权限、房间有房间的权限,三者不不干涉。

 

房间(平台)

 

一个房间对应一个平台(医生端、患者端、SaaS端),同样也可以是一个应用(预约挂号、随访问卷),房间只需要关联一个应用而已。同一个房间却可以被多个客厅关联,通过关联关系区分房间属性(所属)。且房间拥有独立入口。

 

 

应用(菜单首页)

 

所有应用菜单统一挂载在应用商城,应用商城是个房间。创建房间时可选择应用,不选则默认应用。有了应用后,通过权限功能给组织角色授权。

 

 

客厅(项目)

 

一个客厅代表一个项目,客厅是一个项目的门户,通过客厅可以展示与客厅关联的每一个房间。客厅默认关联应用商城(房间),其他房间、应用可等创建客厅后登录客厅在应用商城里下载。创建客厅将自动创建管理员帐号密码及初始化角色。

拓展内容:客厅不作为根节点,客厅之上也许还有房东,一个房东可以关联多个客厅。

 

 

钥匙(鉴权与重定向)

 

每个房间都会是一个独立的个体,插拔即可用。不会限制团队、语言,只需要提供鉴权机制与鉴权后的重定向路径即可。用户想进入房间,首先需要鉴权,通过后通过钥匙打开房门地址。

 

 

合同(用户APP记录)

 

用户从应用商城下载应用的记录。

 

后续设计 待续 关注 !

推荐阅读 :

聊平台,先谈主数据
聊平台,再谈元数据
聊平台,需谈数据元
医院信息集成平台(ESB)数据集成建设方案【远程医疗】互联网医院 卫健委数据上报平台技术方案
【技术选型】你的公司,你的项目真的适合微服务吗?
【划划重点】论大数据中主数据的重要性
【视频问诊】ffmpeg+HLS直播与回放技术
【远程医疗】智能导诊技术方案

 

posted @ 2021-07-13 09:26  CTO老王  阅读(897)  评论(0编辑  收藏  举报