初代SAAS平台应用层架构设计
近期参与SAAS项目第一代应用设计,为满足整体灵活性,复用性和可定制化,得出如下应用层模型,希望能给大家相互参考学习,设计上有什么缺漏请多指教
核心思想
- 模块为最小化购买单位 例如商城模块 分销模块等
- 多个模块组合成为一个版本 例如基础版本 旗舰版等
- 每个模块都关联了对应的接口/页面路由 将对应的关系上报给配置中心
- 根据租户购买情况 得出用户有哪些模块的权限 进而每个用户显示不同的功能及权限 由租户网关统一校验
- 以此达成多租户共享同一套应用程序但各自使用不同的模块
应用层架构图
模块
- 模块是SAAS购买/赠送的最小单位 例如商城模块,活动模块等 每个模块都有对应的定价
- 一个模块可以配置这个模块包含了哪些页面和接口
- 每个模块启动时自动向配置中心提交自己归属的页面和接口 用于网关校验
- 模块是被定制化的最小单位,可标记这个模块在某个租户上是否被定制化,若是已定制化的标记,则路由到定制化后的服务上去,具体的接口和页面的配置也已定制化后的为准
版本
- 多个模块组合打包即成为一个版本
- 用户可以版本为单位进行购买 批量获得各个模块的权限
前台与后台
- 以微商城SAAS举例 给到消费者用的页面等为前台
- 商户管理店铺的端口为后台
配置中心
- 每个模块将其对应包含的接口和页面启动时上报到配置中心
统一租户网关
- 实现SSO登录及其校验
- 租户及租户的客户每次访问页面或调用接口时 读取配置中心配置 校验其是否有这个页面/接口的权限 决定是否放行
- 对租户的租约到期时间进行校验 若已到期或快要到期的 则跳转引导续费
- 判断该租户的模块是否被定制化 若已定制化 则转发到对应的定制化模块上
- 提供接口给租户查询自己拥有多少个模块及其页面和接口
功能页面
- 具体功能对应的页面则为功能页面 例如商城页面等
- 每个页面可能包含多个模块的功能 页面前端组件根据该租户已购的模块动态显示/隐藏对应的组件 实现租户页面动态显示
非功能页面
- 续费 充值 支付等页面为非功能页面
- 这类页面不用经过网关校验 属于路由白名单
通用模块
- 即无需购买都有的模块 例如账号密码管理 子账号管理等
- 对应的接口和页面都为非功能页面/接口
租户购买/续费
- 即记录该租户和具体的哪些模块的关联关系及其租约到期时间
- 视为该租户已经购入了这个模块
小节
整体租户使用时调用路径如下:
访问页面:
- 根据路由规则或读取得出该页面关联有多少哪些个模块
- 网关校验该租户是否有这个页面的权限 即该用户有无购入该页面关联的模块 有则放行
- 当前是否处在即将到期或已到期状态下 不是则放行
- 根据该租户购有的模块 动态显示页面上的组件 即页面上本可有但用户没有购买的组件则隐藏不显示
调用接口:
- 根据路由规则得出该接口关联在哪个模块
- 网关校验该租户是否有这个接口的权限 即该用户有无购入这个接口对应的模块 有则放行
- 当前是否处在即将到期或已到期状态下 不是则放行
以此应用架构下,新增功能时可以水平扩充多个模块并保持灵活的权限控制,并且支持小部分客户的定制化,做到定制化且不影响原有的非定制化的功能,缺点是租约网关负荷相对较大,需要使用缓存等减轻租约网关压力。
初代SAAS平台应用层架构设计相关推荐
- SaaS平台产品架构设计
当我们去搜索"架构",可以得到很多的架构图片,比如组织架构.业务架构.数据架构.技术架构.安全架构.产品架构.部署架构等. 什么是架构,通常大家说架构一般指软件架构,架构是指软件的 ...
- 大型 SaaS 平台产品架构设计
更多内容关注微信公众号:fullstack888 当我们去搜索"架构",可以得到很多的架构图片,比如组织架构.业务架构.数据架构.技术架构.安全架构.产品架构.部署架构等. 什么是 ...
- 从Watson看AI平台的架构设计
本文转自:https://blog.csdn.net/dev_csdn/article/details/78426133 摘要:本文分析IBM Watson在技术架构上所面临的问题及解决办法,总结了人 ...
- 谈一谈SaaS产品的架构设计
1. SaaS 是什么 从字面中理解SaaS的全称是Software as a service, 即软件即服务. 从服务模式来看,SaaS是一种软件授权和交付模式,以订阅模式代替传统授权模式,以集中式 ...
- 专访腾讯徐汉彬:日请求高达3.5亿+平台的架构设计及演变
专访腾讯徐汉彬:日请求高达3.5亿+平台的架构设计及演变 发表于11小时前| 2426次阅读| 来源CSDN| 3 条评论| 作者钱曙光 SDCCSDCC讲师专访腾讯徐汉彬架构WebPHP width ...
- GPS部标平台的架构设计(十)-基于Asp.NET MVC构建GPS部标平台
在当前很多的GPS平台当中,有很多是基于asp.NET+siverlight开发的遗留项目,代码混乱而又难以维护,各种耦合和关联,要命的是界面也没见到比Javascript做的控件有多好看,随着需求的 ...
- 主流物联网平台的架构设计思考
主流物联网平台的架构设计思考 物联网平台的总体架构 物联网平台的技术架构 用户级物联网平台的解决方案: 车联网平台的主流解决方案:
- 打造企业级云深度学习平台——小米云深度学习平台的架构设计与实现
作者:陈迪豪,小米深度学习工程师,负责小米云深度学习平台的架构和实现,目前专注于TensorFlow和Kubernetes社区. 责编:何永灿,欢迎人工智能领域技术投稿.约稿.给文章纠错,请发送邮件至 ...
- 论企业集成平台的架构设计
来自软考论文 论企业集成平台的架构设计 三.选择合适的应用集成平台 (介绍)目前,开放式(开源)企业应用集成的规范和平台的主流技术有两种: - 种是微软公司的COM+(组件对象模型)规范和Window ...
最新文章
- django源码笔记-【1】
- matlab 字符串替换
- 九度 1462:两船载物问题(01背包)
- Java知多少(96)绘图之设置字型和颜色
- IOS - 本地消息推送
- oracle 等待原因查找,查询引起锁等待的SQL语句
- 大数据对医学发展有什么影响
- SVM多分类的几种方式
- Python数据分析实例
- Facebook不上市纯属炒作
- 高通apq8096连接外网
- 人工智能时代已经到来,政务工业商业等各领域都将是刚需
- 启动solidworks时显示VBE6EXT.OLB不能被加载
- ZZ GP技术的展望——道生一,一生二
- 让我们看看往年的1024传智播客怎么安排的
- 常用数学公式,推导记录
- GPS定位为什么需要4颗以上卫星?
- 我厌倦玩计算机游戏了英语翻译,我喜欢玩电子游戏英文翻译,我喜欢电脑游戏怎么说...
- 2017-本命年里发生的那些事
- Markdown进阶