SaaS架构设计
目录1、是什么2、优缺点3、成熟度模型3.1、成熟度级别3.1、成熟度演进方向3.1.1、多租户3.1.2、高性能3.1.3、可配置3.1.4、伸缩性1、是什么SaaS:就是软件即服务(Softwire as a Service),核心是将软件产品服务化,客户无需自建IT基础设施,通过按需购买,即可享受到软件产品及后续维护服务。2、优缺点优点:拿来即用,无需维护;按需购买,降低成本;随处可用;缺点
·
目录
1、是什么
SaaS
:就是软件即服务(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、可配置
适配租户个性化需求1、数据可配置
方案 | 描述 |
---|---|
定制字段 | 在一张表中为不同租户扩展个性化字段,如果字段不多可以接受,但是多了就会破坏表结构,冗余很多无意义的字段 |
预分配字段 | 建表时预留一些没有特殊含义的扩展字段。那么对于同一个预留字段,不同租户存储的数据值、类型都可能不一样,会导致在程序中做很多类型转换的处理 |
字段扩展表 | 新建一张扩展表,包含租户ID、表名、数据ID、字段名称、字段值、字段类型等,可以做无限个性化扩展。但是操作表关联复杂度会提升一些 |
2、功能可配置
维度 | 描述 |
---|---|
原子功能设计 | 独立的、有业务价值的单个功能,如用户查询、用户新增等 |
功能包设计 | 根据业务场景将原子功能组装成功功能模块,如用户管理、订单管理 |
产品包设计 | 将多个功能包组合为可销售的产品包,为租户提供完整的产品价值,如标准版、专业版本、钻石版 |
3、界面可配置
维度 | 描述 |
---|---|
菜单 | 按需配置菜单 |
页面 | 个性化登录页、主页 |
页面元素 | 风格、图标 |
4、流程可配置
维度 | 描述 |
---|---|
通用流程模板 | 预定义常规流程模板,如请假、入职 |
个性化流程 | 集成工作流引擎,租户可图形化配置对应流程 |
3.2.4、伸缩性
伸缩性(Scalaable)也可理解为性能、容量的扩展性,目的是能支持海量租户
维度 | 描述 |
---|---|
服务器扩展 | 分布式、集群 |
数据库扩展 | 主从读写分离、垂直业务切分、水平表切分 |
4、其他能力
4.1、安全性
1、应用安全
维度 | 描述 |
---|---|
身份认证 | 集中式认证(如OAuth2认证中心)、非集中式认证、混合认证 |
权限管理 | RBAC(Role-Based Access Control )基于角色的访问控制,权限与角色关联,角色赋给用户 |
日志记录 | 用户操作日志、API请求响应日志 |
应用监控 | 内存、磁盘、cpu、攻击监控 |
2、数据安全
维度 | 描述 |
---|---|
数据隔离 | 确保租户间数据无污染 |
数据加密 | 重要数据加密存储(如密码)、传输(如业务数据) |
数据脱敏 | 敏感字过滤(如黄赌毒)、关键字脱敏(如名称、证件号、手机) |
数据量监控 | 监控容量、及时扩容,确保系统稳定性 |
3、网络安全
维度 | 描述 |
---|---|
安全传输 | https、报文混合加密(如RSA+AES) |
攻击防御 | 防护墙、安全过滤器、黑白名单 |
网络监控 | 7*24监控,及时告警 |
4.2、开放平台
提供openAPI能力,进行输出
4.3、离线功能
需考虑页面本地缓存、数据本地存储、数据同步、数据提交冲突等问题
更多推荐
所有评论(0)