A standalone sample SaaS application for a single tenant, built on Azure SQL Database, built on Azure SQL Database. Includes management scripts for a range of scenarios.
Перейти к файлу
microsoft-github-policy-service[bot] 419db44014
Auto merge mandatory file pr
This pr is auto merged as it contains a mandatory file and is opened for more than 10 days.
2022-11-28 19:11:33 +00:00
App Changing template storage location 2019-02-03 16:51:01 -08:00
Documentation added updated patterns image 2018-04-13 14:47:41 -07:00
Learning Modules Moving dll to 'lib' folder 2018-04-04 13:15:24 -07:00
.gitattributes Initial Commit 2017-10-06 13:07:28 +05:30
.gitignore Moving dll to 'lib' folder 2018-04-04 13:15:24 -07:00
LICENSE Initial Commit 2017-10-06 13:07:28 +05:30
README.md Tweak layout 2018-01-29 10:06:26 -08:00
SECURITY.md Microsoft mandatory file 2022-08-15 21:15:36 +00:00

README.md

Wingtip Tickets SaaS - Standalone Application (aka App-per-tenant)

A sample standalone single-tenant SaaS application plus management scripts, built on Azure SQL Database.

Versions of Wingtip Tickets SaaS apps

Looking for one of the other SaaS app patterns? Learn more about the Database per tenant and Sharded multi-tenant versions.

Wingtip Tickets SaaS app

The Wingtip Tickets app is a simple event listing and ticketing SaaS app, where each venue is a tenant with events, ticket prices, customers, and ticket sales. The app, together with the management scripts and tutorials, showcases an end-to-end SaaS scenario. This includes provisioning tenants, monitoring and managing performance, schema management and cross-tenant reporting and analytics, all at scale. This application is functionally identical across all three versions repositories.

Standalone app (aka app-per-tenant) pattern

This project contains a single tenant application with a single tenant database. Each tenants app is deployed into a separate Azure resource group. This could be in the service providers subscription or the tenants subscription and managed by the provider on the tenants behalf. This pattern provides the greatest tenant isolation, but is typically the most expensive from a resource cost perspective as there is no opportunity to share resources across multiple tenants. The app uses the same patterns that might be used if the venue wrote the application for themselves. While the app is a single-tenant app and so doesn't need a catalog to resolve the location of the database, a catalog can still be provisioned and used by many management scenarios, enabling, for example, schema management of all tenant databases, cross-tenant query for reporting purposes, cross-tenant analytics, etc.

Get started

The application, which includes sample data for one of three venues, can be installed in your Azure subscription within a single Azure resource group. To uninstall the application, delete the resource group using the Azure Portal.

NOTE: if you install the application you will be charged for the Azure resources created. Actual costs incurred are based on your subscription offer type but are nominal if the application is not scaled up unreasonably and is deleted promptly after you have finished exploring the tutorials.

More information about the sample app can be found in the associated tutorial.

Click any of the buttons below to deploy a venue-specific version of the app to Azure. Deploy each app in a new resource group and provide a short user value that will be appended to resource names to make them globally unique. Your initials and a number is a good pattern to use.

IMPORTANT: USE THE SAME USER VALUE FOR ALL THREE APPLICATIONS.

Contoso Concert Hall

Fabrikam Jazz Club

Dogwood Dojo

After deployment completes, launch the app by browsing to the corresponding URL, substituting USER with the value you set during deployment:

http://events.contosoconcerthall.USER.trafficmanager.net

http://events.fabrikamjazzclub.USER.trafficmanager.net

http://events.dogwooddojo.USER.trafficmanager.net

IMPORTANT: If you download and extract the repo or Learning Modules from a zip file, make sure you unblock the .zip file before extracting. Executable contents (scripts, dlls) may be blocked by Windows when zip files are downloaded from an external source.

To avoid scripts from being blocked by Windows:

  1. Right click the zip file and select Properties.
  2. On the General tab, select Unblock and select OK.

License

Microsoft Wingtip SaaS sample application and tutorials are licensed under the MIT license. See the LICENSE file for more details.

Contributing

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.