Архитектурные ошибки на старте SaaS приводят к утечкам корпоративных данных и росту серверных счетов при первых ста клиентах. Команда ZORKA проектирует B2B-платформы с надежной изоляцией тенантов, автоматическим биллингом и масштабируемой кодовой базой.
Архитектура мультитенантности: выбор между Database-per-tenant и Shared Database
Модель с отдельной базой данных под каждого клиента (Database-per-tenant) быстро разоряет проект на серверах. Поддержка сотен отдельных баз усложняет миграции схемы и требует содержания дорогой DevOps-инфраструктуры.
Для большинства B2B-сервисов студия ZORKA внедряет Shared Database с Row-Level Security на базе PostgreSQL. Все клиенты делят одну базу данных, но политики СУБД на аппаратном уровне запрещают тенантам видеть чужие строки.
Запросы маршрутизируются через контекстный идентификатор организации в JWT-токене. Это снижает расходы на серверы до 15 000 руб в месяц на старте и удерживает задержку API в пределах 40 мс.
Начинайте MVP с единой базы и RLS в PostgreSQL. Выделять изолированные базы стоит только для Enterprise-клиентов с жесткими требованиями комплаенса.
Биллинг, тарифные сетки и интеграция с российскими эквайрингами
Самописный биллинг с нуля часто забирает треть бюджета разработки. Сложности возникают при расчете пропорциональной стоимости при смене тарифа (proration), обработке просроченных оплат и повторных попытках списания (dunning).
Для российского рынка ZORKA разворачивает связку эквайринга с облачной фискализацией через Атол Онлайн или CloudKassir. Для зарубежных расчетов подключаем Stripe Billing с автоматической обработкой валютных транзакций.
Управление тарифами и лимитами выносится в отдельный сервисный слой feature flags. Маркетолог может изменить количество доступных рабочих мест или гигабайт диска в тарифе без правок кода разработчиками.
Никогда не привязывайте проверки доступа напрямую к названию тарифа. Проверяйте числовые лимиты конкретных фичей в контексте активного воркспейса.
Онбординг клиентов, модель прав RBAC и генерация поддоменов
Сложная регистрация уничтожает конверсию в подписку. В решениях ZORKA создание рабочего пространства занимает 60 секунд: система запрашивает название компании, резервирует поддомен и генерирует схему настроек.
Ролевая модель строится на базе RBAC с гранулярными правами. Владелец управляет счетами, администратор настраивает интеграции, а сотрудники работают только с доступными им модулями.
Маршрутизация запросов к поддоменам строится через реверс-прокси Traefik или Caddy с автоматическим выпуском SSL-сертификатов Let's Encrypt. Это избавляет инженеров от ручной настройки доменов для каждого арендатора.
Каждый входящий API-запрос обязан проходить валидацию tenant_id на уровне middleware перед тем, как управление перейдет к бизнес-логике контроллера.
Стоимость MVP и управление скоупом: что входит в бюджет 2.8 млн рублей
Попытка включить в первую версию глубокую аналитику и интеграции с двадцатью сервисами приводит к срыву сроков. На этапе MVP важно протестировать готовность аудитории платить за решение главной проблемы.
Базовый стек ZORKA для быстрого старта включает Next.js для интерфейса и Node.js или Go для бэкенда. В бюджет от 2 800 000 руб входит продуктовое проектирование, адаптивный UI в Figma, мультитенантная БД, биллинг и суперадминка.
Срок реализации составляет 10-12 недель с еженедельными демо. Фаундер получает работающий продукт, готовый к приему платежей и проверке юнит-экономики на реальном трафике.
Фиксация скоупа по методологии ZORKA экономит от 1.2 млн руб инвестиций и сокращает выход на рынок на 2-3 месяца относительно классического монолита.
Фоновые очереди и мониторинг: защита от перегрузок одним клиентом
Один клиент, решивший выгрузить отчет на 500 000 строк, может положить синхронный API для всех остальных тенантов. Для защиты от эффекта шумного соседа мы выносим тяжелые операции в асинхронные воркеры на Redis и BullMQ.
Для каждого воркспейса настраиваются персональные лимиты частоты запросов (rate limiting). Платформа равномерно распределяет ресурсы кластера и предотвращает деградацию производительности сервиса.
Логирование и сбор метрик ведутся в разрезе тенантов через Grafana, Prometheus и Sentry. Команда сразу видит всплески потребления памяти или рост пятисотых ошибок у конкретного клиента.
Изолируйте фоновые задачи по приоритетам: мгновенные email-уведомления не должны стоять в одной очереди с многоминутными выгрузками таблиц.
- Ручное создание копии базы данных под каждого нового клиента
- Инфраструктурные расходы от 120 000 руб в месяц уже на 30 клиентах
- Фильтрация данных через WHERE tenant_id в коде с риском утечки базы
- Самописный биллинг с постоянными ошибками при смене тарифного плана
- Зависание всей платформы из-за одного тяжелого клиентского отчета
- Единая СУБД с аппаратным разделением прав через Row Level Security
- Серверные расходы от 15 000 руб в месяц за счет оптимального пула соединений
- Аппаратная изоляция данных на уровне базы с нулевым риском перекрестного доступа
- Готовый модуль подписок, фискализации и автосписаний с поддержкой карт РФ и СНГ
- Асинхронные очереди задач и rate limiting для защиты от шумных соседей
- Проектирование схемы PostgreSQL с политиками RLS
- Создание интерактивного прототипа личного кабинета в Figma
- Спецификация OpenAPI и матрица прав доступа RBAC
- Разработка бэкенда на Node.js или Go с изоляцией сессий
- Интеграция эквайринга, рекуррентных списаний и онлайн-чеков
- Механизм автоматической регистрации и роутинга поддоменов
- Верстка интерфейса кабинета и настроек воркспейса на Next.js
- Панель суперадминистратора для аналитики подписок и тарифов
- Очереди фоновых задач на Redis для отчетов и рассылок
- Нагрузочное тестирование изоляции данных тенантов
- Настройка мониторинга в Sentry, Grafana и Prometheus
- Развертывание в production-окружении и подключение доменов
Часто задаваемые вопросы
Оптимальный выбор для 90% проектов - PostgreSQL. Механизм Row-Level Security позволяет аппаратно изолировать записи по tenant_id, не раздувая серверные расходы на отдельные инстансы. Это дает безопасность уровня отдельных баз при расходах одной общей.
ZORKA внедряет трехфакторную защиту: привязка карты с холдированием 1 рубля, проверка фингерпринта браузера и фильтрация временных почтовых доменов. Дополнительно триал ограничивается лимитами действий, а не только календарными днями.
Грамотно оптимизированный стек на старте требует от 12 000 до 25 000 руб в месяц в Timeweb Cloud или Selectel. Сюда входит кластер PostgreSQL, Redis, два инстанса бэкенда и балансировщик нагрузки с автопродлением SSL.
В архитектуре ZORKA подключение отдельного датасорса заложено в конфигурацию тенанта. Если клиент платит Enterprise-чек, мы перенаправляем его connection pool на отдельный сервер без изменения логики приложения.
Планируете запуск собственного SaaS-сервиса?
Команда ZORKA спроектирует отказоустойчивую архитектуру, подберет стек и рассчитает точную смету MVP за 2 рабочих дня.