闲话SAAS系统设计-概述

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 闲话SAAS系统设计-概述

1.1  SAAS概述

1.1.1   软件发展的4个阶段

1 项目式软件开发阶段——做项目

–  依客户需求定制开发

–  存在重复开发,开发成本过高的问题

•  2 套装式软件开发阶段——做产品

–  将软件作为产品开发,满足相似需求的用户

–  不可能通过产品满足所有用户的需求

•  3 平台化软件开发阶段——做平台

–  业务驱动的基于基础平台的软件开发

–  软件的升级和运营维护成本越来越高

•  4 社会化软件大开发阶段——做服务

–  以服务为导向的软件开发运营模式

–  SaaS模式应运而生

1.1.2   SaaS(Software as a Service软件即服务)

•      SaaS是一种软件交付模式,将软件以服务的形式交付给用户,用户不再购买软件,而是租用基于Web的软件,

并按照对软件的使用情况来付费

•  SaaS由应用服务提供(Application Service Provider,ASP)模式发展而来

–  SaaS与ASP的相同点

•  通过互联网提供,运营商负责软件的管理和维护

–  SaaS与ASP的不同点

•  ASP仅对用户提供定制化的,一对一的服务方式

•  SaaS一般以一对多的方式提供服务

•  SaaS支持可配置性和可伸缩性

1.1.3   SaaS 与云计算

1.png

1.1.4   SaaS的特性

•      互联网特性

–  SaaS应用一般通过互联网交付,用户仅需要浏览器或联网终端设备就可以访问应用

•  多租户特性

–  通过多租户模式实现多种使用方式,以满足不同用户的个性化需求

•  按需服务特性

–  支持可配置性和按使用付费,按用户需求提供服务

•  规模效应特性

–  一般面向大量用户提供服务,以取得规模效应和效益

1.2  SAAS成熟度模型

1.2.1   四级成熟度模型

 

可配置性

高性能

可伸缩性

特点

Level1

定制开发

×

×

×

设备托管

每个客户拥有单独代码,单独应用实例,功能定制开发(ASP)

Level2

可配置

×

×

设备共享,可配置化

每个客户拥有同一代码,单独应用实例,功能可配置

Level3

高性能的多租户架构(Multi-Tenant)

×

多租户(Multi-Tenant)、数据隔离、高性能

运行一个应用实例为所有客户服务,功能可配置

Level4

可伸缩性的多租户架构

支撑应用规模的增长

运行一个负载均衡的应用实例为所有客户服务,随用户及需求动态增减

1.2.2   四级成熟度模型解析

2.png

①      Level1定制开发

•      为租户单独定制开发应用。

•      与传统软件相比,主要体现在软件租用付费商业模式和托管运行运营模式的区别。

•      一般不涉及大的技术架构变化。

•      为提高应用运行效率,需要更有效地整合硬件资源。

②      Level2 可配置的多租户SaaS应用

•      采用统一开发的模式,所有租户使用相同的程序代码,但各租户分别部署程序实例。

•      与第1级模型相比,降低了定制开发的软件研发成本。

•      关键在于通过元数据实现应用的可配置性。

–元数据:用于描述数据的数据,用于描述租户的个性化需求。

③      Level3 单程序实例支持多租户的SaaS应用架构

•      全部租户运行部署在单一程序实例上的同一套程序代码。

•      最大限度的提高了系统资源利用效率,同时降低程序代码升级维护的工作成本。

•      同时应注意,单实例架构为应用开发带来了更大的复杂度,需要更多的初期投入。

④      Level4 可伸缩的多租户SaaS 应用架构

•      租户通过负载均衡层访问以镜像方式部署在集群上的同一套程序代码实例上。

•      通过负载均衡方法为应用提供可伸缩性,使应用在大量用户访问下保持可接受的应用可用性和性能。

•      关键在于实现应用的可伸缩性,主要涉及负载均衡、资源管理等技术。

1.2.3   四级成熟度模型对比

 

Level1

定制开发

Level2

可配置

Level3

高性能的多租户架构

Level4

可伸缩性的多租户架构

主要特点

托管运营

按需使用付费

多租户模式

可配置性

高性价比

统一维护

支持可伸缩性

动态资源分配

关键技术

实现托管运营

可配置性

租户管理

单实例架构

安全隔离

负载均衡

资源管理

初期投入

中等

较高

单用户成本

中等

目标用户

对个性化需求、安全性、隔离性要求较高的大客户

对安全隔离性有要求,同时关注价格的行业客户

对价格比较敏感,安全隔离性要求不高的中小企业用户

大量的中小企业用户及个人用户

1.3  SAAS的关键技术

1.3.1   多租户技术

多租户是SaaS模式下特有的核心概念之一,租户是指在线使用SaaS服务的企业、机构或个人,由于他们并不是真正的购买SaaS服务,因此没有SaaS服务的版权,只是租赁使用SaaS服务的功能,并按租赁的时间长短和功能多少支付费用,所以将他们称之为租户。而多租户实质上是为了实现SaaS服务的多用户性。达到服务共享使用规模效应,实现用户间最大程度的资源共享,真正达到资源共享的目的。

1.3.2   数据库设计技术

方案一、独立数据库(完全独立)

这是第一种方案,即一个租户一个数据库(Database),这种方案的用户数据隔离级别最高,安全性最好,但成本也高。

优点:

