(3)分離表架構
分離表架構即所有用戶共享相同的數據庫實例,但每個用戶獨享由一系列數據庫表組成的Schema。
相對于共享表架構和分離數據庫架構而言,分離表架構是一種折中的方案,在這種架構下,實現數據的分離和災備比共享表架構容易,而硬件成本比分離數據庫架構低廉。
這3種架構根據軟件系統客戶如何使用數據庫實例和數據庫表進行劃分。如果所有的軟件系統客戶共享使用相同的數據庫實例和相同的數據庫表(可以通過類似于租戶ID字段來區分數據的從屬)則為共享表架構;如果每個軟件系統客戶單獨擁有自己的數據庫實例則為分離數據庫架構;如果軟件系統客戶共享相同的數據實例,但是每個客戶單獨擁有自己的由一系列數據庫表組成的表結構,則為分離表架構。
3種架構的優缺點比較如表5-1所示。
表5-1 3種架構優缺點比較
上述3種架構都有其優缺點,所以在設計云系統時,系統架構師需要進行全面的分析和考量,綜合各方面的因素以選擇合適的多租戶架構。有一些選擇方法可供參考,例如,系統服務的客戶數量越多,則越適合使用共享表的架構;對數據隔離性和安全性要求越高,則越適合使用分離數據庫的架構。而在超大型的云系統中,一般都會采用復合型的多租戶架構,以平衡系統成本和性能,這其中Salesforce.com便是一個典型的案例。Salesforce.com最初搭建于共享表架構,但是隨著新客戶的不斷簽入,單純的共享表架構已經很難滿足日益增長的性能要求,Salesforce.com逐步開始在不同的物理區域搭建分布式系統。在全局上,Salesforce.com以類似于分離數據庫的架構運行,在單個區域內,系統則仍然按照共享表架構運行。