[Cloud Computing]何謂Multi-Tenancy(多租戶)?

[Cloud Computing]何謂Multi-Tenancy(多租戶)?

這篇文章的Tag本來應該用SaaS比較恰當,但我想我就直接歸入Cloud Computing中吧。

Multi-Tenancy的概念我們從中文多租戶可以略窺一二,舉個例子來說,如果我們有一棟樓,我將他租給50個人,這50個人共用了我這棟樓,這樣的狀況稱為多租戶,如果我想要將這棟樓租給50個人,我可能會怎麼處理?
1.通鋪,不隔間
2.用木板隔間
3.用水泥牆隔間

這三種方式有什麼差別?差別大了,不隔間的話,我做什麼事情都有49個人會看見,隱密性多差啊,而且如果我開燈就會影響到別人,都不能依自己作息來調整了(無法設定與客製化);木板隔間雖然我做事別人看不見,但隔音效果非常的差勁(隱密性差);水泥隔間的話就好多的,這三種處理方式反應了一個現象,只有我們做好隔間,才能確保在這棟樓中的50個租戶可以安心的在此住宿,不用擔心會被其他人給影響了,而這個現象對應回我們系統的開發,如果我的系統打算給50個不同的公司使用時怎麼辦?

Multi-Tenancy是很常被提到的一個解決方案,基本上SaaS服務大都會考量到Multi-Tenancy的問題,因為SaaS是透過租賃的方式提供的,供應商不可能為了每一家客戶都提供一台實體的機器,因為成本與資源的浪費都很可觀,就有點像我幫每個要來租房的人都蓋一棟樓一樣。

而Multi-Tenancy的架構,在系統設計時的要考量的點可不少,包含獨立的設定、客製化、安全性、獨立頻寬、獨立CPU/記憶體資源等,獨立而不會受到其他租戶的影響,這些對SaaS服務都非常的重要,否則其他的租戶可能如大通鋪或者木板隔間一樣,只要一個租戶發生狀況,其他租戶可能就會連帶的受到影響,最悽慘的就是一個安全性漏洞就連帶影響到其他租戶。

一般Multi-Tenancy可能會有很多種做法:
1.一個站台,依不同客戶有不同的設定檔:設定分離,資源共用
2.同一台電腦,多個站台:設定分離,資源部分分離(例如切不同集區,掛掉時不互相影響),CPU、頻寬仍共用
3.以VM來區分不同用戶:設定分離,交互影響性更低,但多數資源仍共用
4......

要有效隔離(isolate)不同的租戶,達到Multi-Tenancy效果是SaaS很重要的一個關鍵,如何做的又穩又好講真的學問還真不小,研究中。

游舒帆 (gipi)

探索原力Co-founder,曾任TutorABC協理與鼎新電腦總監,並曾獲選兩屆微軟最有價值專家 ( MVP ),離開職場後創辦探索原力,致力於協助青少年培養面對未來的能力。認為教育與組織育才其實息息相關,都是在為未來儲備能量,2018年起成立為期一年的專題課程《職涯躍升的關鍵24堂課》,為培養台灣未來的領袖而努力。