亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析
1438
2022-05-30
【背景】
近年來,企業級SaaS市場近幾年在每個細分領域都涌現出了一批玩家。從技術角度看,不同的領域、不同的SaaS產品,必定有著同樣的架構內核,其中最關鍵的便是對于多租戶(Multi-Tenancy)的支持。對廣大企業來說,引入SaaS產品本質上就是對互聯網服務的租賃,因而多租戶便必然是SaaS的天然屬性之一,也是其與傳統互聯網應用架構設計的重要差異之一。在SaaS架構的成熟度演進過程中,其核心路線便是如何實現多租戶,也就是說,SaaS成熟度的高低,很大程度上取決于如何實現多租戶的支持。
【技術】
多租戶管理的目的是資源的隔離,包括存儲資源的隔離和計算資源的隔離,隔離存儲資源概括來說可以用一個詞來解決:命名空間。以數據庫為例,我們只需要在每條租戶的記錄上,記下對應租戶的標識即可。一般來說,不考慮分庫分表的情況下,我們邏輯上會在同一個Schema中,存儲所有租戶的數據。這就要求每張表都會有一個tenant_id字段,也即每條記錄都攜帶了它的“命名空間”——租戶標識。
在業務系統設計時,針對SAAS部署,我們針對所有業務表增加了organization_id字段,用于區分不同的租戶,這種方式對結構化數據實現不同租戶的數據隔離。但是,針對系統使用的圖片、文檔、視頻、音頻等非結構化數據,目前未做單獨的存儲,導致不同租戶數據混合存儲,這種情況嚴重影響了文件存儲的管理和維護的效率。基于基于NFS和Minio的多租戶文件管理系統的實現方法解決了目前的痛點。
【實現】
(1)租戶創建時,根據用戶協議為用戶創建租戶管理員,并為租戶選擇Minio文件服務器、創建工作目錄及用戶帳號。具體流程見圖1。
圖1 - 基于NFS和Minio的多租戶管理-租戶開通過程
①?超級管理員根據用戶協議創建租戶,并為租戶創建租戶管理員。
②?超級管理員為租戶設置租戶有效期和激活狀態。
③?超級管理員從Minio文件服務器列表中選擇文件服務器,為租戶分配存儲空間、創建Minio文件服務帳號和工作目錄,多租戶模式下Minio文件工作目錄如圖3所示:
圖2 - Minio多租戶目錄管理
(2)租戶上傳文件時,根據租戶ID從租戶文件服務器表中家在為租戶分配的文件服務器信息,文件將被上傳至租戶對應的Minio文件服務的工作目錄。具體流程見圖3。
圖3 - 基于NFS和Minio的多租戶管理-租戶上傳文件過程
①?租戶管理員登錄系統。
②?租戶管理員選擇文件進行上傳。
③?系統根據租戶ID從租戶文件服務列表中家在為租戶分配的文件服務器信息。
④?系統根據租戶的文件服務器信息自動將文件上傳之租戶對應的Minio文件服務器工作目錄。
【優勢】
本方案具有以下優點:
單個租戶文件統一存儲、統一管理。
通過Minio輕量級對象存儲服務實現文件管理服務,便于維護和拓展。
無狀態,存儲介質動態擴容,具有靈活的按需伸縮的特性。底層基于NFS,有大量的實踐方案,穩定和運維方便。
存儲 彈性文件服務
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。