在云計算中,多租戶(hù)意味著(zhù)云供應商的多個(gè)客戶(hù)使用相同的計算資源。盡管他們共享資源,但云客戶(hù)并不了解彼此,并且他們的數據完全分開(kāi)。多租戶(hù)是云計算的重要組成部分;沒(méi)有它,云服務(wù)的實(shí)用性將大大降低。多租戶(hù)架構是許多類(lèi)型的公共云計算中的一個(gè)特性,包括IaaS、PaaS、SaaS、容器和無(wú)服務(wù)器計算。
要了解多租戶(hù),請考慮銀行業(yè)務(wù)的運作方式。多人可以將他們的錢(qián)存放在一家銀行,即使他們存放在同一個(gè)地方,他們的資產(chǎn)也是完全獨立的。銀行的客戶(hù)之間不互動(dòng),無(wú)法獲得其他客戶(hù)的資金,甚至彼此不知情。同樣,在公共云計算中,云供應商的客戶(hù)使用相同的基礎設施——通常是相同的服務(wù)器——同時(shí)仍然保持他們的數據和他們的業(yè)務(wù)邏輯分開(kāi)和安全。
多租戶(hù)的經(jīng)典定義是為多個(gè)用戶(hù)或租戶(hù)提供服務(wù)的單個(gè)軟件實(shí)例*。但是,在現代云計算中,該術(shù)語(yǔ)具有更廣泛的含義,指的是共享云基礎設施,而不僅僅是共享軟件實(shí)例。
什么是云計算?
在云計算中,應用程序和數據托管在各種數據中心的遠程服務(wù)器中,并通過(guò) Internet 訪(fǎng)問(wèn)。數據和應用程序集中在云中,而不是位于單個(gè)客戶(hù)端設備(如筆記本電腦或智能手機)或公司辦公室內的服務(wù)器上。
許多現代應用程序都是基于云的,這就是為什么,例如,用戶(hù)可以訪(fǎng)問(wèn)他們的 Facebook 帳戶(hù)并從多個(gè)設備上傳內容。
多租戶(hù)有什么好處?
云計算的許多好處只有通過(guò)多租戶(hù)才能實(shí)現。以下是多租戶(hù)改進(jìn)云計算的兩種重要方式:
更好地利用資源:為一個(gè)租戶(hù)保留一臺機器效率不高,因為一個(gè)租戶(hù)不太可能使用該機器的所有計算能力。通過(guò)在多個(gè)租戶(hù)之間共享機器,可以最大限度地利用可用資源。
降低成本:由于多個(gè)客戶(hù)共享資源,與每個(gè)客戶(hù)都需要自己的專(zhuān)用基礎設施相比,云供應商可以以低得多的成本向許多客戶(hù)提供服務(wù)。
多租戶(hù)的缺點(diǎn)是什么?
可能的安全風(fēng)險和合規性問(wèn)題:由于監管要求,一些公司可能無(wú)法將數據存儲在共享基礎架構中,無(wú)論多么安全。此外,來(lái)自一個(gè)租戶(hù)的安全問(wèn)題或損壞的數據可能會(huì )傳播到同一臺機器上的其他租戶(hù),盡管這種情況極為罕見(jiàn),如果云供應商正確配置了他們的基礎架構,則不應發(fā)生這種情況。由于云供應商通常能夠比單個(gè)企業(yè)在安全方面投入更多,這些安全風(fēng)險在一定程度上得到了緩解。
“嘈雜的鄰居”效應:如果一個(gè)租戶(hù)使用過(guò)多的計算能力,這可能會(huì )降低其他租戶(hù)的性能。同樣,如果云供應商已正確設置其基礎架構,則不應發(fā)生這種情況。
多租戶(hù)如何工作?
在這里,我們將更深入地研究使多租戶(hù)在不同類(lèi)型的云計算中成為可能的技術(shù)原理。
在公共云計算中
想象一下可以在多輛汽車(chē)和車(chē)主之間輕松共享的特殊汽車(chē)引擎。每個(gè)車(chē)主對發(fā)動(dòng)機的性能要求略有不同:一些車(chē)主需要強勁的 8 缸發(fā)動(dòng)機,而另一些車(chē)主則需要更省油的 4 缸發(fā)動(dòng)機?,F在想象一下,這個(gè)特殊的引擎在每次啟動(dòng)時(shí)都能自我變形,從而更好地滿(mǎn)足車(chē)主的需求。
這類(lèi)似于許多公共云提供商實(shí)施多租戶(hù)的方式。大多數云提供商將多租戶(hù)定義為共享軟件實(shí)例。他們存儲有關(guān)每個(gè)租戶(hù)的元數據*,并使用此數據在運行時(shí)更改軟件實(shí)例以滿(mǎn)足每個(gè)租戶(hù)的需求。租戶(hù)通過(guò)權限相互隔離。盡管他們都共享相同的軟件實(shí)例,但他們每個(gè)人都以不同的方式使用和體驗軟件。
在容器架構中
容器是獨立的軟件捆綁包,其中包括應用程序、系統庫、系統設置以及應用程序運行所需的所有其他內容。容器有助于確保應用程序無(wú)論托管在何處都能以相同的方式運行。
容器彼此劃分為不同的用戶(hù)空間環(huán)境,每個(gè)容器都像運行在該主機上的唯一系統一樣運行。由于容器是自包含的,不同云客戶(hù)創(chuàng )建的多個(gè)容器可以在單個(gè)主機上運行。
在無(wú)服務(wù)器計算中
無(wú)服務(wù)器計算是一種模型,其中應用程序被分解為稱(chēng)為函數的更小部分,每個(gè)函數僅按需運行,與其他函數分開(kāi)運行。(這種云計算模型也稱(chēng)為功能即服務(wù)或 FaaS。)
顧名思義,無(wú)服務(wù)器功能不在專(zhuān)用服務(wù)器上運行,而是在無(wú)服務(wù)器提供商基礎設施中的任何可用機器上運行。由于公司沒(méi)有分配自己的離散物理服務(wù)器,因此無(wú)服務(wù)器提供商通常會(huì )在任何給定時(shí)間在單個(gè)服務(wù)器上運行來(lái)自多個(gè)客戶(hù)的代碼——多租戶(hù)的另一個(gè)例子。
一些無(wú)服務(wù)器平臺使用 Node.js 來(lái)執行無(wú)服務(wù)器代碼。無(wú)服務(wù)器平臺Workers使用Chrome V8,其中每個(gè)功能都在自己的沙箱或單獨的環(huán)境中運行。這使無(wú)服務(wù)器功能彼此完全分離,即使它們在相同的基礎架構上運行也是如此。
在私有云計算中
私有云計算使用多租戶(hù)架構的方式與公共云計算非常相似。不同之處在于其他租戶(hù)不是來(lái)自外部組織。在公有云計算中,A 公司與 B 公司共享基礎設施。在私有云計算中,A 公司內的不同團隊相互共享基礎設施。