3

WebTech

Личный кабинет

Проекты, коммерческие предложения, документы и отчёты — в одном месте.

Войти Зарегистрироваться Забыли пароль?
White-label и мультитенантность

Одна платформа — много клиентов и ваш бренд на каждом экране

Проектируем и разрабатываем мультитенантный SaaS: единое ядро, изолированные данные арендаторов, темы оформления без форка репозитория, кастомные домены с автоматическим SSL и партнёрский кабинет с прозрачным расчётом вознаграждений.

Или сразу: +7 (962) 368-39-51 Telegram

N арендаторов
одно ядро, раздельные данные
свой домен
у клиента и у партнёра
4 роли
владелец, админ, сотрудник, партнёр
revenue share
начисления без таблиц вручную
Задачи

Что ломается в white-label платформах

Это не гипотетические риски, а повторяющиеся проблемы проектов, которые выросли из одного клиента в десятки.

Арендаторы видят данные друг друга

Фильтр по идентификатору арендатора забыт в одном запросе из сотни — и выгрузка, отчёт или глобальный поиск отдают чужие записи. Находят это обычно клиенты, а не тесты.

Брендирование делают копированием кода

Второй клиент получает форк репозитория, третий — свою ветку. Через год поддерживать приходится пять почти одинаковых продуктов, и каждый релиз делается пять раз.

Кастомные домены и сертификаты вручную

Клиент просит свой домен, сертификат выпускают руками, продлевать забывают. Платформа работает, а вход по адресу клиента отдаёт ошибку сертификата.

Партнёрская выручка считается в таблице

Реферальные начисления ведут в Google Sheets: процент за прошлый месяц пересчитывают руками, расхождения всплывают на сверке и превращаются в спор с партнёром.

Права ролей живут только в интерфейсе

Менеджер партнёра видит в меню только разрешённые разделы, но серверная проверка прав отсутствует: прямой запрос к API отдаёт данные всех арендаторов.

Обновление ядра ломает кастомизации

У крупных клиентов свои правки в общей ветке. Релиз превращается в ручной мерж на неделю, поэтому релизы откладывают, а платформа отстаёт на год.

Решения

Что мы строим

Объём подбирается под стадию: пилот на одном клиенте, превращение существующего продукта в мультитенантный или платформа для продажи через партнёров.

Мультитенантное ядро

Выбираем модель изоляции под ваш профиль риска и требования клиентов, а не по моде.

  • Общий контур со скоупом арендатора либо отдельная схема или база на клиента
  • Автоматические тесты, которые падают при запросе без фильтра арендатора
  • Разделение очередей, файлового хранилища и кэша по арендаторам
  • Миграции и включение функций по сегментам клиентов

Брендирование и домены

Второй и двадцатый клиент подключаются настройками, а не новой копией продукта.

  • Темы, логотипы, палитра и тексты писем в конфиге арендатора
  • Кастомный домен клиента с автоматическим выпуском и продлением сертификата
  • Письма и уведомления с домена партнёра, а не с вашего
  • White-label документация, портал и справка под брендом клиента

Партнёрский кабинет

Партнёр продаёт вашу платформу своим клиентам и видит свои цифры без вашего участия.

  • Иерархия «платформа → партнёр → его клиенты» с раздельным биллингом
  • Правила вознаграждения: процент, фиксированная ставка, ступени по объёму
  • Начисления, удержания на период возвратов и реестр выплат
  • Промокоды и отслеживание регистраций, пришедших от партнёра

Релизы и эксплуатация

Один продуктовый конвейер для всех арендаторов — иначе платформа быстро становится необслуживаемой.

  • Единый релизный конвейер с канареечным включением для крупных клиентов
  • Метрики по арендаторам: активность, упор в лимиты, ошибки, скорость ответа
  • Регламент подключения и отключения клиента с выгрузкой и удалением данных
  • Нагрузочное тестирование с учётом пиков крупнейшего арендатора
Процесс

