1. 程式人生 > >多租戶架構對雲端計算都有哪些影響?

多租戶架構對雲端計算都有哪些影響?

  時至今日,企業雲的部署早就已經不再是實驗性和探索性的了。IDC的研究表明,2009年全球3590億美元的IT支出中有170億美元用於雲端計算。調查還顯示,2/3被調查者有擴大使用公共雲的計劃。當然,這並不是說雲端計算的部署和應用就沒有問題,比如企業如何根據不同的應用型別選擇不同型別的雲就存在困惑。

  儘管理論上說,企業可以根據應用系統的不同特性在私有云和公共雲之間進行選擇,而實踐中常常只有大型企業才有這樣的選擇權,它們可以根據應用的不同需求在兩種雲之間選擇更合適的,而對中小企業和初創企業而言,由於經濟上的原因可能更傾向於採用公共雲來支撐其幾乎所有的應用。

  除了對應用系統的特性進行分析外,雲平臺及其軟體的架構也是選擇雲服務時需要考慮而被忽略了的關鍵因素。尤其是多租戶架構(Multi-tenancy),嚴格地說來,瞭解多租戶架構應該是企業將IT應用遷向雲端的關鍵的第一步。

  實際上,無論企業是準備採用公共雲還是建設私有云,仔細瞭解多租戶架構都是非常必要的: 如果企業準備採用公共雲,CIO需要了解公共雲的服務供應商對多租戶模式的支援程度;如果建設私有云,設計多租戶架構的全部責任就落在CIO及其領導下的 IT部門身上,更有必要了解多租戶的架構。過去,基於網際網路的應用大多采用多使用者共享的模式,這使得今天很多使用者看到“多租戶”這個概念的時候仍然把它看成是過去的那種共享模式。其實,它們是不同的概念,特別是,今天的多租戶是建立在應用層,而不是以使用者為單位。

  何謂多租戶?


  這裡說的“租戶”可以是任何企業中的任何一個應用程式(既可以是企業內部也可以是企業外部),這個應用程式有自己的安全需求和專用虛擬計算環境,這個環境可能包含企業IT架構中的幾層或者全部,從最基礎的儲存到使用者介面。比如所有的互動式應用在本質上應該是面向多使用者或者說“多租戶”的。

  一個執行在企業內部私有云上、處理企業內部敏感資料的部門級應用程式與一個執行在公共雲中面向全球市場釋出公共產品目錄的應用程式,從“使用者” 這個角度來說沒有什麼不同,無論這個程式是執行在企業內還是企業外,它們都具有相同的面向多使用者的架構。應該說,“多租戶”是私有云和公共雲都具有的共同特徵,它可以體現在雲的三層中,即IaaS(基礎設施作為服務)、PaaS(平臺作為服務)和SaaS(軟體作為服務)。

  以IaaS為例來說明。實際上,如果從架構上來說,無論是公共IaaS還是私有IaaS都已經不僅僅是諸如虛擬化、按雲的使用進行收費以貫徹 IT即服務的理念等這些技術,IaaS已經超出了這些技術的範疇,它還應具有完善的制度,諸如服務級別協議、用於安全接入的身份管理、容錯、災難恢復、按需訂購以及其他一些關鍵特性。如果能在基礎設施層上提供這些共享的服務,則這樣IT基礎設施(或者說雲)在一定程度上就自動地具有了多租戶的特性。

  雲的多租戶特性並不僅僅限於IaaS層,包括PaaS層(如應用伺服器、Java虛擬機器等)、SaaS或應用層(如資料庫、業務邏輯、工作流程和使用者介面)也需要有多租戶的特徵。只有這樣,每一個“租戶(或者應用程式)”才可以充分享受到雲的所有通用的服務,根據雲所能提供支援多租戶的程度這些共享的服務可以從硬體層一直到使用者介面。

  如何判定能否支援多租戶

  我們通常所說的應用程式對多租戶的支援程度,其判定依據是基於多少核心應用層(或者SaaS)是可以讓各個“租戶”共享的。完全支援多租戶模式指的是允許多個“租戶”共享資料庫的表空間、支援對業務邏輯、工作流和使用者介面的定製。換句話說,所有SaaS的子層都提供對“多租戶”的支撐能力;而最低程度的支援“多租戶”也至少意味IaaS和PaaS層可以共享,只是每個“租戶”有自己專有的SaaS層;中等程度地支援“多租戶”,則是具有同樣特徵的一組“租戶”共享資料庫的表空間(schemae)及其他應用層,而不同組的“租戶”有其自己的資料庫和應用程式。

  這裡對應用程式或者雲對“多租戶”的支援程度做個總結:

  - 最高級別:不僅IaaS和PaaS支援多租戶,SaaS也完全支援多租戶。

  - 中等級別:IaaS和PaaS支援多租戶,SaaS部分支援。

  - 最低級別:IaaS和PaaS是多租戶,SaaS是單租戶模式。

  在對多租戶模式的支援方面,Salesforce.com是做得比較好的,它有7.3萬名客戶,這些客戶由8~12個多租戶的例項(包括 IaaS / PaaS的例項)提供支援,比率為1:5000,換而言之,每個多租戶例項支援5000個使用者共享相同的資料庫表空間;而另一個金融系統的SaaS供應商 Intacct,比Salesforce.com差一些,它有 2500多家客戶,共有10個例項提供支援,比率為1:250。

  在私有云方面,對多租戶的支援普遍不如公共雲高,比如SAP的Business By Design,其應用層是使用者獨享的,因而更適合某些大型的企業客戶。
如何選擇?

  那麼,我們在選擇公共雲服務或者自建私有云時,到底需要雲平臺多大程度地支援多租戶模式?這裡沒有唯一的答案,適合自己的才是最好的。首先,要認真研究企業的應用系統的特徵,包括應用系統的功能和它的重要程度、業務量的變化範圍、安全要求等。

  對多租戶的支援程度較高的雲平臺通常更適合跨行業的、通用性的應用,例如目錄管理和銷售人員管理等。基於這個雲平臺上的應用程式可以很容易地共享儲存空間、資料庫的表空間等,並且由於供應商和企業集中了自己的技術力量在不斷開發和完善這些通用的功能和共享的服務,從而讓使用者可以很快用上這些新功能。另外,這些應用程式通常對加密和認證的要求很低。

  這就是為什麼公共雲通常更願意採用支援多租戶模式的平臺來部署一些通用性的應用的原因,如電子郵件、企業協同、費用報表、旅行核定以及正式生產前一些活動(如產品開發、使用者培訓、功能測試和驗收)。

  對於企業的每個應用,IT部門都需要確定其對多租戶模型的需求程度,並據此從眾多候選供應商中選擇一家合適的供應商。

  除了部分應用對企業非常重要或者企業的技術力量實在不足之外,私有云的建設任務通常都落在了IT部門。而如今在市場上有不少宣稱自己是支援多租戶架構技術的,因此,為了建立一個多租戶架構的企業內部雲,IT部門必須仔細對這些供應商進行評估,然後建立自己的IaaS、PaaS和SaaS層,以支援建立共享的服務和共享的資料庫表空間。

  “多租戶”是雲端計算的核心原則。雖然“多租戶”借鑑和發展了很多主機計算的概念,並把這些概念帶到了x86伺服器的生態系統中,但它對原來的概念進行很多延展,以支援數以千計的企業內和企業外的“租戶”,這個過程是複雜的,不少甚至是革命性的,也是值得讚揚的。只有當“多租戶”的理念滲透到到公共雲和私有云的所有層次,雲端計算所承諾的可擴充套件性得到改善、更靈活也更經濟這些特性才能真正得以實現。