SaaS-приложение Wingtip Tickets.
Применимо к: База данных SQL Azure
В каждом из трех примеров реализовано одно и то же приложение SaaS Wingtip Tickets. Приложение — это простой SaaS-сервис для списка событий и бронирования билетов, нацеленный на небольшие площадки: театры, клубы и т. д. Каждое место является клиентом приложения и имеет собственные данные, такие как сведения о месте проведения, списки событий, клиенты, заказы билетов и т. д. Приложение вместе со скриптами управления и руководствами демонстрирует комплексный сценарий SaaS. Этот сценарий включает подготовку клиентов, отслеживание производительности и управление ею, управление схемой, создание отчетов и аналитику между клиентами.
SaaS-приложение и шаблоны аренды
Доступны три версии приложения. В каждой версии используется свой шаблон для аренды базы данных в Базе данных SQL Azure. В первой используется однотенантное изолированное приложение с собственной базой данных. Во втором используется мультитенантное приложение с базой данных для каждого клиента. Третий пример использует мультитенантное приложение с сегментированных мультитенантными базами данных.
Каждый пример включает в себя код приложения и сценарии управления и руководства, иллюстрирующие разные шаблоны управления и разработки. Каждый пример развертывается менее чем за пять минут. Все три шаблона можно развернуть параллельно и определить их различия в разработке и управлении.
Шаблон однотенантного изолированного приложения
В шаблоне изолированного однотенантного приложения используется однотенантное приложение с базой данных для одного клиента. Приложение каждого клиента, включая свою базу данных, развертывается в отдельной группе ресурсов Azure. Группу ресурсов можно развернуть в подписке поставщика услуг или подписке арендатора и управлять ей поставщиком услуг от имени арендатора. Этот шаблон однотенантного автономного приложения предоставляет наивысший уровень изоляции клиента. Но является самым дорогим, так как в нем не предусмотрена возможность делить ресурсы между несколькими клиентами. Этот шаблон подходит для более сложных приложений, развертываемых на меньшем числе клиентов. Для автономных развертываний приложение для каждого клиента можно настроить проще, чем в других шаблонах.
Ознакомьтесь с учебниками и кодом на сайте GitHub .../Microsoft/WingtipTicketsSaaS-StandaloneApp.
Шаблон с однотенантной базой данных
Шаблон с однотенантной базой данных эффективен для поставщиков услуг, которым требуется изолированный клиент и централизованная служба, обеспечивающая рентабельное использование общих ресурсов. База данных создается для каждой локации или клиента. Все базы данных управляются централизованно. Базы данных могут размещаться в эластичных пулах, чтобы обеспечить экономичное и простое управление производительностью, которое управляет непредсказуемыми шаблонами рабочих нагрузок клиентов. База данных каталога содержит сопоставление клиентов и их баз данных. Такое сопоставление осуществляется с помощью функций управления для карты сегментов клиентской библиотеки Эластичной базы данных, которая обеспечивает эффективное управление подключениями к приложению.
Ознакомьтесь с учебниками и кодом на сайте GitHub .../Microsoft/WingtipTicketsSaaS-DbPerTenant.
Шаблон шардированной мультитенантной базы данных
Мультитенантные базы данных эффективны для поставщиков услуг, которые ищут более низкие затраты на каждого клиента и готовы мириться с уменьшенной изоляцией клиентов. Этот шаблон позволяет упаковать большое число клиентов в отдельную базу данных, снижая затраты на каждый клиент. Вы можете иметь почти бесконечное масштабирование, сегментируя арендаторы в нескольких базах данных. Сопоставление клиентов и баз данных содержится в базе данных каталога.
Этот шаблон также позволяет использовать гибридную модель , где можно либо оптимизировать затраты с использованием нескольких клиентов в одной базе данных; либо оптимизировать изоляцию, размещая каждого клиента в собственной базе данных. Выбор можно сделать для каждого клиента, либо при настройке клиента, либо позже, без влияния на приложение. Модель эффективно используется, когда группы клиентов должны обрабатываться по-разному. Например, дешевые клиенты могут назначаться общим базам данных, а клиенты класса "Премиум" — собственным базам данных.
Ознакомьтесь с руководствами Wingtips и кодом WingtipTicketsSaaS-MultiTenantDB на сайте GitHub](https://github.com/Microsoft/WingtipTicketsSaaS-MultiTenantDb).
Связанное содержимое
- Многопользовательские шаблоны аренды для баз данных SaaS
- Развертывание и изучение автономного однотенантного приложения, использующего базу данных SQL Azure
- Код для автономного приложения на GitHub
- Введение в мультитенантное SaaS-приложение, использующее шаблон одной базы данных на арендатора с базой данных Azure SQL
- Код для базы данных для каждого клиента на GitHub
- Развертывание и изучение сегментированного мультитенантного приложения
- Код для разделённого мультитенантного решения на GitHub