Как проходит разработка white-label платформы

Начинаем с модели тенантности: от неё зависят и архитектура, и стоимость эксплуатации на сотнях клиентов.

  1. 01 1–2 недели

    Модель тенантности

    Разбираем профиль клиентов и требования к изоляции данных, выбираем схему: общий контур, отдельная схема или отдельная база. Фиксируем, что становится настройкой арендатора, а что остаётся общим.

  2. 02 6–12 недель

    Ядро платформы

    Реализуем вход с выбором арендатора, роли и права, тарифы с лимитами, биллинг-контур и админку платформы. Пишем тесты, которые проверяют изоляцию данных при каждом изменении.

  3. 03 3–6 недель

    Брендинг и партнёры

    Добавляем темы, кастомные домены с SSL, партнёрский кабинет и расчёт вознаграждений. Готовим white-label версии документов, писем и справки.

  4. 04 2–4 недели

    Пилот и масштабирование

    Подключаем первых арендаторов, смотрим метрики по каждому, настраиваем регламент релизов, поддержки и подключения новых клиентов.

Три модели мультитенантности и как выбрать

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

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

Третья — отдельная база или отдельный контур на клиента. Так делают, когда этого требуют корпоративные заказчики или персональные данные особой категории. Стоимость эксплуатации выше, зато крупный клиент получает выделенные ресурсы и независимое обновление. На практике модели часто комбинируют: мелкие клиенты живут в общем контуре, а два-три крупных выносятся в отдельные базы.

Что white-label означает на практике

White-label — это не только другой логотип. Клиент или партнёр должен получить собственный домен, письма с собственного адреса, документацию со своим названием и — что важнее — свои цифры: сколько его пользователей активно, сколько он заработал, сколько должен заплатить вам. Возможность выгрузить эти данные самостоятельно ценится выше, чем цвет кнопки.

Отдельный вопрос — разграничение ответственности. Если платформа продаётся через партнёра, договор с конечным пользователем заключает партнёр, а значит в интерфейсе нужны его реквизиты, его оферта и его поддержка первой линии. Технически это означает, что шаблоны документов, контакты поддержки и правила возвратов должны быть атрибутами арендатора, а не константами в коде.

Как считать партнёрское вознаграждение

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

Второй элемент — удержание. Разумно держать выплату партнёру до истечения срока возможного возврата, иначе после чарджбека сумму придётся вычитать из следующей выплаты. Мы закладываем это в модель начисления: три состояния — начислено, удерживается, выплачено — и реестр, который партнёр видит в своём кабинете. Спор о сумме обычно заканчивается на этом экране, без переписки с бухгалтерией.

Частые вопросы

Готовое мультитенантное ядро с тарифами, ролями и биллингом собирается за 3–5 месяцев. Если продукт уже существует и его нужно превратить в мультитенантный, добавьте 4–8 недель на вынос данных арендаторов, разделение хранилищ и перенос кастомизаций в настройки. Точная оценка зависит от количества интеграций и от того, требуется ли партнёрский кабинет с расчётом вознаграждений.

Изоляция обеспечивается не только фильтром в запросах. Мы добавляем глобальный скоуп на уровне модели данных, автоматические тесты, которые проверяют доступ к чужому объекту под каждой ролью, раздельные каталоги файлов и очереди на арендатора, а также журнал доступа к чувствительным операциям. При выборе модели с отдельной базой на клиента изоляция обеспечивается физически.

Да. Домен арендатора добавляется в настройках платформы, сертификат выпускается и продлевается автоматически, письма отправляются с подтверждённого домена клиента с настроенными SPF и DKIM. Это стандартная часть нашей реализации white-label, а не отдельная доработка.

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

Подписочные сервисы: другие направления

Смежные задачи, которые обычно решаются в одном проекте с этой.

Запустим вашу white-label платформу

Расскажите, кому и как вы планируете продавать подписку, — предложим архитектуру, модель тенантности и сроки.