Wingtip Tickets SaaS 應用程式
適用於:Azure SQL 資料庫
相同的 Wingtip Tickets SaaS 應用程式會分別在三個範例中實作。 應用程式是一個簡單的活動清單和票證 SaaS 應用程式,以小型場地為目標:劇院、俱樂部等等。 每個場地都是應用程式的租使用者,而且有自己的數據,例如場地詳細數據、活動清單、客戶、票證訂單等等。 應用程式會與管理腳本和教學課程一起展示端對端 SaaS 案例。 其中包括佈建租用戶、監視及管理效能、結構描述管理,以及跨租用戶報告和分析。
三個 SaaS 應用程式和租用模式
應用程式有三個可用的版本;每個版本分別會在 Azure SQL Database 上探索不同的資料庫租用模式。 第一個模式會使用每一租用戶一個獨立應用程式模式搭配它自己的資料庫。 第二個方法是使用具有每個租戶專屬資料庫的多租戶應用程式。 第三個範例使用多租戶應用程式及分片的多租戶資料庫。
每個範例都包含應用程式程式碼,以及管理指令碼,和會探索特定範圍的設計與管理模式的教學課程。 每個範例都可在五分鐘內完成部署。 這三個範例可用並存的方式部署,以便您比較設計和管理上的差異。
每一租用戶一個獨立應用程式模式
每一租用戶一個獨立應用程式模式會使用每個租用戶分別有一個資料庫的單一租用戶應用程式。 每個租用戶的應用程式 (包含其資料庫) 會部署至個別的 Azure 資源群組中。 資源群組可以部署在服務提供者的訂用帳戶或租用戶的訂用帳戶中,並代表租使用者由提供者管理。 每一租用戶一個獨立應用程式模式會提供最大的租用戶隔離性,但通常最耗費資源,因為無法在多個租用戶之間共用資源。 此模式相當適合可能更複雜、且部署至較少租用戶的應用程式。 透過獨立部署,相較於其他模式,可更輕鬆地針對每個租用戶自訂應用程式。
請參閱教學課程和 GitHub .../Microsoft/WingtipTicketsSaaS-StandaloneApp 上的程式碼。
每一租用戶一個資料庫的模式
對於注重租用戶隔離性,並且想要執行集中式服務以有效運用共用資源而發揮成本效益的服務提供者,使用「每一租用戶一個資料庫的模式」將有其效用。 針對每個場所或租用戶分別會建立一個資料庫,且所有資料庫會集中受到管理。 資料庫可以裝載在彈性集區中,以提供符合成本效益且輕鬆的效能管理,以管理租用戶無法預測的工作負載模式。 目錄資料庫會包含租用戶和其資料庫之間的對應。 此對應可使用能夠對應用程式進行有效連線管理的彈性資料庫用戶端程式庫的分區對應管理功能來管理。
請參閱教學課程和 GitHub .../Microsoft/WingtipTicketsSaaS-DbPerTenant 上的程式碼。
分片多重租戶資料庫模式
多租戶資料庫對於尋求每個租戶成本較低且對於租戶隔離要求較低的服務提供商而言非常有效。 此模式可將大量租用戶封裝到個別資料庫中,而降低每一租用戶的成本。 您可以將租戶分片到多個資料庫,以實現幾乎無限的規模。 目錄資料庫會將租用戶對應到資料庫。
此模式也允許 混合式 模型,您可以在資料庫中針對多個租戶的成本進行優化,或者在租戶自己的資料庫中針對隔離性進行優化。 您可以在每個租使用者布建時或稍後進行選擇,選擇不會影響應用程式。 必須以不同方式處理租用戶的群組時,可以有效地使用此模型。 例如,可以將低成本的租用戶指派給共用資料庫,而將進階租用戶指派給他們自己的資料庫。
請查看 GitHub 上的 Wingtips 教學課程()和程式代碼(WingtipTicketsSaaS-MultiTenantDB)(https://github.com/Microsoft/WingtipTicketsSaaS-MultiTenantDb)。