SaaS架构设计

目录

    • 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进行处理,非常感谢!

上一篇 2021年6月11日
下一篇 2021年6月11日

相关推荐