Menu
云软件(SAAS)的几种实现方式优缺点对比
随着互联网的不断发展,软件模式由单独运行的软件逐步升级为云软件SAAS,云软件的基本模式是软件随用户的增加而增加部署数量,而是只部署一套,通过账号控制分配给不同的商户,商户可以根据自己的需求定制需要的功能模块
1.SAAS云应用场景
SAAS云应用近几年来越来越火,这得益于国内云计算的基础设施的发展,如以前我们开发应用所需要的硬件计算资源、平台的操作系统、互联网IP、带宽及域名等,均可以非常有效解决了,企业建设应用或平台,不再需要考虑如何购买这些资源,我们仅需要通过在阿里或腾讯那里购买到这种云服务器即可,这些资源的使用及付费已经做到像交水费及电费那样简单。而现在唯一需要考虑的是在这些云计算资源上如何构建我们需要的企业应用
在传统的应用上,我们开发的每个一个应用均是服务于一家企业或单位,我们可以把它称之为私有云。在今时今日的互联加的应用模式下,亦可以服务于某个企业的多个客户或子公司,其业务可以随时分割,如:
案例一:
企业开发一个会员系统,可以给其所有的客户使用,每个客户可以独立管理其会员。包括会员积分、消费管理、充值、微信端消息推送管理等。
案例二:
省需要开发一个云医疗集中数据采集平台,需要每家医院定期上报数据及对其自身的数据进行统计,同时平台的管理员可以对所有的医院的数据进行汇总及统计。
案例三:
企业开发一个协同应用,提供给不同的子公司使用,同时集团公司需要跟子公司之间有数据交互,并且需要有些流程需要在集团公司与子公司之间进行交互使用。
我们把以上的应用场景都可以用SAAS模式来实现,同时对于传统旧的应用,我们可以用单个租户模式来实现即可。这种模式我们称之为云应用,如果把这种模式面向公网进行租户注册使用,我们即称之为公有云,若并且开放对应的接口服务,我们可以把它称之为平台服务,即PAAS。
其实云应用还可适用以下的应用场景:
  • 私有云部署应用,全单位或公司共用所有业务
  • 多个部门登录管理不同的业务
  • 集团内存在多个分公司,分公司负责类似相同的业务
  • 多个部门或分公司人员或业务有关联
  • 每个分公司需要有独立的数据管理
  • 集团或总公司需要集中管理数据
  • 按不同子系统管理不同的业务,授权不同子公司或部门
2.SAAS应用的几种存储实现模式
方案一、独立数据库
这是第一种方案,即一个租户一个数据库(Database),这种方案的用户数据隔离级别最高,安全性最好,但成本也高。
优点:
为不同的租户提供独立的数据库,有助于简化数据模型的扩展设计,满足不同租户的独特需求;
如果出现故障,恢复数据比较简单。
缺点:
增大了数据库的安装数量,随之带来维护成本和购置成本的增加。
这种方案与传统的一个客户、一套数据、一套部署类似,差别只在于软件统一部署在运营商那里。如果面对的是银行、医院等需要非常高数据隔离级别的租户,可以选择这种模式,提高租用的定价。如果定价较低,产品走低价路线,这种方案一般对运营商来说是无法承受的。
方案二、共享数据库,隔离数据架构
这是第二种方案,即多个或所有租户共享Database,但一个Tenant一个Schema。
优点:
为安全性要求较高的租户提供了一定程度的逻辑数据隔离,并不是完全隔离;
每个数据库可以支持更多的租户数量。
缺点:
如果出现故障,数据恢复比较困难,因为恢复数据库将牵扯到其他租户的数据;
如果需要跨租户统计数据,存在一定困难。
方案三、共享数据库,共享数据架构
这是第三种方案,即租户共享同一个Database、同一个Schema,但在表中通过TenantID区分租户的数据。这是共享程度最高、隔离级别最低的模式。
优点:
三种方案比较,第三种方案的维护和购置成本最低,允许每个数据库支持的租户数量最多。
缺点:
隔离级别最低,安全性最低,需要在设计开发时加大对安全的开发量;
数据备份和恢复最困难,需要逐表逐条备份和还原。
如果希望以最少的服务器为最多的租户提供服务,并且租户接受以牺牲隔离级别换取降低成本,这种方案最适合。