寫這篇文章的目的其實也很簡單,聽了多年的SAAS。這次的這家企業購買的就是SAAS軟件。本人之前從事過軟件項目,對技術談不上精通,當對整個開發管理過程,技術實現原理還是非常瞭解的。所以對技術方面知識的求知心,還是非常強的。
問題:軟件是第三方的,要求對方修改,告知無法修改,需要開發週期1個半,要是原來傳統的方案,一個客戶、一套數據、一套部署,分分中秒殺。但是自己不懂SaaS開發原理與模式,溝通上就會存在問題。被騙也不知道。所以就請教了,又一城的運維,告訴我一個關鍵詞。
多租戶模式,就去百度了下。以下文章分三段?什麼是saas?什麼是多租戶模式?遺留的問題?
英文單詞解釋:本人英文太落。
database:數據庫
schema:架構
TenantID:租戶ID
multi tenant:多租戶
一、Saas介紹
SaaS是Software-as-a-Service(軟件即服務)的簡稱,隨著互聯網技術的發展和應用軟件的成熟, 在21世紀開始興起的一種完全創新的軟件應用模式。
二、多租戶模式
多租戶技術的實現重點,在於不同租戶間應用程序環境的隔離(application context isolation)以及數據的隔離(data isolation),以維持不同租戶間應用程序不會相互干擾,同時數據的保密性也夠強。
應用程序部份:通過進程或是支持多應用程序同時運行的裝載環境(例如Web Server,像是Apache或IIS等)來做進程間的隔離,或是在同一個伺服程序(server)進程內以運行緒的方式隔離。
數據部份:通過不同的機制將不同租戶的數據隔離,Force是採用中介數據(metadata)的技術來切割,微軟 MSDN 的技術文件則是展示了使用結構描述的方式隔離。
多租戶就是說多個租戶共用一個實例,租戶的數據既有隔離又有共享,從而解決數據存儲的問題。從架構層面來分析,SaaS區別
於傳統技術的重要差別就是Multi-Tenant模式。
SaaS多租戶在數據存儲上存在三種主要的方案,分別是
1.獨立數據庫
這是第一種方案,即一個租戶一個數據庫,這種方案的用戶數據隔離級別最高,安全性最好,但成本也高。
優點:
為不同的租戶提供獨立的數據庫,有助於簡化數據模型的擴展設計,滿足不同租戶的獨特需求;
如果出現故障,恢復數據比較簡單。
缺點:
增大了數據庫的安裝數量,隨之帶來維護成本和購置成本的增加。
這種方案與傳統的一個客戶、一套數據、一套部署類似,差別只在於軟件統一部署在運營商那裡。如果面對的是銀行、醫院等需要非常高數據隔離級別的租戶,可以選擇這種模式,提高租用的定價。如果定價較低,產品走低價路線,這種方案一般對運營商來說是無法承受的。
2.共享數據庫,隔離數據架構
這是第二種方案,即多個或所有租戶共享Database,但一個Tenant一個Schema。
優點:
為安全性要求較高的租戶提供了一定程度的邏輯數據隔離,並不是完全隔離;每個數據庫可以支持更多的租戶數量。
缺點:
如果出現故障,數據恢復比較困難,因為恢復數據庫將牽扯到其他租戶的數據;
如果需要跨租戶統計數據,存在一定困難。
3.共享數據庫,共享數據架構
這是第三種方案,即租戶共享同一個Database、同一個Schema,但在表中通過TenantID區分租戶的數據。這是共享程度最高、隔離級別最低的模式。
優點:
三種方案比較,第三種方案的維護和購置成本最低,允許每個數據庫支持的租戶數量最多。
缺點:
隔離級別最低,安全性最低,需要在設計開發時加大對安全的開發量;
數據備份和恢復最困難,需要逐表逐條備份和還原。
如果希望以最少的服務器為最多的租戶提供服務,並且租戶接受以犧牲隔離級別換取降低成本,這種方案最適合。
總結:
文章開篇提到的:應用程序部分與程序部分的理解。
以下為應用程序
1.服務器系統:Windowsserver、UNIX、Linux、NetWare這四大陣容。
2.軟件環境:IIS+ASP+ASP.net+PHP+MySQL+FTP+PhpMyAdmin+偽靜態
(這裡只做舉例)
以下為程序部分:
就是數據庫:MySQL,MSSQL,Oracle,等等。
多租戶的三種模式:
1.獨立數據庫:這種模式最好理解,就是一個租戶一個獨立的數據庫。
2.共享數據庫,隔離數據架構:
數據庫只有一個,但是數據架構隔離。
即多個或所有租戶共享Database,但一個Tenant一個Schema。
關於這個數據架構隔離,只是理解但是,還是不懂。後面再補。或者把schema當成一個集合理解吧。
3.共享數據庫,共享數據架構
這是第三種方案,即租戶共享同一個Database、同一個Schema,但在表中通過TenantID區分租戶的數據。這是共享程度最高、隔離級別最低的模式。
我對這個的理解就是:表名不一樣。
以上文章只能提供,有需要的夥伴對多租戶模式的理解。其他的本人能力有限,到此為止。後期再續。
閱讀更多 產品經理Jack 的文章
關鍵字: 通信 phpMyAdmin ASP