下面,我們就來看看在SaaS應用搭建過程中,可以采用什么樣的多租戶模型。從而能較為清晰地了解未來使用PaaS平台開發的SaaS,可以為用戶提供哪些多租戶的服務。
Gartner提出了7種多租戶的部署和實現方式模型,該模型可以作為任何多租戶環境的參考模型。在具體的實施中以及大型企業中,可以根據自身的需要來決定采用Gartner提出的何種多租戶模型,或者幾種多租戶模型可以並存在一個雲環境中。
我們首先來看一下Gartner提出的這7種模型,然后再根據本次項目的實際情況,提出使用工作流引擎產品搭建何種多租戶模型設計。
首先,Gartner按照4個層次對多租戶模型進行划分,即基礎設施層(主要是指各種服務器)、數據層(即數據庫層)、應用平台層(即應用運行的容器,通常也稱為應用服務器)、以及應用邏輯層(即應用功能)。如下圖所示:
第一種模型稱為“Shared Nothing”,即不共享任何資源。在這種模型中,從最底層的基礎設施層,一直到最上端的應用邏輯層,每個租戶均獨享。這種模式也是傳統的IT開發和部署模式。
第二種模型稱為“Shared Hardware”,即共享硬件資源,所有硬件服務器會形成一個硬件資源池,所有租戶根據需要來共享這些資源。這種模式就是現在比較常見的IaaS模式。
第三種模型稱為“Shared OS”,即共享操作系統。在這種模型中,所有硬件資源均安裝有相同的操作系統,通過在租戶間切分和分配操作系統的進程來實現對計算資源的共享。與第二種模型一樣,這種模型也主要集中在對底層計算資源的共享和分配上,而更高層次的內容均是各個租戶獨享的資源。需要單獨購買和部署。
第四種模型稱為“Shared Database”,即共享數據庫。在這種模型下,所有租戶會共享一個數據庫,各個租戶自己的應用服務器以及運行於其中的應用會使用共享數據庫中為該租戶划分的數據資源。
第五種模型稱為“Shared Container”,即共享容器。注意,在這種模型下,各個租戶只是共享應用的運行容器,而應用對應的數據庫都是各個租戶獨享的,這一點與第六種模型是根本性的區別。在這種模型中,要求應用運行的容器是支持多租戶訪問的,即容器本身可以智能化的區分來自各個租戶的請求。
第六種模型稱為“Shared Everything”,即全共享。在這種模型中,所有租戶自頂向下共享所有資源。對於提供服務的一方來講,可以最大限度的利用各種資源,並且依托支持多租戶的應用容器,也可以只開發一套程序,部署一次,便可滿足所有租戶對公共應用的需要。
第七種模型稱為“Custom Multitenancy”,即定制化的多租戶。在這種模型中,實現多租戶的方法是在應用邏輯中改造已有的API,增加租戶的維度。但是這種模式僅僅是對某一個應用起作用,由於沒有使用支持多租戶的應用服務器,但是又想讓各個租戶共享應用容器,所以不得不在應用邏輯中做文章。
在信息平台建設中,應當根據具體客戶的需要,來構建恰當的多租戶模型,為其提供所需的不同服務級別的SaaS應用服務。對於需要更為經濟型SaaS應用的客戶群,可以提供第六種多租戶模型的應用,而對於需要更高數據隔離和計算資源需要的客戶群,則可以提供第五種多租戶模型的應用。