提到SaaS,很多人都会立刻想到节约成本、按需付费、即租即用等等这些概念,这说明大部分人对SaaS已经有了普遍认知,且开始主动应用SaaS软件。
然而这只是一些浅层概念。很多人对于一些SaaS技术问题还是知之甚少,例如企业在进行SaaS企业管理软件选型时,仍不了解“多租户”与“单租户”是什么意思,二者之间的区别更是一头雾水。
企业明白这两种SaaS架构的特点,才能更多地从未来的功能需求、数据安全等方面进行考虑,从而选出适合企业应用的SaaS软件。
一、多租户SaaS架构
小A、小B、小C大学毕业后,一起同租了一套三室两厅的房子。三个人都拥有自己独立的房间,且每个房间都有配有一把钥匙,保证三个人独立的空间私密性。
如果其他人要进入别人的房间,就需要拥有配套房间的钥匙进行开锁。而客厅、餐厅、厨房等属于公共区域,三人共同享有这些资源。
这里小A、小B、小C就属于应用SaaS多租户解决方案的企业实体。
应用运行在同一个或同一组服务商(即三个人同租一套房子,厨房、餐厅、客厅是多租户环境下的系统和应用程序、组件),
每个数据库都存储来自多个独立租户的数据(即房子拥有三间不同的房间),
然后通过使用保护数据隐私的机制来逻辑隔离不通租户之间的数据(即每个房间都有配套的钥匙来保证安全隔离)。
因此多租户架构也被称为单实例架构(Single Instance)。
在多租户环境中,由于应用都运行在相同的服务器上,所有的数据都保存在同一个多租户隔离的数据库中,因此多租户模式通常会比较节省硬件资源。
但是由于多租户SaaS架构需要具备相同的硬件、网络和操作系统配置能力,所以很难实现根据单一用户的需求去做功能上的定制化,也很难根据某个用户的请求进行常规的系统升级、重启之类的操作。
二、单租户SaaS架构
如果多租户是多个人租一套房子,每个人拥有一个房间,那么单租户就是一个人租一套房子,无须与其他人共享客厅、餐厅、厨房等资源。
单租户SaaS架构中,每个客户都会有独立的软件和硬件环境支撑系统运行,每个数据库仅存储来自一个租户的数据,因此单租户模式通常也被称为多实例架构(Multiple Instance)。
单租户模式下,不同客户之间的应用软件和数据一般通过硬件来进行隔离,因此单租户模式被广泛应用在客户需要支持定制化的应用场景。每个租户可以购买特定的软件实例,通过定制化满足他们的特定需求。
除了云服务提供商提供的基础功能,用户也拥有很多的可配置能力:比如,用户可以调整不同的配置需求,向内部数据库或者外部合作伙伴的数据库添加不同的模块。
三、两者之间的分别
1 安全管控等级不同
SaaS多租户的数据库存储来自多个独立租户的数据,虽然设置有安全隔离,但在安全管控等级上,还是单租户更高。
因为单租户拥有独立的软件和硬件环境,数据库也仅存储一个租户的数据,这从技术上就禁止了数据泄露的可能性。
单租户的架构有时候更适合某些需要安全管控、甚至必须有法律合规性要求的行业。
2 数据备份复杂程度不同
SaaS单租户拥有独立数据库,因此备份恢复客户数据库非常容易。而多租户是共用一个数据库,租户的数据既有隔离又有共享,系统不能每天自动执行企业的独立备份。
若企业需要数据备份,必须每天通过API自己去手动操作。如果出现故障,数据恢复比较困难,因为牵扯到其他租户的数据,所以需要逐表逐条备份和还原,倘若需要跨租户统计数据,更是困难。这也是多租户SaaS架构的最大缺点。
3 可配置能力不同
SaaS多租户很难实现根据单一用户的需求去做功能定制化,因为是使用共享系统,通常无法对平台进行更改,即使是只更改一行代码这样简单的定制化开发。
就像多个人同租一套房子,大家共用可以降低房租成本,但是在居住时不能根据自己的喜好随意配置房子。而单租户不同,房子只由一个人使用,可以根据自身需要配置或更改房间物品,它可能比多租户花费更多的费用,但提高了灵活性,支持定制化,可以调整不同的配置需求。
大企业如证券交易所、银行、保险公司、电信公司及航天企业等是需要能定制的SaaS、PaaS及IaaS部署、运维及IT服务,故多租户公有云模式并不适合。
4 控制升级时间不同
SaaS多租户的系统维护成本低,多租户系统在升级时,只需要更新一次,维护人员不需要对每个用户更新,节省了很大的运维成本,这对于所有客户都在做同样事情的系统来说是很有用的。
但倘若系统升级时间是在企业特别忙碌的时候出现,势必会对企业用户造成影响。同理,如果出现问题或故障需要重启系统,也必须等到晚上才能操作,因为重启会影响到其他企业的使用。
而单租户系统就避免了这样的问题。在单租户系统中,每个用户需要单独升级,这使得企业可以控制升级的时间和方式,选择延迟甚至跳过升级周期。