什麼是多租戶架構? - Codonomics

banq發表於2020-08-31

多租戶應用程式部署體系結構可以透過4種廣泛的方式建模:
  1. 單獨的應用程式和單獨的資料庫
  2. 共享應用程式和共享資料庫
  3. 單獨的應用程式和共享資料庫
  4. 共享應用程式和單獨的資料庫

這裡沒有對與錯。您應該考慮業務背景和約束條件,這是關於選擇和後果的。在本文中,我打算記下一些關鍵點,以牢記這些多租戶體系結構中的每一個。 

什麼是多租戶架構? - Codonomics
 

單獨的應用程式和單獨的資料庫

  • 從開發和部署的角度來看,最容易實現。
  • 只需為每個租戶自動化部署基礎架構即可快速設定。
  • 從基礎架構成本的角度來看,所有模型中最昂貴的。
  • 大規模部署相對較長的部署時間以用於更新的應用程式版本。 
  • 從基礎設施資源利用的角度來看,浪費更多。
  • 應用程式的可伸縮性無狀態標準意味著:
    • 不儲存使用者請求資料
  • 適應性:
    • 這是啟動SAAS平臺的最佳方法,可用於產品市場,直至穩定和增長。
    • 當您提供SAAS作為白色標籤的產品時。
    • 在客戶端基礎結構上部署SAAS產品時,可能出於合規性原因。
  • 挑戰:
    • 您如何最佳化成本資源?

 

共享應用程式和共享資料庫

  • 所有多租戶架構中最複雜的野獸。
  • 最大限度地利用紅外線利用率,以實現最大的盈利能力。 
  • 挑戰:  
    • 隨著交易量和資料量的增加,您如何管理?關聯式資料庫憑藉其優點是可以垂直伸縮的,而不能水平伸縮的。現在,這意味著隨著您加入越來越多的租戶,它可能會比您想象的更快成為瓶頸,具體取決於交易和資料量。
    • 如果SaaS應用程式在UI上提供了許多自定義功能,那麼您如何最佳地獲得針對租戶的特定配置以獲得延遲?Wix電子商務Shopify

 

單獨的應用程式和共享資料庫

  • 一種模型,其中特定於租戶的配置與已部署的例項相關聯,但是都共享一個公共資料庫。每個客戶端的資料隔離是透過在資料庫模式之前新增租戶資訊來實現的。 
  • 您有許多Web框架和Web外掛都支援這種帶有租戶特定資料的字首查詢模型,以找到正確的資料來源。例如,apartment (rails/ruby), multi-tenant (laravel/php),springboot(java)等。
  • 關聯式資料庫例項非常昂貴。它比您的應用程式例項價格更高,並且不如您的計算例項那麼容易處理。您需要對容量規劃進行一些前瞻性的展望。
  • 當您以SaaS提供者的身份管理資料庫例項並希望在總體成本上進行最佳化時,最簡單的操作通常是使用共享資料庫。
  • 應用程式的可伸縮性無狀態標準意味著:
    • 不儲存使用者請求資料
    • 不保留資料庫響應
  • 挑戰: 
    • 隨著交易量和資料量的增加,您如何管理?關聯式資料庫憑藉其優點是可以垂直伸縮的,而不能水平伸縮的。現在,這意味著隨著您加入越來越多的租戶,它可能會比您想象的更快成為瓶頸,具體取決於交易和資料量。

 

共享應用程式和單獨的資料庫

  • 請求可以命中任何可用的應用程式例項。
  • 每個請求都會動態獲取租戶特定的配置。
  • 應用程式的可伸縮性無狀態標準意味著:
    • 不儲存使用者請求資料
    • 不持有租戶的配置
    • 不保留資料庫響應
  • 挑戰: 
    • 如何在每個請求的基礎上動態訪問正確的資料庫?您如何最佳地進行延遲?想想Atlassian的ConfluenceJiraBitbucket等產品套件。
    • 如果SaaS應用程式在UI上提供了很多自定義功能,您如何最佳地獲得針對租戶的特定配置以獲得延遲?Wix電子商務Shopify

 
希望能幫助您選擇SAAS體系結構的設計...
與此相關的是,有幾本書值得您閱讀:

相關文章