導航:首頁 > IDC知識 > saas多租戶同一域名

saas多租戶同一域名

發布時間:2020-12-10 21:39:25

1、saas多租戶的架構成熟度模型對未來有什麼樣的影響

Gianpulo原先的成熟度復模型分為:定製版制本和每個客戶一個實例、所有的客戶運行同一個版本的軟體但是各自運行在不同的實例之上、讓客戶運行單一版本的軟體而且具備可伸縮的實例。Dharmesh添加了「烏托邦」級別,在這個級別中可以輕松地為任何給定的客戶發布「沙箱(sandbox)」實例。
在SaaS成熟度模型背後,當經濟成本上升到很高的程度之後,會伴隨有一些巨大的風險。當所有客戶都共享同樣的軟體、硬體(無論是虛擬的還是物理的)和管理時,一個客戶身上產生的任何小問題,都有可能會影響到整個的客戶群體。

2、SaaS層的多租戶和PaaS的多租戶在實現技術上有什麼區別呢?

P

3、SaaS服務模式管理系統有哪些特性

SaaS服務模式管理系統的特性:
1、互聯網

SaaS服務通過互聯網瀏覽器或
WebServices/Web2.0程序連接的形式為用戶提回供服務,使得SaaS應用具備了答典型互聯網技術特點;另一方面,由於SaaS極大的縮短了用戶與SaaS提供商之間的時空距離,從而使得SaaS服務的營銷、交付與傳統軟體相比有著很大的不同。

2、多租戶

SaaS服務通常基於一套標准軟體系統為成百上千的不同客戶(又稱租戶)
提供服務。這要求SaaS服務要能夠支持不同租戶之間數據和配置的隔離,從而保證每個租戶數據的安全與隱私,以及用戶對諸如界面、業務邏輯、數據結構等的個性化需求。

3、服務特性

SaaS使得軟體以互聯網為載體的服務形式被客戶使用,所以服務合約的簽定、服務使用的計量、在線服務質量的保證、服務費用的收取等等問題都必須考慮。而這些問題通常是傳統軟體沒有考慮到的。

SaaS是Software-as-a-service(軟體即服務)。SaaS在業內的叫法是軟體運營,或稱軟營。是一種基於互聯網提供軟體服務的應用模式。一種隨著互聯網技術的發展和應用軟體的成熟,在21世紀開始興起的完全創新的軟體應用模式,是軟體科技發展的最新趨勢。

4、求教雲海oa的私有雲部署多租戶saas化模式詳細信息

多組織架構下的多租戶saas化模式,對於雲海oa軟體為基礎的項目方案發展來說已經成熟,資料庫當前採用獨立資料庫模式,詳情另外兩種模式可以大家過來討論。

5、什麼是多租戶模式?

SaaS現在已成為一股潮流,它將顛覆傳統的軟體交付方式
其實從架構層面來分析,SaaS區別於傳統技術的重要差別就是Multi-Tenant模式。多租戶就是說多個租戶共用一個實例,租戶的數據既有隔離又有共享,說到底就是如何解決數據存儲的問題。

現在SaaS Multi-Tenant在數據存儲上存在三種主要的方案,分別是—
方案一:獨立資料庫
這是第一種方案,即一個Tenant一個Database(見圖3-14),這種方案的用戶數據隔離級別最高,安全性最好,但成本也高。
優點:
為不同的租戶提供獨立的資料庫,有助於簡化數據模型的擴展設計,滿足不同租戶的獨特需求;如果出現故障,恢復數據比較簡單。
缺點:
增大了資料庫的安裝數量,隨之帶來維護成本和購置成本的增加。
這種方案與傳統的一個客戶、一套數據、一套部署類似,差別只在於軟體統一部署在運營商那裡。如果面對的是銀行、醫院等需要非常高數據隔離級別的租戶,可以選擇這種模式,提高租用的定價。如果定價較低,產品走低價路線,這種方案一般對運營商來說是無法承受的。

方案二:共享資料庫,隔離數據架構.即多個或所有租戶共享Database,但一個Tenant一個Schema。
優點:
為安全性要求較高的租戶提供了一定程度的邏輯數據隔離,並不是完全隔離;每個資料庫可以支持更多的租戶數量。
缺點:
如果出現故障,數據恢復比較困難,因為恢復資料庫將牽扯到其他租戶的數據;如果需要跨租戶統計數據,存在一定困難。

