SaaS系统架构
作者:毫末科技
邮箱:hxg@haomo-studio.com
微信二维码:
1 概述
1.1 技术描述
这是一个xxxx的技术。
涵盖了xxx个关键技术点,如下:
- xxx技术
- xxx技术
1.2 技术发展历史
1.3 技术发展趋势
2 技术详解
2.1 SaaS架构成熟度模型的5个级别——从“混乱”到“乌托邦“
第0级(混乱):每次新增一个客户,都会新增软件的一个实例。 第1级(受控的混乱):所有客户都运行在软件的同一个版本上,而且任何的定制化都通过修改配置来实现。 第2级(多租户[multi-tenant]、高层建筑[Highrise]):所有的客户都已经可以在软件的同一个版本上运行了,而且他们都在同一个“实例”上运行。 第3级(多租户, 扩建[Build-Out]):此时你已经拥有了多租户、单一版本的软件模型。不过你还是可以通过硬件扩展(scale-out)的方式来进行扩充。 第4级(乌托邦):如同第3级,除非你可以找出有效的方式,以在不同的“实例”上运行不同版本的软件。
2.2 SaaS的关键点:多租户;硬件虚拟化;
2.3 web 应用程序与SaaS 应用程序对比,SaaS需要多考虑的方面
1,应用程序必须支持多租户。多租户可以分为几个不同的类别(如列表下方的图所示):
- 1.1,云中的简单虚拟化,其中只对硬件进行共享。
- 1.2,共享应用程序,对每个租户使用不同的数据库。
- 1.3,共享应用程序和数据库(效率最高,真正的多租户)。
2,应用程序必须具备某种程度的自助注册功能。
- 2.1, 应用程序必须具备某种程度的自助注册功能,即便仅仅是一种请求机制,即产生一种向应用程序添加租户的业务流程。
3,必须具备订阅/记账机制。
- 3.1, 必须提供订阅和记账机制。因为 SaaS 应用程序被设计为根据各种因素进行支付,如每个租户的用户数、应用程序选择,还可能包括使用时间等,必须通过某种方式来跟踪和管理应用程序的使用,然后生成可由租户管理人员访问的记账信息
4,应用程序必须能够有效地扩展。
- 4.1, 必须能够随着订阅的增长进行扩展
5,必须能够监视、配置和管理应用程序和租户。
- 5.1, 必须提供治理和应用程序管理功能,以监视、配置和管理应用程序及所有租户
6,必须有一种机制能够支持惟一的用户标识和身份验证。
- 7,必须有一种机制能够支持对每个租户进行某种程度的自定义。
2.4、性能问题
1,横向/纵向扩展
- 1.1,横向扩展通常用于应用服务器层。
- 1.2,纵向扩展通常用于数据库层。
2,数据库集群化
- 3,地理、分区和同步
- 4,独立的数据库
2.5、需要考虑的安全性问题
- 1, 阻止一个租户查看另一个租户的数据作为一个基本要求;
- 2, 这些其他应用程序可以是需要访问或共享数据的内部应用程序;也可以是对数据进行挖掘以获得趋势的分析或报告编写工具。(即使是数据库管理员使用的实用工具也会引起安全问题,如果租户可以使用它们访问,或者更糟,操作不属于它们的数据的话。)
2.6、选择技术栈
2.7、SaaS分层:呈现层,调度层,业务层,数据层;
2.8、SaaS计费
SaaS系统是一种租凭方式的软件销售手段。收费一定要遵守“按需订阅,按量付费”的原则。其中付费点有三个维度:一个是计算量、存储量和时间