SAAS系统架构之成熟度模型
1.概述
對于SAAS應用的架構師而言,尤其是從傳統軟件轉型到SAAS的架構師,遇到的首要挑戰就是多租戶思維的轉變。傳統軟件的銷售模式決定了軟件的每一個運行實例都服務于一個客戶,因此對于性能、可配置性、伸縮性方面的處理策略都是針對單一客戶所設計的。而對于SAAS應用,為了最大化SAAS的規模效應,一般采用的都是多個租戶共享一個實例的架構(Multi-Tenant架構,及多租戶架構)。如何在Multi-Tenant架構下,實現SAAS的高性能、可配置、可伸縮的目標,就是SAAS應用架構師所面臨的最大挑戰。這些也構成了SAAS成熟度模型的主要特性。
2.SAAS成熟度模型分級
根據SAAS應用是否具有可配置性、高性能、可伸縮性的特性,SAAS成熟度模型被分為四級,每一級都比前一級增加以上三種特性中的一種?
| 可配置 | 高性能 | 可伸縮 | |
| Level1 | × | × | × |
| Level2 | √ | × | × |
| Level3 | √ | √ | × |
| Level4 | √ | √ | √ |
3.SAAS成熟度模型應用架構
(1)最初級的SAAS應用成熟度模型與20世紀末的第一次互聯網浪潮中曾經一度流行的ASP(Application Service Provider?)基本一致的。在這種模型下,軟件服務提供商為每一個客戶定制一套軟件,并為其部署。每個客戶使用一個獨立的數據庫實例和應用服務器實例。數據庫中數據結構和應用的代碼可能都根據客戶需求做過定制化修改。
(2)在第二級成熟度模型中,軟件的部署架構沒有發生太大變化,依然是每個客戶獨立部署一個運行實例。只是每個運行實例運行的是同一份代碼,通過配置的不同滿足不同客戶的個性化需求
(3)在第三級別成熟度模型下,實現多租戶高性能架構
變化:
- 在傳統應用模型的基礎上,增加一個Tenant表,用于描述租戶信息。?
- 在大部分與租戶有關的數據表中增加tenant_id字段
- 業務數據查詢過濾時,都增加上tenant_id=?過濾條件
(4)第四級成熟度模型,可伸縮性的多租戶架構
? ? ? 實現了多租戶單實例的架構后,隨著租戶數量的組件增加,集中式的數據庫性能就將成為整個SAAS應用的性能瓶頸,如果不進一步考慮數據庫的分區設計,則只能依靠于更強大的硬件設備來向上擴展(scale up),當應用規模增長帶來的壓力達到單一設備的極限時,最終導致SAAS應用架構難以滿足低成本運營需要。
如果通過一定的策略來滿足SAAS應用的水平擴展(scale out),成為SAAS應用架構需要解決的問題。即在用戶數大量增加的情況下,無須更改應用架構,僅需簡單增加硬件設備的數量,就可以支撐應用規模的增長。不管用戶多少,都能像單用戶一樣方便地實施應用修改。這就是第四級也是最高級別的SAAS所要致力解決的問題。
參考書籍《互聯網時代的革命-SAAS應用架構》
總結
以上是生活随笔為你收集整理的SAAS系统架构之成熟度模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 考研数学笔记 21~25
- 下一篇: 决策树的生成—ID3算法