方案三:共享資料庫,共享數據架構.即租戶共享同一個Database、同一個Schema,但在表中通過TenantID區分租戶的數據。這是共享程度最高、隔離級別最低的模式。
優點:
三種方案比較,第三種方案的維護和購置成本最低,允許每個資料庫支持的租戶數量最多。
缺點:
隔離級別最低,安全性最低,需要在設計開發時加大對安全的開發量;數據備份和恢復最困難,需要逐表逐條備份和還原。如果希望以最少的伺服器為最多的租戶提供服務,並且租戶接受以犧牲隔離級別換取降低成本,這種方案最適合。
CRM系統未來將以中低端市場為主,所以採用第三種方案,只要做好數據隔離比較好了。千萬不可掉以輕心,SaaS下的安全性設計很重要。一般常見的安全性設計分為兩類:系統級和程序級。
系統級:
使用HTTPS協議以SSL(Security Socket Layer)交換數據,增強通信安全;通過數字簽名防止傳輸過程篡改;對用戶身份識別的UserToken使用DES演算法數據加密;業務數據定時自動備份。
程序級:
完整的許可權配置,包括功能許可權和數據許可權;客戶端輸入校驗,防止JS攻擊、XSS攻擊、SQL注入等;輔助安全設計,比如密碼控制項、圖片驗證碼、手機確認碼等。

6、國內支持企業級多租戶的SaaS平台有哪些?

中服軟體的PaaS平台支持多租戶,每個企業可以不受干擾的創建自己的系統並使用,不受其他企業用戶的影響,服務開通大約10分鍾

7、什麼是SaaS應用OFBIZ多租戶模式

SaaS現在已成為一股潮流,它將顛覆傳統的軟體交付方式
其實從架構層面來分析,SaaS區別於傳統技術的重要差別就是Multi-Tenant模式。多租戶就是說多個租戶共用一個實例,租戶的數據既有隔離又有共享,說到底就是如何解決數據存儲的問題。

現在SaaS Multi-Tenant在數據存儲上存在三種主要的方案,分別是—
方案一:獨立資料庫
這是第一種方案,即一個Tenant一個Database(見圖3-14),這種方案的用戶數據隔離級別最高,安全性最好,但成本也高。
優點:
為不同的租戶提供獨立的資料庫,有助於簡化數據模型的擴展設計,滿足不同租戶的獨特需求;如果出現故障,恢復數據比較簡單。
缺點:
增大了資料庫的安裝數量,隨之帶來維護成本和購置成本的增加。
這種方案與傳統的一個客戶、一套數據、一套部署類似,差別只在於軟體統一部署在運營商那裡。如果面對的是銀行、醫院等需要非常高數據隔離級別的租戶,可以選擇這種模式,提高租用的定價。如果定價較低,產品走低價路線,這種方案一般對運營商來說是無法承受的。

方案二:共享資料庫,隔離數據架構.即多個或所有租戶共享Database,但一個Tenant一個Schema。
優點:
為安全性要求較高的租戶提供了一定程度的邏輯數據隔離,並不是完全隔離;每個資料庫可以支持更多的租戶數量。
缺點:
如果出現故障,數據恢復比較困難,因為恢復資料庫將牽扯到其他租戶的數據;如果需要跨租戶統計數據,存在一定困難。

方案三:共享資料庫,共享數據架構.即租戶共享同一個Database、同一個Schema,但在表中通過TenantID區分租戶的數據。這是共享程度最高、隔離級別最低的模式。
優點:
三種方案比較,第三種方案的維護和購置成本最低,允許每個資料庫支持的租戶數量最多。
缺點:
隔離級別最低,安全性最低,需要在設計開發時加大對安全的開發量;數據備份和恢復最困難,需要逐表逐條備份和還原。如果希望以最少的伺服器為最多的租戶提供服務,並且租戶接受以犧牲隔離級別換取降低成本,這種方案最適合。
CRM系統未來將以中低端市場為主,所以採用第三種方案,只要做好數據隔離比較好了。千萬不可掉以輕心,SaaS下的安全性設計很重要。一般常見的安全性設計分為兩類:系統級和程序級。
系統級:
使用HTTPS協議以SSL(Security Socket Layer)交換數據,增強通信安全;通過數字簽名防止傳輸過程篡改;對用戶身份識別的UserToken使用DES演算法數據加密;業務數據定時自動備份。
程序級:
完整的許可權配置,包括功能許可權和數據許可權;客戶端輸入校驗,防止JS攻擊、XSS攻擊、SQL注入等;輔助安全設計,比如密碼控制項、圖片驗證碼、手機確認碼等。

8、誰提出的saas這一概念,這一概念最早什麼時間提出的(大致的時間段就好),感謝各位大神不吝賜教~~~~

