SaaS-приложение Wingtip Tickets.

Область применения:База данных SQL Azure

В каждом из трех примеров реализовано одно и то же приложение SaaS Wingtip Tickets. Это простое приложение SaaS, составляющее списки событий и создающее билеты на события в небольших местах проведения — кинотеатрах, театрах, клубах и т. д. Каждое место проведения — это арендатор приложения, имеющий собственные данные: сведения о месте проведения, списки событий, клиентов, заказов на получение билетов и т. д. Приложение вместе со сценариями и учебниками управления демонстрирует комплексный сценарий SaaS. Этот сценарий включает подготовку клиентов, отслеживание производительности и управление ею, управление схемой, создание отчетов и аналитику между клиентами.

SaaS-приложение и шаблоны аренды

Доступны три версии приложения. В каждой версии используется свой шаблон для аренды базы данных в Базе данных SQL Azure. В первой используется однотенантное изолированное приложение с собственной базой данных. Во втором используется мультитенантное приложение с однотенантной базой данных. В третьей версии используется мультитенантное приложение с сегментированными мультитенантыми базами данных.

Three tenancy patterns

Каждый пример включает в себя код приложения и сценарии управления и руководства, иллюстрирующие разные шаблоны управления и разработки. Каждый пример развертывается менее чем за пять минут. Все три шаблона можно развернуть параллельно и определить их различия в разработке и управлении.

Шаблон однотенантного изолированного приложения

В шаблоне изолированного однотенантного приложения используется однотенантное приложение с базой данных для одного клиента. Приложение каждого клиента, включая свою базу данных, развертывается в отдельной группе ресурсов Azure. Группу ресурсов можно развернуть в подписке поставщика услуг или подписке клиента и управлять поставщиком от имени клиента. Этот шаблон однотенантного автономного приложения предоставляет наивысший уровень изоляции клиента. Но является самым дорогим, так как в нем не предусмотрена возможность делить ресурсы между несколькими клиентами. Этот шаблон подходит для более сложных приложений, развертываемых на меньшем числе клиентов. Для автономных развертываний приложение для каждого клиента можно настроить проще, чем в других шаблонах.

Ознакомьтесь с учебниками и кодом на сайте GitHub .../Microsoft/WingtipTicketsSaaS-StandaloneApp.

Шаблон с однотенантной базой данных

Шаблон с однотенантной базой данных эффективен для поставщиков услуг, которым требуется изолированный клиент и централизованная служба, обеспечивающая рентабельное использование общих ресурсов. База данных создается для каждой локации или клиента. Все базы данных управляются централизованно. Базы данных могут размещаться в эластичных пулах, чтобы обеспечить рентабельное и простое управление производительностью, а также обработку непрогнозируемой рабочей нагрузки клиентов. База данных каталога содержит сопоставление клиентов и их баз данных. Такое сопоставление осуществляется с помощью функций управления для карты сегментов клиентской библиотеки Эластичной базы данных, которая обеспечивает эффективное управление подключениями к приложению.

Ознакомьтесь с учебниками и кодом на сайте GitHub .../Microsoft/WingtipTicketsSaaS-DbPerTenant.

Шаблон с сегментированной мультитенантной базой данных

Мультитенантные базы данных эффективны для поставщиков услуг, которым нужно сократить расходы на каждый клиент и не требуется высокий уровень изоляции клиентов. Этот шаблон позволяет упаковать большое число клиентов в отдельную базу данных, снижая затраты на каждый клиент. Благодаря сегментированию клиентов в нескольких базах данных возможно почти неограниченное масштабирование. Сопоставление клиентов и баз данных содержится в базе данных каталога.

Этот шаблон позволяет использовать гибридную модель, в которой можно оптимизировать затраты за счет мультитенантной базы данных или обеспечить изоляцию одного клиента в его собственной базе данных. Выбрать шаблон можно как при подготовке клиента, так и позднее. Это не повлияет на работу приложения. Модель эффективно используется, когда группы клиентов должны обрабатываться по-разному. Например, дешевые клиенты могут назначаться общим базам данных, а клиенты класса "Премиум" — собственным базам данных.

Ознакомьтесь с учебниками и кодом на сайте GitHub .../Microsoft/WingtipTicketsSaaS-MultiTenantDb.

Дальнейшие действия

Основные описания

Руководства и код