← Архитектура

Multi-tenancy для MSP: как обслуживать N клиентов в одной helpdesk

MSP, обслуживающий 10 клиентов — это 10 разных команд, 10 наборов услуг, 10 порталов с брендингом клиента. Делать 10 отдельных инсталляций — экономически нелепо. Делать одну общую — упирается в изоляцию данных. Разбираем модели multi-tenancy для helpdesk-систем и какая из них применима в реальной MSP-практике.

10 мин чтения Команда TIQQET
MSPMulti-tenancyB2BАрхитектура
Multi-tenancy для MSP: как обслуживать N клиентов в одной helpdesk Multi-tenancy для MSP: как обслуживать N клиентов в одно…

Три модели multi-tenancy

  1. Database-per-tenant. Каждому клиенту — отдельная БД. Полная изоляция, но высокая стоимость инфраструктуры, отдельные миграции на каждый tenant.
  2. Schema-per-tenant. Одна БД, отдельная PostgreSQL-схема для каждого. Дешевле в плане инфраструктуры, изоляция на уровне схемы, но миграции всё ещё надо прогонять на каждой.
  3. Row-level (shared schema). Одна БД, одна схема, везде колонка tenant_id. Применяется row-level security (PostgreSQL RLS). Самая дешёвая, самая сложная в плане ошибок (один забытый WHERE — и данные одного клиента видны другому).

Для большинства MSP оптимум — schema-per-tenant. Это даёт правильный баланс изоляции и стоимости.

Брендинг для каждого клиента

Когда у MSP «Acme Support» 5 клиентов, и каждый хочет видеть свой логотип в портале и в исходящих письмах — нужна возможность:

В TIQQET этот сценарий пока реализуется через настройку отдельных инсталляций для каждого клиента — для MSP с 20+ клиентами это нерационально. Полноценный multi-tenancy на одной инсталляции — на roadmap.

Операторская визуализация

Оператор MSP обслуживает несколько клиентов. Ему нужно:

Доступ оператора к tenant'ам определяется через membership. Senior MSP-эксперт может иметь доступ ко всем, junior — только к 2-3 «своим» клиентам.

Биллинг для MSP

MSP оплачивает helpdesk-вендору обычно по одной из моделей:

Со стороны MSP — биллинг своих клиентов. Helpdesk должен позволять:

Изоляция данных — главное

Главный риск multi-tenancy — пересечение данных. Обязательные меры:

Утечка данных одного клиента к другому — фатальна для MSP. Это конец репутации.

SLA и контракты per-tenant

У каждого клиента MSP свой SLA-контракт: одному обещано 4 часа реакции, другому 24, третьему 1 час 24/7. Helpdesk должен:

Это реализуется через каталог услуг с per-service SLA — на каждой услуге свой SLA, услуги привязаны к tenant.

Попробуйте TIQQET в деле

On-premise ServiceDesk с полным циклом заявок, SLA-контролем и мобильными приложениями. Развёртывание за 1 день.

Посмотреть демо

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

Может ли один helpdesk обслуживать 50 MSP-клиентов?

Технически — да. На практике с 50 клиентами и единой инсталляции — нужен полноценный multi-tenancy: отдельные домены, брендинг, изоляция. До 5-10 клиентов справится одна базовая инсталляция через команды.

Что значит row-level security?

Функция PostgreSQL: к таблице добавляется политика, которая фильтрует строки по сессионной переменной (current_tenant). Даже если SQL-запрос забыл WHERE — БД сама отрежет чужие строки.

Можно ли иметь отдельные домены для каждого tenant?

Да. На DNS клиента ставится CNAME на ваш хост, ваш nginx определяет tenant по Host-header, отдаёт правильный брендинг.

Что делать с email-уведомлениями для разных tenant?

Идеально — у каждого tenant свой SMTP-аккаунт (с DKIM/SPF на их домене). Альтернатива — единый исходящий с пометкой «по поручению Acme», но это путает пользователей.

Сколько стоит multi-tenancy в helpdesk?

Базовый — встроен в большинство MSP-ориентированных систем. Полноценный с кастомным брендингом и доменами — в коммерческом сегменте от $200/tenant/мес.