saas理論上出現的時間在1998年或更早些,最早出現在歐美等發達國家,其最初的雛形是ASP,即應用專服務提供商,大屬概在2008年左右發展成現在的SaaS,理論的提出者沒有具體的人。

中服軟體是專業做Iaas、PaaS和SaaS的,網上有在線免費SaaS服務。

中服軟體有自主的IaaS、PaaS平台,支持在其上放入應用系統、應用插件,通過動態組裝生成用戶所需要的應用系統。目前有幾十個豐富的辦公組件,供用戶選擇。
中服軟體的雲計算平台CServer以資源庫為基礎,以多租戶軟體生產線組裝框架為手段,以提供在線服務和雲平台為目的,為用戶提供自製、動態、隨時、按需自己選擇需要的雲服務。系統涵蓋SaaS、PaaS、IaaS各個層面。

9、如何開發SaaS軟體,在架構設計、表欄位設計上有什麼特別之處?

1.分層設計

SaaS系統分層大概是:

租戶識別>應用層>數據訪問層>緩存層>資料庫

業務代碼都是寫在應用層。

租戶識別可以用spring攔截器實現,然後使用ThreadLocal傳遞給後端

資料庫和緩存層對應用層應該是透明的。程序員在寫代碼的時候,只關心業務邏輯,不應該擔心多租戶的問題。

2.數據隔離要透明

SaaS系統說起來很簡單,任何系統似乎加個tenant_id(租戶id)就變成SaaS系統了。比如原來的用戶登錄是:

select username,password from users where email='[email protected]

改成

select username,password from users where email='[email protected]' and tenant_id =1; 

對於復雜業務的SaaS系統,這樣做法非常危險,而且開發效率很低。你想想如果那個程序員寫sql時候忘了加 「 and tenant_id =1」 . 結果不堪設想。

比較好做法是在資料庫訪問層對SQL進行改寫。

TenantContext.exec("select username,password from users where email='[email protected]' "); 

在連接池根據TenatnContext改寫Sql.

這樣做好處是,一來程序猿最多把系統搞down了,也不至於信息串了互相泄露。二來將來做分表分庫也很方便,上層應用不用修改。

3. 租戶識別方案

比較好做法是通過url識別租戶。系統是給租戶生成一個隨機的三級域名,比如 abc.crm.baidu.com. 如果客戶想使用自己的域名,可以在cname到我們生成的三級域名,並在管理系統裡面做綁定。

這樣一個租戶可以有兩個域名,訪問SaaS,一個隨機生成的三級域名,另外一個租戶自己的域名.代碼裡面可以根據過來的域名,判斷是那個租戶然後初始化TenantContext.

如果不想通過域名來做,也可以通過登錄名來判斷。這種方式要涉及到租戶切換問題。

4. 智能DNS

(以後補充。)

5. 租戶管理系統(計費,訂購,定製,充值,催繳)

SaaS系統是必須考慮計費系統和租戶控制系統。這個系統需要都是獨立設計。比如那個租戶購買了那些模塊,一個月多少錢。租戶可以創建最多的用戶數。計費到期郵件提醒等功能。

計費方式一般有兩種,周期性計費,類似月租方案,和使用量計費,用多少付多少。 周期性計費比較簡單。也可以兩者結合起來。

6. 定製化開發

SaaS的優勢在於一套系統多人使用,似乎和定製化開發有沖突。比如A客戶想要A功能,B客戶不想要。但定製化開發是無法避免的,比如CRM系統這樣復雜的系統,不可能一套系統滿足所有公司的要求。定製化開發盡可能分系統,分模塊去做。然後通過控制台中配置不同租戶訂購不同模塊,那些模塊可以在前端頁面上顯示。不同的子系統需要分開部署。前端可通過nginx根據url分發,比如 abc.crm.baidu.com/bi/xxx/xx這個地址,就分發到BI子系統。不要嘗試OSGI去搞模塊化,這個是個大坑。

還有開發和產品,現有需求一定要分析清楚,不要一上線發現後患無窮。新功能盡量做的獨立可以配置。

7. 灰度升級

SaaS付費企業客戶對系統問題都特別敏感。 為了減少升級可能出現問題的影響范圍,一般都採用灰度升級策略。如果使用了url來區分不同租戶,灰度升級配置就會很方便。可以配置nginx 來根據域名做分發,比如租戶A(aaa.com)到實例1(版本1.0),租戶B(bbb.com)到實例2(版本). 當需要域名配置非常多的時候,nginx配置文檔會亂。這塊時候可以考慮使用nignx_lua來寫一些擴展模塊。

8. 容量估計

與saas多租戶同一域名相關的知識