Мультитенантность — это когда один экземпляр приложения обслуживает множество клиентов (tenant). Ключевой вопрос: как хранить данные так, чтобы клиент A не видел данные клиента B. Есть три подхода: отдельная база для каждого клиента, отдельная схема в общей базе, общие таблицы с полем tenant_id.
Отдельная база — максимальная изоляция, но дорогая в обслуживании при большом числе клиентов. Общие таблицы — дешевле, но требуют дисциплины на уровне кода: каждый запрос должен фильтровать по tenant_id. Пропуск этого фильтра — критическая уязвимость. Для стартового SaaS MVP обычно подходит третий подход с тщательным code review.
Архитектурный выбор принимается до написания первой строки кода — переход между подходами после запуска очень дорог. Поэтому при проектировании SaaS важно зафиксировать ожидаемое число клиентов, требования к изоляции и бюджет на инфраструктуру.
Когда этот подход полезен бизнесу
Рекомендации из статьи стоит применять не изолированно, а в контексте задач проекта «SaaS-сервис». В первую очередь проверьте, какую измеримую проблему должен решить продукт.
SaaS-архитектура
Входит в пакет по данным админ-калькулятора и уточняется в смете.
Адаптивная вёрстка
Входит в пакет по данным админ-калькулятора и уточняется в смете.
Масштабирование
Входит в пакет по данным админ-калькулятора и уточняется в смете.
База данных
Входит в пакет по данным админ-калькулятора и уточняется в смете.
Как принять решение до начала разработки
До выбора технологии зафиксируйте пользователей, сценарии и критерии готовности. Это снижает риск дорогих переделок после запуска.
Аналитика и ТЗУточняем аудиторию, роли, сценарии, интеграции и фиксируем состав работ.
Прототип и структураСобираем карту экранов, пользовательские сценарии и структуру данных.
Дизайн и разработкаДелаем интерфейс, backend, админ-панель и ключевые модули по смете.
ТестированиеПроверяем формы, роли, адаптив, уведомления, ошибки и пограничные сценарии.
Запуск и передачаПубликуем проект, передаём доступы, инструкцию и рекомендации по развитию.
Частые вопросы
Какой главный вывод статьи «Мультитенантность: как изолировать данные разных клиентов»?
Три подхода к разделению данных в SaaS и как выбрать подходящий для вашего продукта.
Как применить эти рекомендации в проекте «SaaS-сервис»?
Начните с короткого аудита: опишите основной пользовательский сценарий, источники данных, интеграции и критерии результата. Затем соберите первую версию без второстепенных функций и проверьте её на реальных пользователях.
Что такое мультитенантность?
Каждый клиент сервиса работает в изолированном кабинете со своими данными, настройками и пользователями. При этом все кабинеты работают на одной инфраструктуре — это и есть мультитенантность.
Источники и документация
Для проверки технических решений используйте актуальную документацию платформ и рекомендации поисковых систем.