SaaS的成功,不僅源于其對商業(yè)模式的變革淆九,還有賴技術(shù)架構(gòu)上的創(chuàng)新统锤。前者簡言之,是軟件從“產(chǎn)品”到“服務”的思維轉(zhuǎn)變炭庙;后者簡言之饲窿,便是伴隨“軟硬件、網(wǎng)絡焕蹄、系統(tǒng)維護”等重任轉(zhuǎn)嫁“軟件開發(fā)者”所帶來的規(guī)模效應的發(fā)揮逾雄。
SaaS成熟度模型分級,正是衡量規(guī)模效應的重要指標腻脏。
分級依據(jù)
是否具有可配置性鸦泳、高性能、可伸縮等特性永品。
四個分級
一級成熟度模型:不可配置做鹰、無高性能、不可伸縮鼎姐;
二級成熟度模型:可配置钾麸、無高性能更振、不可伸縮;
三級成熟度模型:可配置喂走、高性能殃饿、不可伸縮;
四級成熟度模型:可配置芋肠、高性能乎芳、可伸縮;
一級成熟度模型:定制開發(fā)
初級成熟度模型帖池,被定義為 Ad Hoc/Custom(特定的/定制的)奈惑,即軟件服務提供商為每個客戶定制一套專屬軟件,不同軟件版本有分屬的獨立代碼睡汹,并被分別部署在不同的數(shù)據(jù)庫實例和應用服務器實例上肴甸。這種模型下,數(shù)據(jù)庫中的數(shù)據(jù)結(jié)構(gòu)和應用代碼囚巴,均可根據(jù)用戶需求做定制化修改原在;而不同軟件之間,只有少量的可重用組件彤叉、庫庶柿、開發(fā)經(jīng)驗可共享和重用。
初級成熟度模型秽浇,較之傳統(tǒng)的項目型軟件開發(fā)或軟件外包浮庐,僅在商業(yè)模式上有所差別,即軟硬件和維護職責由SaaS服務提供商承擔柬焕;而在技術(shù)架構(gòu)上沒有明顯差異:傳統(tǒng)的“項目型軟件開發(fā)”即符合這一特性审残;傳統(tǒng)的C/S、B/S軟件斑举,經(jīng)商業(yè)模式改造(由軟件商部署軟件搅轿,用戶按需付費,應用架構(gòu)上不做調(diào)整)富玷,也可轉(zhuǎn)變?yōu)镾aaS初級成熟度模型介时。
二級成熟度模型:可配置
由于初級成熟度模型,需按客戶需求做獨立代碼定制開發(fā)凌彬,不同客戶的代碼亦需獨立部署沸柔。因此,隨著客戶數(shù)量增多铲敛,客戶所對應的定制開發(fā)成本褐澎、軟硬件以及運行維護成本必然成比例增長,系統(tǒng)的規(guī)模集成優(yōu)勢難以發(fā)揮伐蒋。 這種情況下工三,有實力的軟件公司迁酸,便從項目軟件定制開發(fā),轉(zhuǎn)攻可配置的通用型軟件俭正,這就是SaaS二級成熟度的雛形奸鬓。
二級成熟度模型,跟一級成熟度模型一樣掸读,在應用架構(gòu)上與傳統(tǒng)軟件相比沒有多大差別串远,依然為每個客戶獨立部署一個運行實例。只是儿惫,與一級成熟度模型中“每個實例專屬一份代碼”相比澡罚,二級成熟度模型中,每個實例共享同一份代碼肾请,而客戶的個性化需求留搔,僅通過不同的配置來實現(xiàn)。
滿足二級成熟度模型的軟件铛铁,比如B2C網(wǎng)上商城系統(tǒng)隔显、論壇系統(tǒng)等,軟件的硬件部署饵逐、網(wǎng)絡環(huán)境和運行維護等工作荣月,由軟件提供商承擔,客戶的個性化需求通過不同配置來實現(xiàn)梳毙,而客戶僅需支付年服務費即可。
可配置性捐下,作為“二級成熟度模型區(qū)分于一級成熟度模型”的重要特性账锹,承擔著替代定制開發(fā)和降低開發(fā)成本的重任。然而坷襟,可配置性常通過MetaData(元數(shù)據(jù))來實現(xiàn)奸柬,這便為非基于元數(shù)據(jù)而設計的傳統(tǒng)應用架構(gòu),帶來了從底層開始的大量的系統(tǒng)改造問題婴程。
三級成熟度模型:高性能的多租戶架構(gòu)
三級成熟度模型廓奕,一改一、二級成熟度模型“多租戶多實例”的架構(gòu)档叔,用“多租戶單實例”的Multi-Tenant架構(gòu)取而代之桌粉,從而極大地發(fā)揮了SaaS應用的規(guī)模效應(有效降低了硬件和運行維護成本)。目前用戶量較大的互聯(lián)網(wǎng)應用衙四,其應用架構(gòu)基本上都采用了三級成熟度模型铃肯。
“隔離不同租戶數(shù)據(jù),確保不同租戶共享同一個運行實例的基礎上传蹈,為每個租戶提供獨立的應用體驗和數(shù)據(jù)空間”押逼,是目前實現(xiàn)Multi-Tenant架構(gòu)的關(guān)鍵步藕。客戶需求差別不大且客戶數(shù)量也不很大的情況下挑格,通過獨立數(shù)據(jù)庫咙冗、共享數(shù)據(jù)庫、獨立數(shù)據(jù)結(jié)構(gòu)漂彤、共享數(shù)據(jù)結(jié)構(gòu)等方案雾消,將一、二級成熟度模型显歧,改造成Multi-Tenant架構(gòu)的工作不會太復雜仪或。但基于Multi-Tenant架構(gòu)的互聯(lián)網(wǎng)特性(高數(shù)據(jù)量、高并發(fā)量) 士骤,要想將單實例的傳統(tǒng)架構(gòu)改造成 ?Multi-Tenant架構(gòu)范删,就不是那么容易了。另外拷肌,Multi-Tenant架構(gòu) 在實現(xiàn)可配置性方面到旦,相對傳統(tǒng)軟件也有較大差別(如數(shù)據(jù)模型的擴展方案等)。
四級成熟度模型:可伸縮性的多租戶架構(gòu)
四級SaaS成熟度模型巨缘,通過將三級成熟度模型Multi-Tenant SingleInstance系統(tǒng)添忘,擴展為Multi-Tenant MultiInstance,以及增加Tenant Load Balance層若锁,將已接入用戶數(shù)據(jù)分配到不同Instance以分擔用戶訪問的方式搁骑,解決多租戶單實例應用架構(gòu)下,集中式數(shù)據(jù)庫隨租戶數(shù)量增多而性能受限的問題又固。這是一種高效的水平擴展策略仲器,在租戶數(shù)量大增時,無需更改應用架構(gòu)仰冠,而僅需簡單增加硬件設備數(shù)量 乏冀,就可實現(xiàn)“支撐應用規(guī)模增長,方便實施應用修改”的效果洋只。
四級成熟度模型辆沦,其實現(xiàn)難點在于“針對原有單個Instance的數(shù)據(jù)庫服務器,實現(xiàn)其數(shù)據(jù)的水平拆分”识虚,而拆分結(jié)果是多實例的數(shù)據(jù)水平拆分框架肢扯。 架構(gòu)中,Tenant Load Balance 層會存放用戶担锤、租戶與對應的Instance對應關(guān)系鹃彻,并將登陸的用戶定向到相應的Instance。隨著用戶數(shù)量增多妻献,適當增加Instance數(shù)量便可滿足更多租戶的使用問題蛛株。