SaaS系统架构

官网:https://haomo-tech.com

作者:毫末科技

邮箱: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系统是一种租凭方式的软件销售手段。收费一定要遵守“按需订阅,按量付费”的原则。其中付费点有三个维度:一个是计算量、存储量和时间

3 市场应用

3.1 xxx行业应用

3.2 xxx行业应用

3.3 xxx行业应用

4 产品方案对比

4.1 开源方案

4.1.1 开源方案xxx

网址:https://github.com/xxx

4.1.2 开源方案xxx

网址:https://github.com/xxx

4.2 商业方案

4.1.1 xxx商业项目

网址:http://xxx.com/

4.1.2 xxx商业项目

网址:http://xxx.com/

5 参考资料

results matching ""

    No results matching ""