從定制開發,到多租戶架構 | 看SAAS 的4級成熟度模型

SaaS的成功,不僅源于其對商業模式的變革,還有賴技術架構上的創新。前者簡言之,是軟件從“產品”到“服務”的思維轉變;后者簡言之,便是伴隨“軟硬件、網絡、系統維護”等重任轉嫁“軟件開發者”所帶來的規模效應的發揮。

SaaS成熟度模型分級,正是衡量規模效應的重要指標。

分級依據

是否具有可配置性、高性能、可伸縮等特性。

四個分級

一級成熟度模型:不可配置、無高性能、不可伸縮;

二級成熟度模型:可配置、無高性能、不可伸縮;

三級成熟度模型:可配置、高性能、不可伸縮;

四級成熟度模型:可配置、高性能、可伸縮;

一級成熟度模型:定制開發


初級成熟度模型,被定義為 Ad Hoc/Custom(特定的/定制的),即軟件服務提供商為每個客戶定制一套專屬軟件,不同軟件版本有分屬的獨立代碼,并被分別部署在不同的數據庫實例和應用服務器實例上。這種模型下,數據庫中的數據結構和應用代碼,均可根據用戶需求做定制化修改;而不同軟件之間,只有少量的可重用組件、庫、開發經驗可共享和重用。

初級成熟度模型,較之傳統的項目型軟件開發或軟件外包,僅在商業模式上有所差別,即軟硬件和維護職責由SaaS服務提供商承擔;而在技術架構上沒有明顯差異:傳統的“項目型軟件開發”即符合這一特性;傳統的C/S、B/S軟件,經商業模式改造(由軟件商部署軟件,用戶按需付費,應用架構上不做調整),也可轉變為SaaS初級成熟度模型。

二級成熟度模型:可配置


由于初級成熟度模型,需按客戶需求做獨立代碼定制開發,不同客戶的代碼亦需獨立部署。因此,隨著客戶數量增多,客戶所對應的定制開發成本、軟硬件以及運行維護成本必然成比例增長,系統的規模集成優勢難以發揮。 這種情況下,有實力的軟件公司,便從項目軟件定制開發,轉攻可配置的通用型軟件,這就是SaaS二級成熟度的雛形。

二級成熟度模型,跟一級成熟度模型一樣,在應用架構上與傳統軟件相比沒有多大差別,依然為每個客戶獨立部署一個運行實例。只是,與一級成熟度模型中“每個實例專屬一份代碼”相比,二級成熟度模型中,每個實例共享同一份代碼,而客戶的個性化需求,僅通過不同的配置來實現。

滿足二級成熟度模型的軟件,比如B2C網上商城系統、論壇系統等,軟件的硬件部署、網絡環境和運行維護等工作,由軟件提供商承擔,客戶的個性化需求通過不同配置來實現,而客戶僅需支付年服務費即可。

可配置性,作為“二級成熟度模型區分于一級成熟度模型”的重要特性,承擔著替代定制開發和降低開發成本的重任。然而,可配置性常通過MetaData(元數據)來實現,這便為非基于元數據而設計的傳統應用架構,帶來了從底層開始的大量的系統改造問題。

三級成熟度模型:高性能的多租戶架構


三級成熟度模型,一改一、二級成熟度模型“多租戶多實例”的架構,用“多租戶單實例”的Multi-Tenant架構取而代之,從而極大地發揮了SaaS應用的規模效應(有效降低了硬件和運行維護成本)。目前用戶量較大的互聯網應用,其應用架構基本上都采用了三級成熟度模型。

“隔離不同租戶數據,確保不同租戶共享同一個運行實例的基礎上,為每個租戶提供獨立的應用體驗和數據空間”,是目前實現Multi-Tenant架構的關鍵。客戶需求差別不大且客戶數量也不很大的情況下,通過獨立數據庫、共享數據庫、獨立數據結構、共享數據結構等方案,將一、二級成熟度模型,改造成Multi-Tenant架構的工作不會太復雜。但基于Multi-Tenant架構的互聯網特性(高數據量、高并發量) ,要想將單實例的傳統架構改造成 ?Multi-Tenant架構,就不是那么容易了。另外,Multi-Tenant架構 在實現可配置性方面,相對傳統軟件也有較大差別(如數據模型的擴展方案等)。

四級成熟度模型:可伸縮性的多租戶架構


四級SaaS成熟度模型,通過將三級成熟度模型Multi-Tenant SingleInstance系統,擴展為Multi-Tenant MultiInstance,以及增加Tenant Load Balance層,將已接入用戶數據分配到不同Instance以分擔用戶訪問的方式,解決多租戶單實例應用架構下,集中式數據庫隨租戶數量增多而性能受限的問題。這是一種高效的水平擴展策略,在租戶數量大增時,無需更改應用架構,而僅需簡單增加硬件設備數量 ,就可實現“支撐應用規模增長,方便實施應用修改”的效果。

四級成熟度模型,其實現難點在于“針對原有單個Instance的數據庫服務器,實現其數據的水平拆分”,而拆分結果是多實例的數據水平拆分框架。 架構中,Tenant Load Balance 層會存放用戶、租戶與對應的Instance對應關系,并將登陸的用戶定向到相應的Instance。隨著用戶數量增多,適當增加Instance數量便可滿足更多租戶的使用問題。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容