目录
-
- 1、是什么
- 2、优缺点
- 3、成熟度模型
-
- 3.1、成熟度级别
- 3.2、成熟度演进方向
-
- 3.2.1、多租户
- 3.2.2、高性能
- 3.2.3、可配置
- 3.2.4、伸缩性
- 4、其他能力
-
- 4.1、安全性
- 4.2、开放平台
- 4.3、离线功能
1、是什么
:就是软件即服务(Softwire as a Service),核心是将软件产品服务化,客户无需自建IT基础设施,通过按需购买,即可享受到软件产品及后续维护服务。
2、优缺点
优点 |
缺点 |
拿来即用,无需维护;按需购买,降低成本;随处可用; |
客户数据安全性、敏感性问题; |
3、成熟度模型
3.1、成熟度级别
成熟度 |
可配置 |
高性能 |
伸缩性 |
L1 |
x |
x |
x |
L2 |
√ |
x |
x |
L3 |
√ |
√ |
x |
L4 |
√ |
√ |
√ |
L1是定制开发,与以前ASP架构类似
3.2、成熟度演进方向
多租户 高性能 可配置 可伸缩
3.2.1、多租户
Multi-Tenant,是SaaS架构的基本特征
模式 |
优点 |
缺点 |
独立数据库 |
数据隔离级别高;容易扩展个性化表结构;数据故障影响范围较小 |
维护成本、采购成本很高 |
共享数据库,隔离数据架构(schema) |
数据隔离基本较高;单个数据库可支持多租户,降低成本 |
跨租户数据统计难度提升;数据库故障会影响到多个租户 |
共享数据库,共享数据架构 |
维护成本、采购成本最低; |
数据隔离级别最低;开发设计时需多做数据安全隔离控制(tenant_id);数据故障容易影响所有租户 |
3.2.2、高性能
保证租户体验
维度 |
策略 |
Web层高性能 |
CDN、请求压缩、静态化、缓存 |
应用层高性能 |
缓存、异步 |
数据库高性能 |
合适的索引、避免复杂sql、避免大量数据表连接 |
3.2.3、可配置
适配租户个性化需求
方案 |
描述 |
定制字段 |
在一张表中为不同租户扩展个性化字段,如果字段不多可以接受,但是多了就会破坏表结构,冗余很多无意义的字段 |
预分配字段 |
建表时预留一些没有特殊含义的扩展字段。那么对于同一个预留字段,不同租户存储的数据值、类型都可能不一样,会导致在程序中做很多类型转换的处理 |
字段扩展表 |
新建一张扩展表,包含租户ID、表名、数据ID、字段名称、字段值、字段类型等,可以做无限个性化扩展。但是操作表关联复杂度会提升一些 |
维度 |
描述 |
原子功能设计 |
独立的、有业务价值的单个功能,如用户查询、用户新增等 |
功能包设计 |
根据业务场景将原子功能组装成功功能模块,如用户管理、订单管理 |
产品包设计 |
将多个功能包组合为可销售的产品包,为租户提供完整的产品价值,如标准版、专业版本、钻石版 |
维度 |
描述 |
菜单 |
按需配置菜单 |
页面 |
个性化登录页、主页 |
页面元素 |
风格、图标 |
维度 |
描述 |
通用流程模板 |
预定义常规流程模板,如请假、入职 |
个性化流程 |
集成工作流引擎,租户可图形化配置对应流程 |
3.2.4、伸缩性
伸缩性(Scalaable)也可理解为性能、容量的扩展性,目的是能支持海量租户
维度 |
描述 |
服务器扩展 |
分布式、集群 |
数据库扩展 |
主从读写分离、垂直业务切分、水平表切分 |
4、其他能力
4.1、安全性
维度 |
描述 |
身份认证 |
集中式认证(如OAuth2认证中心)、非集中式认证、混合认证 |
权限管理 |
RBAC(Role-Based Access Control )基于角色的访问控制,权限与角色关联,角色赋给用户 |
日志记录 |
用户操作日志、API请求响应日志 |
应用监控 |
内存、磁盘、cpu、攻击监控 |
维度 |
描述 |
数据隔离 |
确保租户间数据无污染 |
数据加密 |
重要数据加密存储(如密码)、传输(如业务数据) |
数据脱敏 |
敏感字过滤(如黄赌毒)、关键字脱敏(如名称、证件 、手机) |
数据量监控 |
监控容量、及时扩容,确保系统稳定性 |
维度 |
描述 |
安全传输 |
https、 文混合加密(如RSA+AES) |
攻击防御 |
防护墙、安全过滤器、黑白名单 |
络监控 |
7*24监控,及时告警 |
4.2、开放平台
提供openAPI能力,进行输出
4.3、离线功能
需考虑页面本地缓存、数据本地存储、数据同步、数据提交冲突等问题
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91563 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!