zoukankan      html  css  js  c++  java
  • 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直播与回放技术
    【远程医疗】智能导诊技术方案

    技术微信群:
    加微信:wonter 发送:技术Q
    医疗微信群:
    加微信:wonter 发送:医疗Q
    更多文章关注公众号:

  • 相关阅读:
    根据中国气象局提供的API接口实现天气查询
    小程序——云函数发送请求
    apifm-wxapi API工厂
    首次使用 linux 阿里云服务器,入门及使用
    Android立体旋转动画实现与封装(支持以X、Y、Z三个轴为轴心旋转)
    Android来电监听和去电监听
    Android 源码下载方法(Git 方式clone)
    HandlerThread 创建一个异步的后台线程
    Android Toast cancel和show 不踩中不会知道的坑
    PopupWindow 点击外部和返回键无法消失背后的真相(setBackgroundDrawable(Drawable background))
  • 原文地址:https://www.cnblogs.com/Javame/p/15005017.html
Copyright © 2011-2022 走看看