为不同的租户提供独立的数据库,有助于简化数据模型的扩展设计,满足不同租户的独特需求;

如果出现故障,恢复数据比较简单。

缺点:

增大了数据库的安装数量,随之带来维护成本和购置成本的增加。

这种方案与传统的一个客户、一套数据、一套部署类似,差别只在于软件统一部署在运营商那里。如果面对的是银行、医院等需要非常高数据隔离级别的租户,可以选择这种模式,提高租用的定价。如果定价较低,产品走低价路线,这种方案一般对运营商来说是无法承受的。


方案二、共享数据库,隔离数据架构(部分独立)

这是第二种方案,即多个或所有租户共享Database,但一个Tenant一个Schema

优点:

为安全性要求较高的租户提供了一定程度的逻辑数据隔离,并不是完全隔离;

每个数据库可以支持更多的租户数量。

缺点:

如果出现故障,数据恢复比较困难,因为恢复数据库将牵扯到其他租户的数据;

如果需要跨租户统计数据,存在一定困难。

 

方案三、共享数据库,共享数据架构(完全共享)

这是第三种方案,即租户共享同一个Database、同一个Schema,但在表中通过TenantID区分租户的数据。这是共享程度最高、隔离级别最低的模式。

优点:

三种方案比较,第三种方案的维护和购置成本最低,允许每个数据库支持的租户数量最多。

缺点:

隔离级别最低,安全性最低,需要在设计开发时加大对安全的开发量;

数据备份和恢复最困难,需要逐表逐条备份和还原。

如果希望以最少的服务器为最多的租户提供服务,并且租户接受以牺牲隔离级别换取降低成本,这种方案最适合。

 

按数据独立性、隔离性和安全性排序

– 完全独立 > 部分独立 > 完全共享

按硬件共享程度、方案性价比排序

-完全共享 > 部分独立 > 完全独立

  完全独立模式 部分独立模式 完全共享模式
主要特点 独立数据库实例 共享数据库实例
独立表集合
共享数据库实例
共享表集合
数据安全性
与隔离性
高(通过数据库
权限控制实现)
中(通过数据库
权限控制实现)
低(需要通过编
程实现)
数据可配置性 直接实现 直接实现 需要特定
方式实现
数据备份与恢复 容易(采用数据库
备份恢复机制)
容易(按租户的表集合分别恢复) 困难(需要通过
编程实现)
性能可控性 中等
硬件开销性价比 中等
目标用户 对安全性要求
较高的客户
对各方面要求
较为均衡的客户
对硬件性价比
要求较高的客户


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
存储 数据采集 人工智能
AI时代:云存储加速多模态数据存储与管理创新
阿里云存储产品高级解决方案架构师欧阳雁(乐忱)分享了中国企业在全闪存高端存储市场的快速增长,指出AI大模型的发展推动了企业级存储市场。去年,高端企业级存储闪存占比约为25%,相较于欧美50%的比例,显示出中国在AI领域的巨大增长潜力。演讲涵盖AI业务流程,包括数据预处理、训练和推理的痛点,以及针对这些环节的存储解决方案,强调了稳定、高性能和生命周期管理的重要性。此外,还介绍了数据预处理的全球加速和弹性临时盘技术,训练阶段的高性能存储架构,推理场景的加速器和AI Agent的应用,以及应对大数据业务的存储考量,如对象存储、闪电立方和冷归档存储产品。
39820 20
|
存储 数据库
订单系统的设计
订单系统的设计
|
8月前
|
人工智能 机器人 UED
不怕不会设计logo拉-本篇教你如何使用AI设计logo-如何快速用AI设计logo-附上AI绘图logo设计的咒语-优雅草央千澈-实战教程
不怕不会设计logo拉-本篇教你如何使用AI设计logo-如何快速用AI设计logo-附上AI绘图logo设计的咒语-优雅草央千澈-实战教程
453 86
不怕不会设计logo拉-本篇教你如何使用AI设计logo-如何快速用AI设计logo-附上AI绘图logo设计的咒语-优雅草央千澈-实战教程
|
5月前
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。
|
10月前
|
传感器 物联网 芯片
PWM 在智能照明系统中的应用优势有哪些
PWM(脉冲宽度调制)在智能照明系统中应用广泛,其优势包括:精准控制亮度、色温调节灵活、节能高效、延长灯具寿命、响应速度快及成本低廉。这些特点使其成为智能照明的理想选择。
|
11月前
|
关系型数据库 MySQL Linux
DockerFile的介绍
Docker操作 (九)
196 0
|
SQL 关系型数据库 MySQL
详解nacos使用
详解nacos使用
278 0
|
数据库
Google Earth Engine(GEE)——全球地表水和地下水盐度测量(1980-2019)
Google Earth Engine(GEE)——全球地表水和地下水盐度测量(1980-2019)
271 0
Google Earth Engine(GEE)——全球地表水和地下水盐度测量(1980-2019)
|
监控 安全 前端开发
如何设计一个高可用的运营系统
概述 一个产品业务的发展总是离不开运营二字。随着业务快速的发展以及新业务的扩充,运营需求越来越大,并且很多时候需要追热点,因此在有限的资源下,如何做到快速、准确、灵活、稳定的满足日趋增多的运营需求,成了个问题。
4374 0
|
索引
Elasticsearch update_by_query 语句使用记录
Elasticsearch update_by_query 语句使用记录
544 0