什么是SaaS
SaaS 是英文Software as a Service的縮寫,中文的意思是:軟件即服務(wù),核心概念就是軟件的服務(wù)化,基于客戶對軟件的需求實際上是對服務(wù)的需求的理念,是軟件由第二產(chǎn)業(yè)(基于生產(chǎn)制造)向第三產(chǎn)業(yè)(基于服務(wù))升級的結(jié)果。
SaaS的優(yōu)劣
優(yōu)點
- 與用戶而言
- 拿來即用
- 無須維護
- 按需使用
- 隨處可用
- 低風險
- 低成本
- 較高防毒
- 與服務(wù)商而言
- 節(jié)省銷售成本
- 節(jié)省維護成本
- 可持續(xù)發(fā)展
缺點
- 依賴互聯(lián)網(wǎng)
- 數(shù)據(jù)安全性
- 數(shù)據(jù)保密性
SaaS的成熟度模型
1. 多租戶
多租戶也就是Multi-Tenant架構(gòu),多租戶單實例可以有效的降低SaaS應(yīng)用的硬件及運行維護成本,最大化地發(fā)揮SaaS應(yīng)用的規(guī)模效應(yīng)
目前互聯(lián)網(wǎng)上的大部分SaaS應(yīng)用,尤其是用戶量比較大的互聯(lián)網(wǎng)應(yīng)用,如Email,Blog等,其應(yīng)用架構(gòu)都是符合Multi-Tenant架構(gòu)的
要實現(xiàn)Multi-Tenant架構(gòu)的關(guān)鍵是通過一定的策略來保證不同租戶間的數(shù)據(jù)隔離,確保不同租戶既能共享同一個應(yīng)用的運行實例,又能為用戶提供獨立的應(yīng)用體驗和數(shù)據(jù)空間。目前最常見的方案是增加租戶表,并且在大部分業(yè)務(wù)數(shù)據(jù)表中增加TENANTID字段,然后在登錄邏輯中緩存用戶所屬租戶TENANTID,查詢時都帶上該過濾字段
2. 可配置
可配置要求在一定程度下為不同客戶做對應(yīng)的配置以實現(xiàn)個性化需求,即達到降低因需求不同然產(chǎn)生的定制開發(fā)成本,又提升了用戶體驗
3. 高性能
在當前互聯(lián)網(wǎng)如此流行的當下,流量為王,用戶體驗越好越能留下用戶,而首要一點就是用戶訪問服務(wù)時的響應(yīng)速度,有研究表明,用戶最滿意的打開網(wǎng)頁的時間是2秒以下,超過這個界限時間越多,用戶流失率越快,因此需要超高性能的保證。當前最常見的解決方案是負載均衡+分布式。
4. 可伸縮
可伸縮性是讓系統(tǒng)在達到瓶頸的情況下平滑的無限的水平拓展,單臺機器的提升成本曲線在越接近科技極限的情況下幅度越大,而增加相同配置的成本曲線則非常平滑,這樣可以大大節(jié)約成本,同時對突發(fā)情況的應(yīng)對能力也更強。
選擇合適的SaaS成熟度模型
在實現(xiàn)SaaS架構(gòu)的時候可以分階段實現(xiàn)成熟度模型,在通常情況下,可以優(yōu)先實現(xiàn)多租戶,然后實現(xiàn)高性能,在實現(xiàn)可配置,最后實現(xiàn)可伸縮;但是具體問題具體分析,這不是定論,終究需要根據(jù)現(xiàn)實情況業(yè)務(wù)情況進行考量。需要考慮的因素可能包括:
- 你的產(chǎn)品所面向的客戶群的特征和需求
- 你的產(chǎn)品的租戶數(shù)量級別
- 你的團隊的開發(fā)能力與愿意付出的開發(fā)/改造成本
學習書籍
《互聯(lián)網(wǎng)時代的軟件革命——SaaS架構(gòu)設(shè)計》