《互聯(lián)網時代的軟件革命 SaaS架構設計》學習筆記
1、背景
云計算提供的強大軟硬件環(huán)境和基礎服務,將逐漸成為支撐SaaS應用的基礎設施。各個云計算平臺所包含的大量具有自身特色的公共服務,將為SaaS應用的開發(fā)提供了豐富的資源。而統(tǒng)一整合各個云計算平臺的公共服務,也成為了SaaS服務集成平臺SIP的發(fā)展目標。未來的SaaS應用將架構在又SIP整合的多個云計算平臺上。
2、SaaS商業(yè)模式
2.1、什么是SaaS
ASP是Application Service Provider“應用服務提供商”,這種模式將用于需要的軟件統(tǒng)一部署在應用提供商的軟硬件環(huán)境中,軟件運行所需的人力、物力資源都有提供商維持,而用戶只需要在自己辦公室使用這些軟件即可。------重點在于提供有軟硬件環(huán)境這樣的服務,且網絡帶寬和軟件技術上有限制,ASP用戶體驗不好,用戶無法接受自己軟件和數(shù)據(jù)交由第三方托管。
SaaS是Software as Service“軟件即服務”,用戶對軟件的需求實際上是對應用服務的需求,而用戶使用軟件實際是在消費應用服務。軟件的用戶是服務的需求者和消費者,而軟件的提供商是服務的提供者和生產者。----對于軟件來說,離開軟件提供商的支持和維護,很難真正用起來。
ASP | SaaS | ||
---|---|---|---|
不同點 | 看問題角度 | 站在軟件開發(fā)商角度看問題,希望以一種新的新式向用戶提供軟件 | 站在用戶角度看問題,考慮用戶需要什么,搞清楚提供軟件的本質是未來提供服務 |
不同點 | 關注目標 | 開發(fā)商只是為了解決用戶硬件環(huán)境的持續(xù)維護問題,應用服務的統(tǒng)一托管 | 關注軟件本身,是否能為用戶提供有效的服務 |
相同點 | SaaS和ASP之間形似而神不似 |
2.2、SaaS軟件的優(yōu)勢:
2.3、SaaS劣勢:
- 對互聯(lián)網的依賴,已經不是問題
- 數(shù)據(jù)安全性:傳統(tǒng)軟件用戶數(shù)據(jù)存放在自己的電腦商或企業(yè)自己的服務器中,用戶自己維護數(shù)據(jù)的安全性;-SaaS軟件的數(shù)據(jù)庫一般配備有雙機熱備分系統(tǒng),實時備份用戶數(shù)據(jù)。
- 數(shù)據(jù)保密性:傳統(tǒng)軟件數(shù)據(jù)由用戶自己保管;SaaS軟件商自身信用建設。
3.SaaS應用架構
3.1、SaaS成熟度模型
SaaS相對傳統(tǒng)軟件,將原本由軟件使用者所承擔的軟硬件、網絡、系統(tǒng)維護的費用,轉成支付給SaaS服務提供商的租用費用;
對SaaS服務提供商,依然需要承擔相應的軟硬件、網絡、系統(tǒng)維護等費用。除了降低軟件使用者的第一次一次性投入成本呢,將一次性的投入轉變?yōu)闀r間、需求的逐步投入。
比較項 | 傳統(tǒng)軟件200個客戶的綜合成本 | SaaS軟件200個客戶的綜合成本 |
---|---|---|
軟件開發(fā)成本 | 取決與客戶需求的異同,以及軟件可配置性的強弱 | 1個軟件開發(fā)成本 |
服務器成本 | 200臺服務器 | 10臺服務器 |
網絡設備成本 | 200套 | 5-10套 |
IT維護人員成本 | 200人 | 2-3人 |
3.2、SaaS成熟模型分級
SaaS軟件要降低企業(yè)綜合使用成本最主要的手段是發(fā)揮SaaS的規(guī)模效應。
規(guī)模效應是商業(yè)模式和應用架構,一般采用多個租戶共享一個運行實例的架構(Multi-Tenant,多租戶架構),高性能,可配置,伸縮性。
可配置 | 高性能 | 可伸縮 | |
---|---|---|---|
Level1 | × | × | × |
Level2 | √ | × | × |
Level3 | √ | √ | × |
Level4 | √ | √ | √ |
Level1:設備托管
Level2:設備共享、可配置化
Level3:多租戶、數(shù)據(jù)隔離、高性能
Level4:多租戶、可配置、可伸縮
3.2.1、Level1 定制開發(fā)
軟件服務提供商為每一個客戶定制一套軟件,并為其部署。獨立數(shù)據(jù)庫實例和應用服務器實例,數(shù)據(jù)庫中的數(shù)據(jù)結構和應用的代碼可跟進客戶需求做定制化修改。
3.2.2、Level2 可配置
開發(fā)通用型產品,為滿足不同客戶的不同需求,通用性產品具有配置性,客戶通過簡單的配置滿足自己的個性化需求。為每個客戶獨立部署一個運行實例,每個運行實例運行同一份代碼,通過配置的不同需求滿足客戶的個性化需求。
3.2.3、Level3 高性能的多租戶架構
多租戶實例的應用架構可以有效降低SaaS應用的硬件即運行維護成本,最大化的發(fā)揮SaaS規(guī)模效應。
實現(xiàn)Multi-Tenant架構的關鍵是通過一定的策略保證不同租戶間的數(shù)據(jù)隔離,確保不同租戶既能共享一個應用的運行實例,又能為用戶提供獨立的應用體驗和數(shù)據(jù)空間。
獨立數(shù)據(jù)庫、共享數(shù)據(jù)庫獨立數(shù)據(jù)結構、共享數(shù)據(jù)結構。
實現(xiàn)方式:
- 在傳統(tǒng)企業(yè)應用的數(shù)據(jù)模型基礎商,增加一個Tenant表,用于描述租戶信息。
- 在大部分與租戶有關的業(yè)務數(shù)據(jù)表中添加TENANT_ID 字段。
- 數(shù)據(jù)模型改造完成后,還需要改造登錄邏輯,在會話記錄用戶屬性的TENANT_ID。
- 在業(yè)務數(shù)據(jù)查詢過濾時,都加上TENANT_ID =?過濾條件。
3.2.4、Level4 可伸縮的多租戶架構
隨著租戶數(shù)量的逐漸增加,集中式的數(shù)據(jù)庫性能就將成為整個SaaS應用的性能瓶頸,如果不進一步考慮數(shù)據(jù)庫的分區(qū)設計,就只能依賴更強大的硬件設備來向上擴展。單一設備極限,導致SaaS架構無法滿足低成本運營需求。
水平擴展在用戶數(shù)大量增加的情況下,無需修改應用架構,僅簡單增加硬件設備的數(shù)量,就可以支撐應用規(guī)模增長。
從Multi-Tenant SingleInstance系統(tǒng)擴展為Multi-Tenant MultiInstance。用戶首先通過接入Tenant Load Balance層,再被分配到不同的Instance上,通過多個Instance來分擔用戶訪問,實現(xiàn)水平擴展。
數(shù)據(jù)庫實現(xiàn)方式:
Tenant Load Balance層會存放用戶、租戶、對應的Instance的映射關系,用戶登錄后即可通過映射關系,將用戶重定向到相應的Instance。
3.3、如何選擇合適的SaaS架構
考慮因素包括:
- 你的產品所面向的客戶群的特征與需求;
客戶是否原因接受共享應用的模型、個性化需求是否強烈 - 你的產品的租戶數(shù)量級別;
成熟度高的SaaS產品開發(fā)成本(開發(fā)維護成本)更高,租戶數(shù)量決定選擇的成熟程度。
租戶小于10個,多租戶架構帶來的收益并不大;大于50之后,多租戶架構是SaaS的必然選擇。
租戶數(shù)量在10000以下時,可伸縮性無需考慮;租戶在50000~100000甚至更高時需要重點考慮伸縮性 - 你的團隊的開發(fā)能力與你們愿意付出的開發(fā)/改造成本
下一篇就多租戶-高性能多租戶-可配置多租戶-可伸縮多租戶具體實現(xiàn)解釋文章來源:http://www.zghlxwxcb.cn/news/detail-786969.html
侵權請聯(lián)系刪除文章來源地址http://www.zghlxwxcb.cn/news/detail-786969.html
到了這里,關于SaaS 架構基礎理論(一)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!