SaaS多租戶模式數(shù)據(jù)存儲方案比較
云計算多租戶幾乎用于所有軟件即服務(wù) (Software as a Service, SaaS) 應(yīng)用程序,因為計算資源是可伸縮的,而且這些資源的分配由實際使用決定。話雖如此,用戶可以通過 Internet 訪問多種類型的 SaaS 應(yīng)用程序,從小的基于 Internet 的小部件到大型企業(yè)軟件應(yīng)用程序。根據(jù)存儲在企業(yè)網(wǎng)絡(luò)之外的軟件供應(yīng)商的基礎(chǔ)架構(gòu)上的數(shù)據(jù)不同,安全需求也在不斷增長。應(yīng)用程序需要多租戶是有許多原因的,其中最明顯的原因就是成本:在大多數(shù)情況下,為每個客戶增加幾個服務(wù)器和一個數(shù)據(jù)庫是遠遠不夠的,盡管在安全要求很高的情況下這么做有點用處。
多租戶就是說多個租戶共用一個實例,租戶的數(shù)據(jù)既有隔離又有共享,說到底就是如何解決數(shù)據(jù)存儲的問題。
現(xiàn)在SaaS Multi-Tenant在數(shù)據(jù)存儲上存在兩大類共三種主要的方案,分別是:獨立數(shù)據(jù)庫和共享數(shù)據(jù)庫,其中共享數(shù)據(jù)庫又可分為共享數(shù)據(jù)庫,隔離數(shù)據(jù)架構(gòu)和共享數(shù)據(jù)庫,共享數(shù)據(jù)架構(gòu)。下面就分別對這三種方案進行介紹:
獨立數(shù)據(jù)庫:
這是***種方案,即一個Tenant一個Database,這種方案的用戶數(shù)據(jù)隔離級別***,安全性***,但成本也高。
優(yōu)點:
為不同的租戶提供獨立的數(shù)據(jù)庫,有助于簡化數(shù)據(jù)模型的擴展設(shè)計,滿足不同租戶的獨特需求;如果出現(xiàn)故障,恢復(fù)數(shù)據(jù)比較簡單。
缺點:
增大了數(shù)據(jù)庫的安裝數(shù)量,隨之帶來維護成本和購置成本的增加。
這種方案與傳統(tǒng)的一個客戶、一套數(shù)據(jù)、一套部署類似,差別只在于軟件統(tǒng)一部署在運營商那里。如果面對的是銀行、醫(yī)院等需要非常高數(shù)據(jù)隔離級別的租戶,可以選擇這種模式,提高租用的定價。如果定價較低,產(chǎn)品走低價路線,這種方案一般對運營商來說是無法承受的。
共享數(shù)據(jù)庫,隔離數(shù)據(jù)架構(gòu)
這是第二種方案,即多個或所有租戶共享Database,但一個Tenant一個Schema
優(yōu)點:
為安全性要求較高的租戶提供了一定程度的邏輯數(shù)據(jù)隔離,并不是完全隔離;每個數(shù)據(jù)庫可以支持更多的租戶數(shù)量。
缺點:
如果出現(xiàn)故障,數(shù)據(jù)恢復(fù)比較困難,因為恢復(fù)數(shù)據(jù)庫將牽扯到其他租戶的數(shù)據(jù);如果需要跨租戶統(tǒng)計數(shù)據(jù),存在一定困難。
共享數(shù)據(jù)庫,共享數(shù)據(jù)架構(gòu)
這是第三種方案,即租戶共享同一個Database、同一個Schema,但在表中通過TenantID區(qū)分租戶的數(shù)據(jù)。這是共享程度***、隔離級別***的模式。
優(yōu)點:
三種方案比較,第三種方案的維護和購置成本***,允許每個數(shù)據(jù)庫支持的租戶數(shù)量最多。
缺點:
隔離級別***,安全性***,需要在設(shè)計開發(fā)時加大對安全的開發(fā)量;數(shù)據(jù)備份和恢復(fù)最困難,需要逐表逐條備份和還原。
如果希望以最少的服務(wù)器為最多的租戶提供服務(wù),并且租戶接受以犧牲隔離級別換取降低成本,這種方案最適合。
總結(jié)
三種方案好比學(xué)生分宿舍,隔離數(shù)據(jù)庫就好比10名學(xué)生一人一個宿舍,每個人拿著自己宿舍的鑰匙,一般貴族學(xué)校才有的待遇,學(xué)生都得是土豪;共享數(shù)據(jù)庫,隔離數(shù)據(jù)架構(gòu)就好比10名學(xué)生一個宿舍,沒人一把宿舍鑰匙,一般家庭的學(xué)生都能住;共享數(shù)據(jù)庫,共享數(shù)據(jù)架構(gòu)就是家里條件比較差的學(xué)生,10個人一個宿舍,連宿舍鑰匙都配不起,大家只有一把鑰匙。
簡單的舉個例子,這三種方案各有優(yōu)缺點,根據(jù)實際情況選擇合適的方案。以上內(nèi)容是本人通過網(wǎng)上大牛的分享以及和小伙伴的交流加上自己的理解,有不足之處,請大家批評指正。
博文出處:http://blog.csdn.net/u010926964/article/details/47339177